64비트 앱 대응 - Unity 5.6 에서 Unity 2017.4 LTS 버전으로 업데이트
프로젝트를 시작하면, 웬만하면 처음 선택한 엔진 그대로 유지하면서 엔진 업데이트를 하지 않았다.
지금까지 엔진 버전 업데이트를 선호하지 않았던 이유는 없었던 버그가 발생하기도 하고 기존 플러그인과의 충돌이 나서 해결하기 어려워지는 경우도 많았기 때문이다...
하지만 안타깝게도 이번에 구글에서 혁신(?)을 위해 64비트 앱을 필수적으로 요구하게 되었다...
메일을 요렇게 친절하게 보내주셨다...
어찌됫든 64비트 앱 대응을 위해 구글링한 결과 내가 쓰고 있는 유니티 5.6버전은 64비트 빌드가 안된다...
현재기준(2019.05.28)으로 2017.4 LTS 버전 2018.2 이상만 64비트 빌드가 가능하다는 사실에 어쩔수 없이 5.6에서 2017.4 LTS로 업데이트를 감행하게 되었다.
(나중에 5.6도 64비트 빌드 지원해주려나?)
무거운 프로젝트는 아닌지라 상위 버전으로 변경하는 시간은 생각보다 안걸렸지만 문제는 2017.4 LTS로 옮기고 빌드가 정상적으로 안된다 문제에 부딪혔다...
문제는 찾아본 결과 기존의 SDK, JDK, NDK가 옛날 버전이어서 이 외부 툴도 같이 업데이트를 해줘야했다... 그래서 2017.4 에서 요구하는 SDK, JDK, NDK 도 모두 업데이트 한 후 빌드한 결과, 빌드는 다행히 성공했다!
(수정: 2018.4 LTS -> x86는 제외 하고 빌드)
(참고로 빌드할떄 ARM64를 꼭 체크해줘야 64비트빌드가 된다!!
+수정: x86는 체크에서 제외하자)
빌드 성공의 기쁨도 잠시 앱 테스트를 진행하려고 하는데 앱들어가자마자 진행하는 구글 플레이 로그인에서 화면이 멈췄다.... Google Play Plugin이 말썽이었던 것이었다...
원래 Google Play Plugin v.0.9.50 을 사용하고 있었지만 이 플러그인을 사용할 경우 아예 앱이 제대로 동작하지 않았다. 아마도 2017.4 LTS 최선버전과 호환이 제대로 되지 않아서 생기는 문제 같다.
옛날에도 Authentication이 제대로 되지않아 애 먹었던 기억이 있었는데 해결하는데 정말 하루종일 걸렸다...
글로 설명하기 힘들정도로 구글링에서 찾은 정말 다양한 방법으로 플러그인을 삭게, 설치, 재설치, 빌드 방법 변경 등을 했는데 결국 성공한 케이스를 요약하자면
1. Unity 2017.4.27 LTS 가장 최신 버전 사용 (2019.05.27 기준)
2. Google Play Plugin v.0.9.64 가장 최신 버전 사용 (2019.05.27 기준)
https://github.com/playgameservices/play-games-plugin-for-unity
3. 원래 Google Play Plugin v.0.9.50 을 사용하고 있었기때문에 Google Play Plugin과 관련있는 폴더 전부 삭제 (GooglePlayGames, PlayServicesResolver, Plugins/Android) 그리고 해당하는 Meta 데이터까지 깔끔하게 삭제!! (제일 중요한 부분인듯)
4. 새로운 플러그인 Google Play Plugin v.0.9.64 설치
5. Assets -> Play Service Resolver - > Android Resolver - > Resolve (원래는 package를 열면 자동으로 해주는데 지웠다 설치했다 반복하니까 자동으로 안될때도 있더라...)
6. Window -> Google Play Games -> Setup -> Android Setup 다시 설정
7. 빌드할때 Internal로!
(Gradle버전으로 할 경우 플러그인의 버그인지는 모르겠으나 Google Play Authentication가 정상적으로 되지 않음... 그래서 안타깝게도 현재는 Android App Bundle형식으로 앱을 빌드 할 수가 없음 ㅠㅠ)
8. 기도
이번에 업데이트를 하면서 느낀게 나같은 소규모 인디게임은 어찌어찌 2017버전으로 큰 문제 없이 업데이트를 할 수 있겠지만 유니티4, 5 를 활용한 정말 오래된 게임은 어떻게 64비트 앱에 대응할까 궁금하다...
'Game Engine > 유니티(Unity)' 카테고리의 다른 글
Custom Attribue: Public 변수 인스펙터상 ReadOnly로 만들기 (0) | 2023.06.13 |
---|---|
에러: UnityEngine.AssetBundle:LoadAsset_Internal crash (0) | 2023.06.12 |
에러: could not produce class with id 137. this could be caused by a class being stripped from the build even though it is needed (0) | 2023.06.12 |
에러: Execution failed for task ':unityLibrary:BuildIl2CppTask' (0) | 2023.06.12 |
유니티 엔진 팁1 (0) | 2019.01.09 |