본문 바로가기
프로그래밍/유니티

[Unity / Google Play Store] 이 버전을 출시하기 전에 다음 오류를 확인하세요.

by 김시루시루르 2021. 3. 27.

열심히 만든 게임을 구글 플레이 스토어에 올리려고 하는데,

자꾸 수많은 경고들이 제 앞을 가로막는 것이었습니다......

(뭔가 저런 말투로 경고안내해서 더 슬퍼.....)

 

저는 이거때문에 출시버전 빌드만 6번을 뽑아본 것 같아요 (눈물줄줄)

다른 분들은 그러지 않길 바라며 제가 본 경고들과 해결법을 정리하려고 포스팅합니다!

그걸 위한 블로그니까요.

그야말로 선고 대기와 같은 시간

1. 서명

디버그 모드로 서명한 APK 또는 Android App Bundle을 업로드했습니다. 출시 모드로 APK 또는 Android App Bundle에 서명해야 합니다. 

서명에 대해서는 전에 글을 쓴 적 있죠...

 

유니티 출시 모드로 서명 - Keystore, Key

게임을 만들어서 플레이 스토어에 업로드를 하기 전에! 앱에 서명을 해야 합니다. 보안상의 이유로 하는건데, 전 이걸 몰라서 두어번 빌드를 더 했었던 고통스러운 기억이.. 스토어에 업로드하

drybone-developer.tistory.com

위 글을 참고하세요!

서명을 하고나면 해당 경고는 해결됩니다.

 


2. API 수준

현재 앱이 28의 API 수준을 타겟팅하고 있지만, 보안 및 성능에 최적화된 최신 API를 기반으로 앱을 빌드하려면 API 수준 29 이상을 타겟팅해야 합니다. 앱의 타겟팅 API 수준을 29 이상으로 변경하세요

프로젝트 세팅으로 진입합니다. 진입 방법은 두 가지입니다.

File → Build Settings → Player Settings

Edit → Project Settings → Player

여기서 이제 Other Settings를 보시면 IdentificationTarget API Level이 있어요!

여기서 뭐.. 버전이 낮게 되어있다면 Automatic (설치된 것 중 가장 높은걸 자동으로 고릅니다) 으로 해도 되실거예요

 

저는 타겟 API를 자동으로 설정했는데도 이 경고가 뜨더라고요.. 설치가 덜 됐나 파들파들

만약 저와 같은 상황이신 경우, 수동으로라도 타겟 API를 높은 수준으로 설정해줍시다.

가장 아래쪽에 있는 게 가장 최신 API입니다~

 

이러고 빌드하면 이 경고는 해결!


3. 64비트 요구사항

이 버전은 Google Play 64비트 요구사항을 준수하지 않습니다.
다음 APK 또는 App Bundle은 64비트 기기를 지원하지만, 32비트 네이티브 코드만 포함합니다. [1]
앱에 64비트 및 32비트 네이티브 코드를 포함하세요. Android App Bundle 게시 형식을 사용하여 각 기기 아키텍처가 자동으로 필요한 네이티브 코드만 수신하도록 하세요. 그래야 앱의 전체 크기를 줄일 수 있습니다.

이건 좀 애먹은 경고인데.. 해결 방법은 이렇습니다

프로젝트 세팅으로 진입합니다. 진입 방법은 두 가지입니다.

File → Build Settings → Player Settings

Edit → Project Settings → Player

(복붙날먹)

여기서도 Other Settings로 갑니다~

그리고 Configuration 리스트를 찾습니다!

참고로, 위쪽에서 다룬 경고에 관련된 API 설정 아래부터 시작됩니다.

 

어쨌든 찾으셨다면 거기서 Scripting BackendIL2CPP로 설정한 뒤,

아래쪽 ARM64를 체크해주세요.

 

이러고 빌드하면 이 에러는 해결!


4. 버전 코드

이미 버전 코드가 1인 APK 또는 Android App Bundle이 있으므로 다른 버전 코드를 사용해야 합니다.

마켓에 업로드 후, 앱을 업데이트 하려고 다시 업로드 할 때 뜨는 경고입니다.

프로젝트 세팅으로 진입합니다. 진입 방법은 두 가지입니다.

File → Build Settings → Player Settings

Edit → Project Settings → Player

(또 복붙날먹)

여기서도 Other Settings로 간 뒤에, 스크롤을 좀 내리다 보면...

Identification 리스트에 Bundle Version Code 라는 항목이 있어요~

이걸 바꿔주시면 됩니다.

다음에도 또 올려줘야 할테니 1씩 차근차근 올리는 게 낫겠죠...


5. 인텐트 필터

인텐트 필터를 포함하되 'android:exported' 속성을 설정하지 않고 활동, 활동 별칭, 서비스 또는 broadcast receiver가 있는 APK 또는 Android App Bundle을 업로드했습니다. Android 12 이상에는 이 파일을 설치할 수 없습니다.

안드로이드 버전 12 이상을 지원하려면 나오는 오류입니다 (흑흑)

위와 같이 프로젝트 세팅으로 진입합니다. 진입 방법은 두 가지입니다.

File → Build Settings → Player Settings

Edit → Project Settings → Player

이번에는 Publishing Settings로 가서... 맨 아래쯤에 있는 Build 항목을 봅니다.

여기 보면 제일 위에 Custom Main Manifest 항목이 있는데, 체크박스에 체크해주세요!

그러면 AndroidManifest가 하나 더 생겨 있습니다. 이 파일을 열고...

아래쯤에 있는 activity 속성 안에 android:exported="true" 를 추가합니다.

activity의 <>괄호 안쪽에 넣어주시는겁니다!

1
android:exported="true"
cs

android:exported="true"

이렇게 하고 빌드해서 올리면 됩니다!! 현재 레테도 안드로이드 12 지원중이고요

기본값이 true라고 해서 true를 넣었는데 false 하면 뭐가 어떻게 되려나...

 

그리고 혹시 기존에 있던 AndroidManifest에 인텐트 필터와 이걸 추가해도 되려나 싶네요

근데 ... 안되면 또.. 돌려야하잖아 (저는 제가 빌드를 하고 사장님에게 전달하는 편이라 사장님 귀찮을까봐...)

해보고 저에게 결과를 알려주실분

 

참고로 기존에 있던 마니페스트에 인텐트 필터 속성은 없고 이게 커스텀 마니페스트의 인텐트 필터입니다

1
2
3
4
<intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
cs

 


제가 겪은 경고들은 딱 이만큼, 이 정도 깊이였던지라 글은 여기서 끝입니다만..

도움이 되셨나요?

 

만약 제가 또 다른 경고를 겪게되면 울면서 여기로 돌아옵니다... (ㅋㅋㅋㅋㅋㅋㅋㅋ)

부디 또 다른 경고를 겪지 않기를 (눈물찔끔!)

(그리고 겪었다.)

 

댓글