KakaoGameSDK Unity 업그레이드 가이드
Unity SDK를 3.19.0 버전으로 업그레이드
KakaoGameSDK
iOS Privacy Manifest와 관련된 수정사항으로 권장 유니티 에디터 버전을 2022.3.22f1 이상으로 올렸습니다
Privacy Manifest 관련 최소 사양
Unity version 2021.3.36f1, 2022.3.21f1, 2023.2.13f1 이상(https://forum.unity.com/threads/apple-privacy-manifest-updates-for-unity-engine.1529026/)
만일 2021.3.36f1을 사용할 경우 Gradle 버전 이슈(https://kakaogames.atlassian.net/wiki/spaces/KS3GFP/pages/411894562/KakaoGameSDK+Android#Android-SDK%EB%A5%BC-3.19.0%EC%9C%BC%EB%A1%9C-%EC%97%85%EA%B7%B8%EB%A0%88%EC%9D%B4%EB%93%9C)가 있어서 최소 2021.3.37f1를 사용해주셔야 합니다.(Unity - Manual: Gradle for Android)
버전 업데이트 후 그래들 관련 Version compatibility가 변경되어 기존 그래들을 그대로 사용하시면 안되고 새로 적용해주셔야합니다.
baseProjectTemplate.gradle 파일에서 'com.android.tools.build:gradle' 버전이 변경되어야 합니다.
Unity SDK를 3.17.10 버전으로 업그레이드
KakaoGameSDK(Android)
안드로이드 최소 API 레벨이 21 → 23으로 올라갔습니다.
KakaoGameSDK(iOS)
iOS 최소 타겟 버전이 11.0 → 13.0으로 올라갔습니다.
Unity SDK를 3.15.0 버전으로 업그레이드
KakaoGameSDK
내부 로직에 newtonsoft-json을 사용하게 되면서 json 패키지를 직접 설치해주어야 합니다.
1.1 Unity SDK 설치 | 1.1.3.9. Newtonsoft.Json 패키지 설치(SDK 3.15.0 이상)
Facebook SDK가 업데이트 되어서 Facebook Client Token 추가가 필수로 변경 되었습니다.
2.1 페이스북 | 2.1.2. 페이스북 개발자 센터(클라이언트 토큰 확인) SDK 3.15.0 이상 버전 적용 시 설정 필요
KakaoGameSDK(Android)
SDK에서 자동으로 mainActivity를 KGUnityPlayerActivity로 변경해주고 있습니다.
메인 액티비티를 변경하기 위해서는 KGSharedData.json를 열어서 customManifest
를 true로 세팅해주시면 됩니다.
Unity SDK를 3.14.6 버전으로 업그레이드
KakaoGameSDK(Editor)
카카오 에디터 로그인에 필요한 url이 https://dist-test-sdk.s3.amazonaws.com에서 https://kakao-sdk-release.s3.amazonaws.com로 변경되었습니다.
카카오 디벨로퍼 사이트에서 https://kakao-sdk-release.s3.amazonaws.com를 등록하셔야합니다.
Unity SDK를 3.14.0 버전으로 업그레이드
KakaoGameSDK(iOS)
프로젝트 빌드시 스크립트를 추가하여 수동 작업을 제거했습니다.
KakaoGameSDK Unity 업그레이드 가이드 | 유니티 2019.3 버전에서 cocoapods을 사용시 추가 가이드
활동 추적 팝업 노출을 위한 설정을 유니터 에디터환경에서 미리 추가할 수 있도록 변경하였습니다.
1.1 초기화 및 상태 변화 이벤트 연동 SDK 예제 | 1.1.6. 사용자 추적 허용 팝업 노출 제어하기(iOS 3.10.13 이상 버전 적용시 해당)
Unity SDK를 3.13.3 버전으로 업그레이드
KakaoGameSDK(Android) - Unity에서 Android APK를 바로 빌드하기 위한 설정 필요
Gradle Version 설정(3.13.3 버전부터 빌드시 사용하는 gradle이 6.1.1를 사용하게 됨)
유니티 2020.3.15f1, 2021.1.16f1 이상 사용하는 경우 다른 설정 필요없음
유니티에 포함된 Android gradleVersion 6.1.1로 수정
Gradle 6.1.1 download
다운로드 받은 gradle 6.1.1폴더를 유니티에서 설정
gradle폴더를 다른 곳에 다운로드 후에 유니티 설정에서 gradle 설치 폴더를 해당 폴더로 설정(Preferences > External Tools > Android > Gradle Installed with Unity)
Unity SDK를 3.10.x 버전에서 3.11.0 버전으로 업그레이드
KakaoGameSDK(Android) - Unity에서 Android APK를 바로 빌드하기 위한 설정 필요
Gradle Version 설정(3.11.0 버전부터 빌드시 사용하는 gradle이 5.6.4를 사용하게 됨)
유니티 2020.1 이상 사용하는 경우 다른 설정 필요없음
유니티 2018.4 이상 버전의 경우 유니티에 포함된 Android gradleVersion 5.6.4로 수정
Gradle 5.6.4 download - https://services.gradle.org/distributions/gradle-5.6.4-all.zip
사용중인 유니티 폴더 내에서 gradle 재설정
<유니티 설치폴더>/PlaybackEngines/AndroidPlayer/Tools/gradle/lib 폴더를 다운로드 받은 gradle 5.6.4 lib 폴더를 교체(lib 폴더만 교체)
다운로드 받은 gradle 5.6.4폴더를 유니티에서 설정
gradle폴더를 다른 곳에 다운로드 후에 유니티 설정에서 gradle 설치 폴더를 해당 폴더로 설정(Preferences > External Tools > Android > Gradle Installed with Unity)
참고 : https://developers.google.com/ar/develop/unity/android-11-build
TargetSDK Version 30으로 올리면서 Unity에서 사용하는 Android SDK내에 BuildToolsVersion 30 설치 필요
<유니티 설치폴더>/PlaybackEngines/AndroidPlayer/SDK/tools/bin 폴더 내에서 sdkmanager CLI 실행
./sdkmanager "platform-tools" "build-tools;30.0.3" "platforms;android-30"
KakaoGameSDK(iOS) -
최소 지원 버전이 11.0으로 변경되면서 유니티 내에서도 "Target minimum iOS Version"을 11.0으로 변경 필요
카카오 멀티앱 로그인 사용시 필요한 설정사항
3.11.0 버전부터 카카오 멀티앱 로그인을 지원(사전에 기술PM을 통해서 협의된 앱만 사용 가능)
Unity SDK 설치 가이드 내에 1.1 Unity SDK 설치 | 1.1.3.4. 카카오 멀티앱 로그인 기능 사용시 필요한 설정 항목을 참고
Unity SDK를 3.10.x 버전에서 3.10.15 버전으로 업그레이드
KakaoGameSDK(iOS) - Facebook 인증을 사용하는 경우만 해당
3.10.15 버전에 Facebook SDK 가 7.1.1 버전으로 업데이트됨-> 이 버전부터 swift 버전도 지원하게 되어 프로젝트 설정이 필요함)
유니티에서 iOS 빌드 후에 프로젝트에 빈 swift 파일 하나 추가
경고 창에서 bridging header file 생성 하지 않도록 설정
Unity SDK를 3.10.x 버전에서 3.10.11 버전으로 업그레이드
KakaoGameSDK(iOS)
3.10.11 버전부터 ios 빌드시 cocoapod을 통해서 iOS Framework를 설치하도록 변경되었습니다.
cocoapod을 통해서 KakaoGame 관련 Framework를 설치하
3rd-party framework인 facebook / google framework를 기본 호환되는 버전 가이드
또는 개발사에서 원하는 버전을 적용할 수 있도록 설정 가능
적용 가이드
유니티 메뉴 > Assets > External Depdency Manager > iOS Resolver > Settings 선택
Cocoapods Integration > Xcode workspace 항목 선택 > OK
Assets/Kakaogame/Editor/KakaoGameDependencies.xml 파일에 cocoapods으로 설치할 framework 버전 명시
배포되는 패키지에는 기본 연동 되는 버전 기준으로 작성되어 있음
개발사에서 원하는 버전을 호환되는 범위내에서 수정해서 적용해도 무방함
KakaoGame Dependencies
<?xml version="1.0" encoding="utf-8"?> <dependencies> <iosPods> <iosPod name="FBSDKCoreKit" version="5.5.0" /> <iosPod name="FBSDKLoginKit" version="5.5.0" /> <iosPod name="FBSDKShareKit" version="5.5.0" /> <iosPod name="GoogleSignIn" version="5.0.2" /> <iosPod name="KakaoGameSDK/KakaoGame" version="3.10.11" /> <iosPod name="KakaoGameSDK/KakaoGameFacebook" version="3.10.11" /> <iosPod name="KakaoGameSDK/KakaoGameGoogle" version="3.10.11" /> <iosPod name="KakaoGameSDK/KakaoGameKakao" version="3.10.11" /> </iosPods> </dependencies>
ex) FacebookSDK를 5.5.0으로 명시해놨지만 5.6.0을 적용해도 무방 / 단, Major 버전이 변경되는 6.0.0 변경은 안 됨.
유니티 2019.3 버전에서 cocoapods을 사용시 추가 가이드
cocoapods을 통해서 설치하면 Xcode workspace 아래에 Pods 프로젝트 상에 Podfile내에 명시한 라이브러리가 설치됨
라이브러리들은 application project에 정상적으로 링크되지만, 리소스들은 application이 아닌 UnityFramework target에 링크되어 SDK에서 사용하는 리소스들이 표시가 안됨
그래서 수동으로 application(Unity-iPhone) target에 해당 리소스들을 추가해줘야 함 (아래 스샷 참조)
Step 1) Unity-iPhone target > Copy Bundle Resources > + 항목 선택
Step 2)Add Other... 항목 선택
Step 3) 수동으로 Pods/KakaoGameSDK/KakaoGameFramework/KakaoGameResources.bundle 파일 선택
Unity SDK를 3.10.x 버전에서 3.10.9 버전으로 업그레이드
KakaoGameSDK
3.10.9 버전부터 유니티 2019.3.x 버전을 지원하게 됩니다.
Android - custom gradle파일을 지원하기 위해 현재(2020.4.14기준) 2019.3.8 버전만 사용 가능
iOS
Unity 2019.3 버전 이상 사용 경우
기본 Graphics API가 metal로만 설정되어 SDK가 지원하는 iOS 버전이지만 metal API를 지원하지 않는 기기에서 설치 불가능 이슈
Player Settings -> Other Settings -> Rendering -> Auto Graphics API 체크박스 해제 후 '+' 버튼을 통해서 OpenGLES2 항목 추가 후 빌드
FacebookSDK 라이브러리 제거
KakaoGame SDK에서 하위버전에서 사용하는 불필요한 SDK를 지워주도록 스크립트가 추가되어 있음
처음 SDK 업데이트 후에 빌드 전에 한 번더 확인(아래 파일이 제거되었는지)
Assets/FacebookSDK/Plugins/Android/Facebook.Unity.IOS.dll
Assets/FacebookSDK/Plugins/iOS/Facebook.Unity.Android.dll
Unity SDK를 3.10.4 버전을 사용중이면서 Signin with Apple 인증을 사용할 경우
이 경우에는 iOS 12 이하 버전을 적용하면서 변경된 부분이 있어서 3.10.6 이상 버전으로 업그레이드를 하셔야 합니다.
Unity SDK를 3.9.0 버전에서 3.10.x 버전으로 업그레이드
3.10.x 버전으로 업그레이드하는 데는 별도의 단계가 필요 없습니다.
Unity SDK를 3.7.1 버전에서 3.9.0 버전으로 업그레이드
3.9.0 버전으로 업그레이드하는 데는 별도의 단계가 필요 없습니다.
Unity SDK를 3.6.0 버전에서 3.7.1 버전으로 업그레이드
KakaoGameSDK
3.7.1 버전부터 Android gradle build를 지원하게 되어 기존에 Android Native library 를 제거해주는 동작 필요(3.8.0에서는 자동으로 해주도록 기능 추가)
Assets/Kakaogame/AndroidPlugins/google-play-services_lib.plugin
Assets/Kakaogame/AndroidPlugins/kakao_android_sdk_for_eclipse.plugin
Assets/Kakaogame/AndroidPlugins/KakaoGameSDK.libs
Assets/Kakaogame/AndroidPlugins/KakaoGameSDK.plugin/assets
Assets/Kakaogame/AndroidPlugins/KakaoGameSDK.plugin/res/values
위의 경로의 폴더 수동 제거 필요