본문 바로가기

유니티

[유니티2D] 유니티에서 AAB로 빌드해서 구글 플레이에 등록 시 발생된 에러 해결 방법

728x90
반응형

 

다 만들고 나서 빌드를 하고 구글플레이콘솔에 업로드를 하니 이런 문제가 발생했다

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

 

그래서 여러 검색을 해 본 결과

AndroidManifest.xml 파일에 들어가서 activity속성에android:exported="true"를 넣어주면 된다는 것이었다.

하지만 이렇게 넣어주고 빌드를 시도해보니

java.io.IOException: Unable to delete directory 라는 에러가 나면서 빌드를 실패했다

 

다시 찾아본 결과 해결방법을 찾아냈다

 

1. 프로젝트를 저장하고 Unity를 완전히 종료합니다.

2. 프로젝트 폴더의 Library, Temp, Obj 등 임시 폴더를 삭제합니다.

3. Unity를 다시 시작하고 프로젝트를 로드합니다.

4. 빌드 설정을 확인합니다. File > Build Settings에서 안드로이드 플랫폼을 선택하고 "Switch Platform"을 클릭합니다. 그리고 "Player Settings"을 열어 필요한 설정을 확인하거나 수정합니다.

 

5. 안드로이드 SDK, JDK, NDK가 올바르게 설치되어 있는지 확인합니다. Unity 편집기에서 Edit > Preferences > External Tools로 이동하여 경로를 확인할 수 있습니다.

안드로이드 SDK, JDK, NDK가 올바르게 설치되어 있는지 확인하는 방법은 다음과 같습니다.

a. 안드로이드 SDK, JDK, NDK 설치 위치 확인:

각각의 설치 폴더를 찾아 해당 도구가 설치되어 있는지 확인합니다. 일반적인 설치 경로는 다음과 같습니다.

Android SDK: C:\Users\{username}\AppData\Local\Android\Sdk (Windows) 또는 /Users/{username}/Library/Android/sdk (Mac)

JDK: C:\Program Files\Java\jdk{version} (Windows) 또는 /Library/Java/JavaVirtualMachines/jdk-{version}.jdk/Contents/Home (Mac)

NDK: 안드로이드 SDK 폴더 내부의 ndk 폴더

b. Unity 편집기에서 경로 설정 확인:

Unity 편집기에서 Edit > Preferences (Windows) 또는 Unity > Preferences (Mac)로 이동한 다음, 왼쪽 메뉴에서 External Tools를 선택

 

6. 프로젝트 빌드를 다시 시도

 

 

이렇게 임시폴더를 삭제하고 다시 빌드를 실행해보았다

Compilation failed; see the compiler error output for details. See the Console for derails.

 

에러가 떠서 밑에 방법중 12번인 Unity를 최신 버전으로 업데이트를 했다.

 

7. 안드로이드 SDK를 업데이트하십시오. Android SDK Manager를 실행하여 필요한 SDK 플랫폼, 빌드 툴, 지원 라이브러리 등을 설치하거나 업데이트합니다.

8. Unity 프로젝트의 플러그인 충돌이 있는지 확인합니다. 서로 충돌하는 라이브러리나 플러그인이 있는 경우, 이를 해결해야 합니다. 이를 확인하려면 Unity 콘솔의 에러 메시지와 경고를 살펴보세요.

9. 유니티에서 Keystore 파일을 올바르게 설정했는지 확인합니다. Player Settings에서 Publishing Settings 섹션으로 이동하여 Keystore 파일 및 비밀번호를 확인합니다.

10. 빌드 프로세스 중 다른 프로세스가 파일이나 폴더에 액세스하고 있는지 확인합니다. 때때로 다른 프로세스가 동일한 파일이나 폴더에 액세스하여 빌드 과정에서 문제가 발생할 수 있습니다. 이를 확인하려면 파일 리소스 모니터, 프로세스 모니터 같은 도구를 사용하여 프로세스 간의 충돌을 찾고 해결합니다.

11. 컴퓨터를 재부팅하여 문제가 있는 프로세스를 종료하고 다시 시작해 보세요. 이로써 일시적으로 발생한 문제가 해결될 수 있습니다.

12. Unity를 최신 버전으로 업데이트하세요. Unity Hub를 사용하여 최신 버전을 다운로드하고 설치하거나, 기존 설치된 Unity를 업데이트하십시오. 최신 버전에서는 이전 버전에서 발생하는 문제가 해결되었을 수 있습니다.

 

13. 필요한 경우 프로젝트를 백업하고, Unity로 새로운 프로젝트를 만든 후 기존 프로젝트의 애셋과 스크립트를 새 프로젝트로 복사하십시오. 이 방법은 프로젝트 설정이나 구성 요소에서 발생한 문제를 해결하는 데 도움이 될 수 있습니다. 다음과 같이 수행하세요:

a. 현재 프로젝트를 완전히 백업하고 저장합니다.

b. Unity에서 새로운 프로젝트를 생성합니다.

c. 기존 프로젝트의 Assets 폴더에서 필요한 모든 애셋, 프리팹, 스크립트, 장면 등을 새 프로젝트의 Assets 폴더로 복사합니다. 이 때, 플러그인과 라이브러리도 함께 복사해야 합니다.

d. 새 프로젝트의 Build Settings를 확인하고, 필요한 플랫폼 및 설정을 구성합니다.

e. 새 프로젝트에서 모든 장면과 스크립트가 정상적으로 작동하는지 확인합니다. 이 과정에서 발견되는 문제나 에러를 수정합니다.

f. 필요한 경우 Player Settings 및 기타 프로젝트 설정을 새로운 프로젝트에 맞게 구성합니다. 이에는 플랫폼 종속적인 설정, 입력 관리자, 태그, 레이어 등이 포함됩니다.

g. 새 프로젝트에서 빌드를 다시 시도하여 문제가 해결되었는지 확인합니다. 이 방법으로 문제가 해결되면, 원인이 기존 프로젝트 설정이나 구성에 있었을 가능성이 높습니다.

 

위의 단계를 모두 수행한 후에도 문제가 해결되지 않는다면, Unity 개발자 커뮤니티나 공식 지원 포럼에서 도움을 요청할 수 있습니다. 여기에서 다른 개발자들의 경험과 지식을 활용하여 문제를 해결할 수 있습니다.

 


 

최신버전으로 업데이트를 하고 다시 빌드를 하니 성공적으로 빌드가 되었다.

 

구글플레이콘솔에 들어가 앱을 업로드 해보니 오류가 발생

1 버전 코드는 이미 사용되었습니다. 다른 버전 코드를 사용해 보세요.

File -> Build Settings -> Player Settings -> Player -> Other Settings 에서

Bundle Version Code를 2로 바꿔주니 됐다

그리고 다시 빌드를 하고 올려보니 또 에러가 발생했다.

 

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

 

File -> Build Settings -> Player Settings -> Player -> Other Settings 에서

이 ARM64를 활성화 시키라는 뜻이었다.

 

Scripting Backend를 Mono에서 IL2CPP로 바꿔주니 ARM64를 활성화 시킬 수 있었다.

이렇게 해서 앱을 성공적으로 올릴 수 있게 되었다.

 

728x90
반응형