안드로이드 빌드에 실패할 경우 체크할 사항들
안드로이드의 버전 대응 이슈로, 안드로이드 빌드 시 관련 라이브러리를 연결하는데 있어서 오류(충돌)이 나는 상황이 있습니다. 그럴 때는 아래 내용들을 한번 체크해주세요!
Gradle 설정을 점검해 보세요
아래 내용들을 점검해 보세요 (대부분 디펜던시 이슈인 경우가 많습니다)
•
Plugins/Android 폴더 삭제
•
Player 세팅에서 Publishing Settings 아래 세팅들 켜기
•
Custom Main Manifest
•
Custom Main Gradle Template
•
Custom Base Gradle Template
•
안드로이드 Resolve
•
Facebook Settings의 Regenerate Android Manifest 클릭
•
빌드
Unity 메뉴에 Assets - External Dependency Manager - Android Resolver - Resolve 실행해서 해결되는지 시도해보세요
Plugins/Android/FirebaseApp 이랑 AndroidManifest가 있으면 둘 다 지우고 다시 시도해보세요.
AndroidMenifest.xml 읽다가 fail 발생하는 현상
•
firebase 라이브러리를 못 읽고 있을 수 있으므로 현재 firebase 경로랑 오류 메세지에 있는 AndroidMenifest.xml 해당라인 확인
•
AndroidMenifest.xml에 해당라인이 있다면 삭제하고 시도해보세요
'android.enableR8=false'
Configure project :launcher
WARNING: The option setting 'android.enableR8=false' is deprecated.
It will be removed in version 5.0 of the Android Gradle plugin.
You will no longer be able to disable R8
JavaScript
복사
mainTemplate.gradle 상단에 maven resolve 내용이 제대로 들어가 있는지 확인해보세요.
유니티 설정을 확인해보세요!
Unity Version이 변경되면서 Unity Temp Folder가 정리가 되지 않은 상태로 Android 빌드를 진행하는 경우 이슈가 발생할 수 있습니다, 해당 내용을 체크해보세요!
•
기존 프로젝트의 buile setting > player setting > android tab의 build 셋팅의 항목들을 갱신해주세요. 해당 설정은 Assets/Plugins/Android의 경로에 위치합니다.
모든 옵션을 체크 해제하고, 해당 파일을 삭제하고 다시 해당 필요한 설정을 선택하면 Unity와 Android의 설정에 맞춰서 다시 생성됩니다. (Gradle, Manifest 설정버전이 변경)
•
Unity)Exception while marshalling ~\Unity\Hub\Editor\버전\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\build-tools\버전\package.xml. Probably the SDK is read-only
구글 애드몹을 사용하는 경우
Google App Id를 정상적으로 설정했나요?
SDK 버전업시 발생할 수 있는 문제들
Android resource linking failed (에러메시지)
•
firebase 관련 라이브러리들 NO SOURCE 와 같은 식으로 에러메시지가 노출됩니다.
•
3.3 업데이트하면서 동시에 Unity2022 대응하기 위해 firebase 버전도 업데이트했는데 이전과 다르게 Assets 하위에 firebase가 없으면 에러가 발생하는 케이스가 있습니다.
◦
Firebase 폴더가 Assets/AlohaSdk 하위에 있는지 Assets 바로 아래 있는지 확인해보세요
◦
알로하 SDK 적용한 상태에서 AlohaSDK 내부의 Firebase 폴더를 Assets 폴더 아래로 옮기고, External Dependency Manager> Android Resolver> Force Resolve 해보신 다음
maven t
url
(unityProjectPath + "/Assets/GeneratedLocalRepo/Firebase/m2repository")
JavaScript
복사
있는지, 해당 경로에 Firebase com/google.. 경로의 파일들이 생성되었는지 확인해보시고, 만약 되어있으면 빌드해보세요.
파이어베이스 폴더 이후에는 유니티 재시작 합니다.
ETC
keystore 생성, player setting에서 다음 체크 해주시고, Unity 메뉴의 Assets-External Dependency Manager-Android Resolver-Force Resolve 실행해서 mainTemplate.gradle 상단에 maven resolve 내용이 제대로 들어가 있는지 확인해보시고 빌드해 보시기 바랍니다.
기존 설정 파일들이 남아 있어서 계속 동일한 에러가 날 수 있습니다. Plugin/Android 폴더에 있는 파일들 모두 삭제하고 Android 빌드 관련 설정파일들 새로 생성한뒤에 force resolve 실행해서 다시해보시기 바랍니다.
현재 빌드를 하면, 안드로이드에서이런 코드에서 AlohaSdk.IsInitialized 가 true가 되지 못해서 무한으로 while이 돌고 있는 상황이 발생하는 경우
•
타이틀 화면에 AlohaSdk 프리팹이 꺼져있지 않은지 확인해보세요!
키스토어 경로와 android resolver 세팅에 문제가 있는 케이스
SDK 업데이트 가이드에 있는 것처럼 SDK랑 FirebaseApp.androidlib 폴더 싹다 지우고 SDK 재설치한다음
Facebook 세팅에 있는 android key store path 부분비워두지 않고 debug.keystore 다운받아서 경로에 넣고 해결한 케이스가 있습니다.
참고 및 다운받았던 키스토어 블로그입니다
SDK 경로가 제대로 안잡혀서 생기는 문제였습니다.
Assets -> External Dependency Manager -> Android Resolver -> Settings에서 사진에 표시한 부분에 체크되어있던 걸 해제한 후 빌드 했을 때 제대로 Resolve 되는 것을 확인할 수 있었습니다. 정확히 같은 상황인지는 모르겠지만 혹시나 해서 올립니당 아 혹시 모르니 Android Resolver에서 Force Resolve 해보는 것도 도움이 될지도.
iOS
SDK iOS in_app_purchase
iOS 빌드를 테스트 플라이트를 통해서 이벤트를 QA 하는 도중, 인앱 구매 이벤트 누락 확인 & 다른 이벤트들은 정상적으로 호출이 되는 케이스가 있습니다. 어떻게 해야하나요?
•
SDK에서 플랫폼별로 따로 분기되어있는 코드는 없습니다. 개발사에서 LogIAP 호출해주는쪽을 확인해보셔야 할 것 같네요. Unity에서 사용하는 In-App-Purchase 라이브러리에 따라서 결과값 받는게 다르게 되어있어서 해당 부분 확인해주시면 됩니다
Q. 에디터 상에서 기동될때 아래와 같이 오류가 뜨는데 어떻게 해야하나요?
A. 해당 부분에서는 다른 부분에 이슈가 없으시다면 SDK 상에서 문제가 발생하는 오류는 아니어서 무시하셔도 되는 부분입니다!
알로하 SDK 설정을 점검해보세요
ad unit id를 입력하지 않은 경우가 많습니다. 설정을 점검해보세요
Q. 알로하 SDK 설치 시 기존 플러그인 가이드
아래 이미지와 같이 Assets에서 Firebase와 MaxSdk 폴더만 삭제해도 되는지 알고 싶습니다.
알로하SDK와의 충돌 방지를 위해서, 알로하 SDK에서 사용하고 있는 플러그인이 이미 설치된 경우, 지우고 알로하SDK를 설치하시기를 권장드립니다.