KakaoGameSDK Unity 업그레이드 가이드

Unity SDK를 3.19.0 버전으로 업그레이드

KakaoGameSDK

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 패키지를 직접 설치해주어야 합니다.

Facebook SDK가 업데이트 되어서 Facebook Client Token 추가가 필수로 변경 되었습니다.

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)

  • 프로젝트 빌드시 스크립트를 추가하여 수동 작업을 제거했습니다.

  • 활동 추적 팝업 노출을 위한 설정을 유니터 에디터환경에서 미리 추가할 수 있도록 변경하였습니다.

Unity SDK를 3.13.3 버전으로 업그레이드

KakaoGameSDK(Android) - Unity에서 Android APK를 바로 빌드하기 위한 설정 필요

  1. Gradle Version 설정(3.13.3 버전부터 빌드시 사용하는 gradle이 6.1.1를 사용하게 됨)

    1. 유니티 2020.3.15f1, 2021.1.16f1 이상 사용하는 경우 다른 설정 필요없음

    2. 유니티에 포함된 Android gradleVersion 6.1.1로 수정

      1. Gradle 6.1.1 download

      2. 다운로드 받은 gradle 6.1.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를 바로 빌드하기 위한 설정 필요

  1. Gradle Version 설정(3.11.0 버전부터 빌드시 사용하는 gradle이 5.6.4를 사용하게 됨)

    1. 유니티 2020.1 이상 사용하는 경우 다른 설정 필요없음

    2. 유니티 2018.4 이상 버전의 경우 유니티에 포함된 Android gradleVersion 5.6.4로 수정

      1. Gradle 5.6.4 download - https://services.gradle.org/distributions/gradle-5.6.4-all.zip

      2. 사용중인 유니티 폴더 내에서 gradle 재설정

        1. <유니티 설치폴더>/PlaybackEngines/AndroidPlayer/Tools/gradle/lib 폴더를 다운로드 받은 gradle 5.6.4 lib 폴더를 교체(lib 폴더만 교체)

      3. 다운로드 받은 gradle 5.6.4폴더를 유니티에서 설정

        1. gradle폴더를 다른 곳에 다운로드 후에 유니티 설정에서 gradle 설치 폴더를 해당 폴더로 설정(Preferences > External Tools > Android > Gradle Installed with Unity)

    3. 참고 : https://developers.google.com/ar/develop/unity/android-11-build

  2. TargetSDK Version 30으로 올리면서 Unity에서 사용하는 Android SDK내에 BuildToolsVersion 30 설치 필요

    1. <유니티 설치폴더>/PlaybackEngines/AndroidPlayer/SDK/tools/bin 폴더 내에서 sdkmanager CLI 실행

    2. ./sdkmanager "platform-tools" "build-tools;30.0.3" "platforms;android-30"

 

KakaoGameSDK(iOS) - 

  1. 최소 지원 버전이 11.0으로 변경되면서 유니티 내에서도 "Target minimum iOS Version"을 11.0으로 변경 필요

     

  2. 카카오 멀티앱 로그인 사용시 필요한 설정사항

    1. 3.11.0 버전부터 카카오 멀티앱 로그인을 지원(사전에 기술PM을 통해서 협의된 앱만 사용 가능)

    2. Unity SDK 설치 가이드 내에  항목을 참고



Unity SDK를 3.10.x 버전에서 3.10.15 버전으로 업그레이드

KakaoGameSDK(iOS) - Facebook 인증을 사용하는 경우만 해당

  1. 3.10.15 버전에 Facebook SDK 가 7.1.1 버전으로 업데이트됨-> 이 버전부터 swift 버전도 지원하게 되어 프로젝트 설정이 필요함)

    1. 유니티에서 iOS 빌드 후에 프로젝트에 빈 swift 파일 하나 추가

       

       

       

    2. 경고 창에서 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를 기본 호환되는 버전 가이드

    • 또는 개발사에서 원하는 버전을 적용할 수 있도록 설정 가능

  • 적용 가이드

    1. 유니티 메뉴 > Assets > External Depdency Manager > iOS Resolver > Settings 선택

       

    2. Cocoapods Integration > Xcode workspace 항목 선택 > OK

       

    3. Assets/Kakaogame/Editor/KakaoGameDependencies.xml 파일에 cocoapods으로 설치할 framework 버전 명시

      1. 배포되는 패키지에는 기본 연동 되는 버전 기준으로 작성되어 있음

      2. 개발사에서 원하는 버전을 호환되는 범위내에서 수정해서 적용해도 무방함

        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>
      3. 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에 해당 리소스들을 추가해줘야 함 (아래 스샷 참조)

    1. Step 1) Unity-iPhone target > Copy Bundle Resources > + 항목 선택

       

    2. Step 2)Add Other... 항목 선택

       

    3. 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

    • 위의 경로의 폴더 수동 제거 필요