[Unity] Android API level 29 대응하기(targetSdkVersion 29)

Posted by Dev Park
2020. 8. 4. 22:55 Unity

유니티 버전 : 2019.4.6f1

 

구글의 정책 변경으로인해서 새로운 앱은 8월 부터, 업데이트는 11월 부터 API level 29를 지원해야 하게되었습니다. 

간단하게 대상 API 레벨만 변경하면 될줄 알았는데.. 문제가 좀 있더군요. 

 

지금 현재 유니티 허브를 통해 유니티 애디터를 설치하면 API level 28 까지밖에 SDK가 설치가 되지 않습니다. 

 

여기서 API level 29를 선택한 후 빌드를 하면 API level 29 SDK가 없다면서 설치하겠냐는 메시지가 나오지만

설치가 실패하고 빌드가 되지 않습니다.

유니티에서 SDK를 지원하게 되면서 SDK 매니저를 따로 쓰지 않아서 생긴 문제입니다. 

 

해결 방법은 3가지가 있는데...

 

1. 가장 쉬운 방법은 유니티 애디터와 허브를 모두 종료 하고 유니티 허브를 관리자 모드로 실행한 다음 빌드를 하면 

SDK가 정상적으로 업데이트됩니다. (저는 이 방법으로 해결했습니다.)

 

2. 다음으로 수동으로 sdk 폴더에서 업데이트 하는 방법 입니다만.. 

Files\Unity\Hub\Editor\2019.4.6f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\bin. 여기에서 

sdkmanager "platform-tools" "platforms;android-29" "build-tools;29.0.3" 이렇게 입력합니다. 

https://developer.android.com/studio/command-line/sdkmanager

이때 cmd는 관리자 모드로 실행 해야 한다고 합니다. 

 

3. 마지막으로 안드로이드 스튜디오를 설치한 후 SDK 매니저를 통해 SDK를 다운받고 SDK 매니저로 받은 SDK를 유니티 애디터의 SDK 폴더로 복사하는 방법이 있습니다. 

 

-------

추가 경고 문제 

.android\repositories.cfg could not be loaded. 오류

 

유저/.android 폴더에 repositories.cfg 파일이 없어서 생기는 오류 입니다. 

유저/.android 폴더에 메모장을 이용해서 새 파일을 만든 후 아래와 같은 내용을 입력 합니다. 

### User Sources for Android SDK Manager
count=0

생성한 텍스트 파일을 repositories.cfg 로 이름변경 해줍니다. 

 

참고한 내용

https://stackoverflow.com/questions/52692463/android-sdk-repositories-cfg-is-missing