Troubleshooting
    • PDF

    Troubleshooting

    • PDF

    기사 요약

    Classic/VPC 환경에서 이용 가능합니다.

    64-bit 환경에서 빌드할 때 네아로(네이버 아이디 로그인) 시도 시 크래시 발생 (API 28 이상의 Android 빌드)

    1. AndroidManifest.xml 파일에 다음 코드를 추가해 주십시오.
      • Unity의 경우, /Assets/Plugins/Android/AndroidManifest.xml를 수정
      // TODO : <application> 태그 안에 넣어주십시오.
      
      <application>
      ...
         <uses-library android:name="org.apache.http.legacy" android:required="false" />
      ...
      </application>
      
    참고

    해당 부분이 패치된 라이브러리의 교체로 대신할 수 있습니다. gamepot-channel-naver.aar

    플레이 스토어 APK 업로드 시 com.nhncorp.nelo2.android.util 암호화 패턴 보안 알림 발생

    게임팟 SDK 3.3.0 부터는 nelo2-android-sdk-https-0.12.0.aar / nelo2-android-sdk-common-0.12.0.aar 가 탑재되어 있으며 위 이슈는 해결이 되었습니다. 다만 변경된 네이버 클라우드 ELSA 라이브러리로 인해 minSDK 버전이 19이상으로 해야 합니다.

    [게임팟 SDK 3.2.0 이하 버전 기준]

    1. logging 기능 관련 라이브러리가 obsolete여서 발생하는 문제
    2. (대시보드 로그 기능을 사용하지 않을 경우) Gamepot SDK의 라이브러리 중 아래 목록의 라이브러리를 제거
      • gamepot-logger.aar
      • nelo2-android-sdk-common-0.10.2.jar
      • nelo2-android-sdk-https-0.10.2.jar

    IOS 빌드 시 오류 발생

    'XXXXXX.framework'가 i386 x86_64 Archive 정보를 가지고 있어서 오류가 발생하는 경우는 다음과 같습니다.

    error: Building for iOS, but the linked and embedded framework 'XXXXXX.framework' was built for iOS + iOS Simulator.
    

    허용되지 않은 아키텍쳐를 제거하는 코드입니다. 만일 NaverThirdPartyLogin.framework가 문제였다면 아래와 같이 작업하여 제거 후 빌드를 진행합니다.

    lipo -remove x86_64 ./NaverThirdPartyLogin.framework/NaverThirdPartyLogin -o ./NaverThirdPartyLogin.framework/NaverThirdPartyLogin
    lipo -remove i386 ./NaverThirdPartyLogin.framework/NaverThirdPartyLogin -o ./NaverThirdPartyLogin.framework/NaverThirdPartyLogin
    

    Line i386 x86_64 IOS Archive 업로드 이슈

    콘솔(터미널)에서 LineSDK.framework 파일 위치로 이동 후 아래 명령어를 하나씩 입력해 주십시오.

    허용되지 않은 아키텍쳐를 제거하는 코드입니다.

    lipo -remove x86_64 ./LineSDK.framework/LineSDK -o ./LineSDK.framework/LineSDK
    lipo -remove i386 ./LineSDK.framework/LineSDK -o ./LineSDK.framework/LineSDK
    lipo -remove x86_64 ./LineSDKObjC.framework/LineSDKObjC -o ./LineSDKObjC.framework/LineSDKObjC
    lipo -remove i386 ./LineSDKObjC.framework/LineSDKObjC -o ./LineSDKObjC.framework/LineSDKObjC
    

    AdbrixRM i386 x86_64 IOS 빌드 이슈

    콘솔(터미널)에서 AdBrixRM.framework 파일 위치로 이동 후 아래 명령어를 하나씩 입력해 주십시오.

    허용되지 않은 아키텍쳐를 제거하는 코드입니다.

    lipo -remove x86_64 ./AdBrixRM.framework/AdBrixRM -o ./AdBrixRM.framework/AdBrixRM
    lipo -remove i386 ./AdBrixRM.framework/AdBrixRM -o ./AdBrixRM.framework/AdBrixRM
    

    네아로 NaverThirdPartyLogin.framework i386 x86_64 이슈

    허용되지 않은 아키텍쳐를 제거하는 코드입니다.

    lipo -remove x86_64 ./NaverThirdPartyLogin.framework/NaverThirdPartyLogin -o ./NaverThirdPartyLogin.framework/NaverThirdPartyLogin
    lipo -remove i386 ./NaverThirdPartyLogin.framework/NaverThirdPartyLogin -o ./NaverThirdPartyLogin.framework/NaverThirdPartyLogin
    

    Unity 2018.4.4 이상, Unity 2019.2.0 이상에서 Android 빌드 이슈

    1. mainTemplate.gradle 파일을 아래와 같이 수정해 주십시오.

      • TODO 항목을 참고해 주십시오.
      // TODO : GradleVersion이 사용되는 곳을 모두 제거합니다.
      
      buildscript {
          repositories {
              // if (GradleVersion.current() >= GradleVersion.version("4.2")) {
                  google()
                  jcenter()
              // } else {
              //     jcenter()
              // }
          }
          dependencies {
              // if (GradleVersion.current() < GradleVersion.version("4.0")) {
              //     classpath 'com.android.tools.build:gradle:2.1.0'
              // } else if (GradleVersion.current() < GradleVersion.version("4.2")) {
              //     classpath 'com.android.tools.build:gradle:2.3.0'
              // } else {
                        // TODO : Android gradle plugin version을 3.4.0버전으로 변경합니다.
                  classpath 'com.android.tools.build:gradle:3.4.0'
              // }
              classpath 'com.google.gms:google-services:3.2.0'
          }
      }
      
      allprojects {
         repositories {
              flatDir {
                  dirs 'libs'
              }
      
              // if (GradleVersion.current() >= GradleVersion.version("4.2")) {
                  google()
                  jcenter()
              // } else {
              //     jcenter()
              // }
         }
      }
      
      
      dependencies {
          // if (GradleVersion.current() >= GradleVersion.version("4.2")) {
              implementation fileTree(include: ['*.jar'], dir: 'libs')
              implementation project(":GamePotResources")
              implementation project(':Firebase')
          // } else {
          //     compile fileTree(include: ['*.jar'], dir: 'libs')
          //     compile project(":GamePotResources")
          //     compile project(':Firebase')
          // }
      }
      
      fileTree(dir: 'libs', include: ['*.aar'])
              .each { File file ->
          // println file.name
          // if (GradleVersion.current() >= GradleVersion.version("4.2")) {
              dependencies.add("implementation", [name: file.name.lastIndexOf('.').with { it != -1 ? file.name[0..<it] : file.name }, ext: 'aar'])
          // } else {
          //     dependencies.add("compile", [name: file.name.lastIndexOf('.').with { it != -1 ? file.name[0..<it] : file.name }, ext: 'aar'])
          // }
      }
      
    2. Firebase 관련 파일을 수정해 주십시오.

      1. 링크를 통해 패치 파일을 다운로드해 주십시오.
      2. 아래와 같이 파일을 복사해 주십시오.
        /Firebase_patch/Assets/Firebase/Editor
         위 경로의 파일을 아래 경로에 복사
        -> {unity project}/Assets/Firebase/Editor
        
        {unity project}/Assets/PlayServicesResolver/Editor
         위 경로의 파일을 모두 삭제 후 아래 경로에 파일을 복사
        -> /Firebase_patch/Assets/PlayServicesResolver/Editor
        
      3. /Assets/Plugins/Android/Firebase/res 폴더가 생성되지 않았다면 Unity 다시 실행해 주십시오.

    (Unity) 네이버 라운지 SDK 적용 ( NaverSDK Ver 1.1.1 기준 설명)

    Unity 환경에서 네이버 라운지 SDK 적용하는 방법을 설명합니다. class duplication 에러의 경우 네이버 게임 FAQ를 참고해 주십시오.

    • 유니티 플러그인 패키지 적용시 navergame-sdk-1.1.1.aar 파일 미포함 또는 삭제 처리 진행
      ../Assets/NGSDK/Plugins/Android/navergame-sdk-1.1.1.aar

    • 안드로이드 네이티브 네이버 라운지 SDK 라이브러리를 탑재
      ../Assets/Plugins/Android/navergame-sdk-gradle-1.1.1.aar

    • mainTemplate.gradle 파일 수정 (네이버 라운지 SDK에서 사용되는 라이브러리 추가)

      dependencies {
      ..
          implementation 'androidx.multidex:multidex:2.0.1'
          implementation "androidx.recyclerview:recyclerview:1.2.0"
          implementation "androidx.viewpager2:viewpager2:1.0.0"
          implementation "com.squareup.retrofit2:retrofit:2.6.4"
      ...
      }
      
    • ../Assets/Plugins/Android/libs 폴더에 중복된 라이브러리 삭제 (삭제 리스트)

      ../Assets/Plugins/Android/libs/activity-1.0.0.aar
      ../Assets/Plugins/Android/libs/annotation-1.1.0.jar
      ../Assets/Plugins/Android/libs/collection-1.1.0.jar
      ../Assets/Plugins/Android/libs/core-1.3.0.aar
      ../Assets/Plugins/Android/libs/core-common-2.1.0.jar
      ../Assets/Plugins/Android/libs/core-runtime-2.0.0.aar
      ../Assets/Plugins/Android/libs/customview-1.0.0.aar
      ../Assets/Plugins/Android/libs/fragment-1.1.0.aar
      ../Assets/Plugins/Android/libs/lifecycle-common-2.1.0.jar
      ../Assets/Plugins/Android/libs/lifecycle-livedata-2.0.0.aar
      ../Assets/Plugins/Android/libs/lifecycle-livedata-core-2.0.0.aar
      ../Assets/Plugins/Android/libs/lifecycle-runtime-2.1.0.aar
      ../Assets/Plugins/Android/libs/lifecycle-viewmodel-2.1.0.aar
      ../Assets/Plugins/Android/libs/loader-1.0.0.aar
      ../Assets/Plugins/Android/libs/okhttp-4.9.1.jar
      ../Assets/Plugins/Android/libs/okio-2.8.0.jar
      ../Assets/Plugins/Android/libs/savedstate-1.0.0.aar
      ../Assets/Plugins/Android/libs/versionedparcelable-1.1.0.aar
      ../Assets/Plugins/Android/libs/viewpager-1.0.0.aar
      ../Assets/Plugins/Android/libs/retrofit-2.5.0.aar
      
    • NaverSDK Ver 1.2.X 버전 부터는 게임팟 SDK 네이버 로그인과 라이브러리 충돌로 네이버 로그인 기능 사용불가합니다.

    • NaverSDK Ver 1.3.2 버전 반영시

    1. ../Assets/Plugins/Android/libs 폴더에 중복된 라이브러리 삭제 (삭제 리스트) : 해당 항목은 적용하는 환경에 따라 빌드시 중복되는 라이브러리를 삭제해야 할 수도 있습니다.

      ../Assets/Plugins/Android/libs/retrofit-2.5.0.jar
      ../Assets/Plugins/Android/libs/vectordrawable-animated-1.1.0.aar
      ../Assets/Plugins/Android/libs/vectordrawable-1.1.0.aar
      ../Assets/Plugins/Android/libs/savedstate-1.0.0.aar
      ../Assets/Plugins/Android/libs/media-1.0.0.aar
      ../Assets/Plugins/Android/libs/browser-1.0.0.aar
      ../Assets/Plugins/Android/libs/appcompat-resources-1.2.0.aar
      ../Assets/Plugins/Android/libs/appcompat-1.2.0.aar
      ../Assets/Plugins/Android/libs/activity-1.0.0.aar
      ../Assets/Plugins/Android/libs/okio-1.14.0.jar
      ../Assets/Plugins/Android/libs/okhttp-3.10.0.jar
      
    2. 네이버 라운지 SDK 라이브러리 위치 변경

      기존
      Assets/NGSDK/Plugins/Android/navergamesdk.androidlib/libs/navergame-sdk-gradle-1.3.2.aar 
      ->
      위치 변경 
      /Assets/Plugins/Android/navergame-sdk-gradle-1.3.2.aar
      
    3. 하기 경로에 NaverGameDependencies.xml 파일을 생성 ( 파일 내용을 하기 내용 참고) 후 Unity에서 Assets > Play Services Resolver > Android Resolver > Settings 메뉴 중 Use Jetifier 항목을 선택해 주십시오.
      Enable Resolution On Build / Enable Auto-Resolution / Patch gradle Template.properties 항목은 선택 해제한 상태에서 Resolver를 진행해 주십시오.
      /Assets/Firebase/Editor/NaverGameDependencies.xml

      <dependencies>
      
        <androidPackages>  
          <androidPackage spec="com.squareup.retrofit2:retrofit:2.9.0">
          </androidPackage>
          <androidPackage spec="androidx.viewpager2:viewpager2:1.0.0">
          </androidPackage>
      
        </androidPackages>
      </dependencies>
      
    4. com.naver.nid.naveridlogin-android-sdk-4.2.6.aar 파일을 하기 경로에 넣어 빌드시 포함되도록 해주십시오
      /Assets/Plugins/Android/libs/com.naver.nid.naveridlogin-android-sdk-4.2.6.aar
      다운로드: com.naver.nid.naveridlogin-android-sdk-4.2.6.aar

    5. /Assets/NGSDK/Plugins/iOS/NCSDKUnityManager.mm 파일 수정

      기존 :
      
      (NSString *)getAuthSettingDescription {
          return NNGSDKManager.shared.authSettingDescription;
      }
      
      수정 : 
      
      - (NSString *)getAuthSettingDescription {
          return NNGSDKManager.shared.authSettingDescription;
      }
      
      
    6. launcherTemplate.gradle 내에 하기 부분 추가

        packagingOptions {
    	…..
    	// 20230322Add cause More than one file was found with OS independent path 'META-INF/kotlin-stdlib-common.kotlin_module'.
    	exclude("META-INF/*.kotlin_module") //-> 추가
        ...
        }
    

    (Unity) GoogleMobileAds SDK 적용 ( GoogleMobileAds-v6.1.2 기준 설명)

    AdMob SDK(Unity)의 경우 유니티 패키지를 import 후 Unity Play Services Resolver 기능을 사용해야 합니다.

    Unity에서 Assets > Play Services Resolver > Android Resolver > Settings 메뉴 중 Use Jetifier 항목을 선택해 주십시오.
    Enable Resolution On Build / Enable Auto-Resolution / Patch gradle Template.properties 항목은 선택 해제한 상태에서 Resolver를 진행해 주십시오.

    Unity에서 Assets > Play Services Resolver > IOS Resolver > Settings 메뉴 중
    Add use_frameworks! to podfile / Always add the main target to Podfile 항목은 선택 해제한 상태에서 IOS 빌드를 진행해 주십시오.

    이후 중복 라이브러리 오류의 경우 둘 중에 한 곳의 라이브러리를 제거해 주십시오.

    중복되는 라이브러리 파일 목록:

    ..Assets/Plugins/Android/libs/annotation-1.1.0.jar
    ..Assets/Plugins/Android/libs/browser-1.0.0.aar
    ..Assets/Plugins/Android/libs/core-common-2.1.0.jar
    ..Assets/Plugins/Android/libs/core-runtime-2.0.0.aar
    ..Assets/Plugins/Android/libs/core-1.3.0.aar
    ..Assets/Plugins/Android/libs/coordinatorlayout-1.0.0.aar
    ..Assets/Plugins/Android/libs/collection-1.1.0.jar
    ..Assets/Plugins/Android/libs/asynclayoutinflater-1.0.0.aar
    ..Assets/Plugins/Android/libs/fragment-1.1.0.aar
    ..Assets/Plugins/Android/libs/drawerlayout-1.0.0.aar
    ..Assets/Plugins/Android/libs/documentfile-1.0.0.aar
    ..Assets/Plugins/Android/libs/customview-1.0.0.aar
    ..Assets/Plugins/Android/libs/cursoradapter-1.0.0.aar
    ..Assets/Plugins/Android/libs/loader-1.0.0.aar
    ..Assets/Plugins/Android/libs/lifecycle-viewmodel-2.1.0.aar
    ..Assets/Plugins/Android/libs/lifecycle-runtime-2.1.0.aar
    ..Assets/Plugins/Android/libs/lifecycle-livedata-2.0.0.aar
    ..Assets/Plugins/Android/libs/lifecycle-common-2.1.0.jar
    ..Assets/Plugins/Android/libs/legacy-support-core-utils-1.0.0.aar
    ..Assets/Plugins/Android/libs/legacy-support-core-ui-1.0.0.aar
    ..Assets/Plugins/Android/libs/interpolator-1.0.0.aar
    ..Assets/Plugins/Android/libs/viewpager-1.0.0.aar
    ..Assets/Plugins/Android/libs/versionedparcelable-1.1.0.aar
    ..Assets/Plugins/Android/libs/swiperefreshlayout-1.0.0.aar
    ..Assets/Plugins/Android/libs/sqlite-framework-2.0.1.aar
    ..Assets/Plugins/Android/libs/sqlite-2.0.1.aar
    ..Assets/Plugins/Android/libs/slidingpanelayout-1.0.0.aar
    ..Assets/Plugins/Android/libs/print-1.0.0.aar
    ..Assets/Plugins/Android/libs/localbroadcastmanager-1.0.0.aar
    ..Assets/Plugins/Android/libs/lifecycle-livedata-core-2.0.0.aar
    ..Assets/Plugins/Android/libs/play-services-basement-17.5.0.aar
    ..Assets/Plugins/Android/libs/play-services-ads-identifier-17.0.0.aar
    ..Assets/Plugins/Android/libs/play-services-measurement-sdk-api-18.0.1.aar
    ..Assets/Plugins/Android/libs/play-services-measurement-impl-18.0.1.aar
    ..Assets/Plugins/Android/libs/play-services-measurement-base-18.0.1.aar
    ..Assets/Plugins/Android/libs/play-services-tasks-17.2.0.aar
    ..Assets/Plugins/Android/libs/play-services-measurement-18.0.1.aar
    
    ..Assets/Plugins/Android/libs/play-services-measurement-sdk-18.0.1.aar
    ..Assets/Plugins/Android/libs/play-services-measurement-api-18.0.1.aar
    
    ..Assets/Plugins/IOS/Frameworks/nanopb.framework
    

    (Unity) Appsflyer/Singular SDK 적용 (appsflyer-v6.3.2 /Singular -v4.3.2기준 설명)

    다른 SDK과 동일하게 UnityAppController class는 빌드하는 프로젝트에서 하나의 파일에서만 상속을 받아야 합니다. 게임팟의 유니티 플러그인 패키지를 탑재하는 경우 기본적으로 GamePotAppDelegate.h에서 상속을 받고 있습니다. appsflyer 나 Singular 같은 광고 툴의 경우 해당 라이브러리도 UnityAppController를 상속을 받아 GAMEPOT SDK 동작이 안 될 수 있습니다
    하나의 파일에서만 상속받도록 수정하여 사용해야 합니다. 수정하는 두 가지 방법은 다음과 같습니다.

    직접 수정하는 방법

    아래 파일을 다운로드한 후 파일본 내용과 같이 수정합니다.

    <수정 파일본>
    appsflyer-v6.3.2 기준 패치
    Singular-v4.3.2 기준 패치

    • Assets > Plugins > IOS > Source 에 있는 GamePotAppDelegate.h 수정 파일 내용과 같이 수정
    • appsflyer 의 경우 :
      (a) AppsFlyerAppController.mm 을 복제해서 AppsFlyerAppController.h 파일 생성
      (b) AppsFlyerAppController.h , AppsFlyerAppController.mm 수정파일 내용과 같이 수정
    • Singular 의 경우 :
      (a) SingularAppDelegate.mm 을 복제해서 SingularAppDelegate.h 파일 생성
      (b) SingularAppDelegate.h, SingularAppDelegate.mm 수정파일 내용과 같이 수정

    해당 파일을 다운로드 후 프로젝트에 Import하는 방법

    아래 파일을 다운로드한 후 프로젝트에 Import합니다.

    <Unity import 파일>
    appsflyer-v6.3.2
    Singular-v4.3.2

    (Unity) Firebase SDK 별도로 적용할 때

    Firebase Unity 11.6.0 이하 기준 설명

    유니티 에디터 버전이 2019.X 미만 버전인 경우 하기 패치를 우선 진행해 주십시오.

    패치 다운로드: 패치 다운로드

        [폴더 및 파일 교체]
    
        ../Assets/ExternalDependencyManager
    
        ../Assets/Firebase
    
        - Firebase 라이브러리 교체에 따른 폴더 이름 수정 
        
        기존 :  ../Assets/Plugins/Android/Firebase
        
        수정 :  ../Assets/Plugins/Android/FirebaseApp.androidlib
    
        - mainTemplate.gradle 수정 (폴더명 변경됨에 따른 수정)
        
        기존 : 
        
        dependencies {
            ...
        	implementation project('Firebase')
        
        수정 :
        
        dependencies {
            ...
        	implementation project('FirebaseApp.androidlib')
            ...
    
    • GAMEPOT 유니티 플러그인 패키지에는 일부 Firebase SDK가 있어 별도의 Firebase SDK를 탑재시 라이브러리 중복에 의한 오류가 발생합니다.
      Firebase Unity SDK(FirebaseAnalytics.unitypackage / FirebaseMessaging.unitypackage + 추가하고자 하는 Firebase SDK)를 import 후 Unity Play Services Resolver 기능을 사용해야 합니다.
      Unity에서 Assets > Play Services Resolver > Android Resolver > Settings 메뉴 중 Use Jetifier 항목을 선택해 주십시오.
      Enable Resolution On Build / Enable Auto-Resolution / Patch gradle Template.properties 항목은 선택 해제한 상태에서 Resolver를 진행해 주십시오.
      Unity에서 Assets > Play Services Resolver > IOS Resolver > Settings 메뉴 중 Add use_frameworks! to podfile / Always add the main target to Podfile 항목은 선택 해제한 상태에서 IOS 빌드를 진행해 주십시오.
    1. 중복되는 라이브러리 파일 삭제 필요:
    ../Assets/Plugins/Android/libs/viewpager-1.0.0.aar 
    ../Assets/Plugins/Android/libs/versionedparcelable-1.1.0.aar 
    ../Assets/Plugins/Android/libs/transport-runtime-2.2.5.aar 
    ../Assets/Plugins/Android/libs/transport-backend-cct-2.3.3.aar 
    ../Assets/Plugins/Android/libs/transport-api-2.2.1.aar 
    ../Assets/Plugins/Android/libs/swiperefreshlayout-1.0.0.aar 
    ../Assets/Plugins/Android/libs/slidingpanelayout-1.0.0.aar 
    ../Assets/Plugins/Android/libs/print-1.0.0.aar 
    ../Assets/Plugins/Android/libs/play-services-tasks-17.2.0.aar 
    ../Assets/Plugins/Android/libs/play-services-stats-17.0.0.aar 
    ../Assets/Plugins/Android/libs/play-services-measurement-sdk-api-18.0.1.aar 
    ../Assets/Plugins/Android/libs/play-services-measurement-sdk-18.0.1.aar 
    ../Assets/Plugins/Android/libs/play-services-measurement-impl-18.0.1.aar 
    ../Assets/Plugins/Android/libs/play-services-measurement-base-18.0.1.aar 
    ../Assets/Plugins/Android/libs/play-services-measurement-api-18.0.1.aar 
    ../Assets/Plugins/Android/libs/play-services-measurement-18.0.1.aar 
    ../Assets/Plugins/Android/libs/play-services-cloud-messaging-16.0.0.aar 
    ../Assets/Plugins/Android/libs/play-services-basement-17.5.0.aar 
    ../Assets/Plugins/Android/libs/play-services-base-17.5.0.aar 
    ../Assets/Plugins/Android/libs/play-services-ads-identifier-17.0.0.aar 
    ../Assets/Plugins/Android/libs/localbroadcastmanager-1.0.0.aar 
    ../Assets/Plugins/Android/libs/loader-1.0.0.aar 
    ../Assets/Plugins/Android/libs/lifecycle-viewmodel-2.1.0.aar 
    ../Assets/Plugins/Android/libs/lifecycle-runtime-2.1.0.aar 
    ../Assets/Plugins/Android/libs/lifecycle-livedata-core-2.0.0.aar 
    ../Assets/Plugins/Android/libs/lifecycle-livedata-2.0.0.aar 
    ../Assets/Plugins/Android/libs/lifecycle-common-2.1.0.jar 
    ../Assets/Plugins/Android/libs/legacy-support-core-utils-1.0.0.aar 
    ../Assets/Plugins/Android/libs/legacy-support-core-ui-1.0.0.aar 
    ../Assets/Plugins/Android/libs/javax.inject-1.jar 
    ../Assets/Plugins/Android/libs/interpolator-1.0.0.aar 
    ../Assets/Plugins/Android/libs/fragment-1.1.0.aar 
    ../Assets/Plugins/Android/libs/firebase-messaging-21.0.1.aar 
    ../Assets/Plugins/Android/libs/firebase-measurement-connector-18.0.0.aar 
    ../Assets/Plugins/Android/libs/firebase-installations-interop-16.0.1.aar 
    ../Assets/Plugins/Android/libs/firebase-installations-16.3.5.aar 
    ../Assets/Plugins/Android/libs/firebase-iid-interop-17.0.0.aar 
    ../Assets/Plugins/Android/libs/firebase-iid-21.0.1.aar 
    ../Assets/Plugins/Android/libs/firebase-encoders-json-17.1.0.aar 
    ../Assets/Plugins/Android/libs/firebase-encoders-16.1.0.jar 
    ../Assets/Plugins/Android/libs/firebase-datatransport-17.0.10.aar 
    ../Assets/Plugins/Android/libs/firebase-core-18.0.1.aar 
    ../Assets/Plugins/Android/libs/firebase-components-16.1.0.aar 
    ../Assets/Plugins/Android/libs/firebase-common-19.5.0.aar 
    ../Assets/Plugins/Android/libs/firebase-annotations-16.0.0.jar 
    ../Assets/Plugins/Android/libs/firebase-analytics-18.0.1.aar 
    ../Assets/Plugins/Android/libs/drawerlayout-1.0.0.aar 
    ../Assets/Plugins/Android/libs/documentfile-1.0.0.aar 
    ../Assets/Plugins/Android/libs/customview-1.0.0.aar 
    ../Assets/Plugins/Android/libs/cursoradapter-1.0.0.aar 
    ../Assets/Plugins/Android/libs/core-runtime-2.0.0.aar 
    ../Assets/Plugins/Android/libs/core-common-2.1.0.jar 
    ../Assets/Plugins/Android/libs/core-1.3.0.aar 
    ../Assets/Plugins/Android/libs/coordinatorlayout-1.0.0.aar
    ../Assets/Plugins/Android/libs/collection-1.1.0.jar 
    ../Assets/Plugins/Android/libs/asynclayoutinflater-1.0.0.aar 
    ../Assets/Plugins/Android/libs/annotation-1.1.0.jar
    ../Assets/Plugins/IOS/Frameworks/nanopb.framework 
    ../Assets/Plugins/IOS/Frameworks/FirebaseNanoPB.framework 
    ../Assets/Plugins/IOS/Frameworks/FirebaseMessaging.framework 
    ../Assets/Plugins/IOS/Frameworks/FirebaseInstanceID.framework 
    ../Assets/Plugins/IOS/Frameworks/FirebaseCoreDiagnostics.framework 
    ../Assets/Plugins/IOS/Frameworks/FirebaseCore.framework 
    ../Assets/Plugins/IOS/Frameworks/FirebaseAnalytics.framework
    
    1. ../Assets/Plugins/Android/AndroidManifest.xml 내 FCM 관련 코드가 적용되어 있는지 확인
    ....
    </activity>
    
    <!-- FCM [start]-->
           <service
                android:exported="false"
                android:name="io.gamepot.common.GamePotFCMIDService">
                <intent-filter>
                    <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
                </intent-filter>
            </service>
            <service
                android:exported="false"
                android:name="io.gamepot.common.GamePotFCMService">
                <intent-filter>
                    <action android:name="com.google.firebase.MESSAGING_EVENT"/>
                </intent-filter>
            </service>
    <!-- FCM [End]-->
    
    ...
    <meta-data android:name="android.max_aspect" android:value="2.1" />
    
    1. Firebase Unity 9.4.0 이상 적용시 IOS 빌드시 추가 변경 작업

    유니티 에디터에서 ios 빌드후 나온 결과에서 Podfile 파일을 찾아 아래와 같은 형태로 수정 ( 다른 라이브러리가 있는 경우 , :modular_headers -> true 부분을 추가 )
    Firebase / FirebaseCore / GoogleUtilities 는 예시와 같이 추가해야 합니다.

    예시 )
    
    [기존]
    ...
    target 'UnityFramework' do
      pod 'Firebase/Analytics', '9.4.0'
      pod 'Firebase/Core', '9.4.0'
      pod 'Firebase/Messaging', '9.4.0'
    end
    
    [수정]
    
    target 'UnityFramework' do
      pod 'Firebase/Analytics', '9.4.0' , :modular_headers => true
      pod 'Firebase/Core', '9.4.0' , :modular_headers => true
      pod 'Firebase/Messaging', '9.4.0' , :modular_headers => true
    
      pod 'Firebase', :modular_headers => true
      pod 'FirebaseCore', :modular_headers => true
      pod 'GoogleUtilities', :modular_headers => true
    end
    

    터미널 오픈 후 Podfile 파일이 있는 경로로 진입하여 pod install 명령어 수행 후 Unity-iPhone.xcworkspace 파일이 생기면 해당 프로젝트로 빌드 진행

    $ pod install
    

    Firebase Unity 11.6.0 이후 기준 설명

    게임팟 버전이 3.5.3 이하인 경우 3.6.3으로 패치를 우선 적용해 주십시오

    다운로드: 패치 다운로드
    gamepotGuide-Gamepot v3.6.0.pdf 참고 부탁드립니다.

    • GAMEPOT 유니티 플러그인 패키지에는 일부 Firebase SDK가 있어 별도의 Firebase SDK를 탑재시 라이브러리 중복에 의한 오류가 발생합니다.
      Firebase Unity SDK(FirebaseAnalytics.unitypackage / FirebaseMessaging.unitypackage + 추가하고자 하는 Firebase SDK)를 import 후 Unity Play Services Resolver 기능을 사용해야 합니다.
      [Android]
      a. Unity에서 Assets > Play Services Resolver > Android Resolver > Settings 메뉴 중 Use Jetifier 항목을 선택
      b. Enable Resolution On Build / Enable Auto-Resolution / Patch gradle Template.properties 항목은 선택 해제한 상태에서 Resolver를 진행
      [iOS]
      a. Unity에서 Assets > Play Services Resolver > IOS Resolver > Settings 메뉴 중 Add use_frameworks! to podfile / Always add the main target to Podfile 항목은 선택 해제한 상태에서 IOS 빌드를 진행
    1. 중복되는 라이브러리 파일 삭제 필요
    • 중복 오류 예시
    Duplicate class android.support.v4.app.RemoteActionCompatParcelizer found in modules jetified-androidx.core.core-1.9.0-runtime (:androidx.core.core-1.9.0:) and jetified-core-1.3.2-runtime (:core-1.3.2:)
    
    • 중복되는 라이브러리 목록
    [Android/libs/..]
    annotations-13.0.jar
    core-1.3.2.aar
    core-ktx-1.3.2.aar
    annotation-experimental-1.0.0.aar
    core-runtime-2.1.0.aar
    core-common-2.1.0.jar
    collection-1.1.0.jar
    customview-1.0.0.aar
    documentfile-1.0.0.aar
    fragment-1.3.0.aar
    lifecycle-common-2.3.0.jar
    lifecycle-livedata-2.0.0.aar
    legacy-support-core-utils-1.0.0.aar
    loader-1.0.0.aar
    print-1.0.0.aar
    versionedparcelable-1.1.0.aar
    viewpager-1.0.0.aar
    lifecycle-livedata-2.0.0.aar
    lifecycle-runtime-2.3.0.aar
    localbroadcastmanager-1.0.0.aar
    transport-api-3.0.0.aar
    transport-backend-cct-3.1.7.aar
    transport-runtime-3.1.7.aar
    play-services-cloud-messaging-16.0.0.aar
    play-services-base-18.0.1.aar
    play-services-basement-18.1.0.aar
    play-services-ads-identifier-17.0.0.aar
    play-services-measurement-18.0.1.aar
    play-services-measurement-sdk-api-18.0.1.aar
    play-services-measurement-base-18.0.1.aar
    play-services-measurement-api-18.0.1.aar
    play-services-measurement-impl-18.0.1.aar
    play-services-measurement-sdk-18.0.1.aar
    play-services-stats-17.0.2.aar
    play-services-tasks-18.0.1.aar
    firebase-analytics-18.0.1.aar
    firebase-annotations-16.1.0.jar
    firebase-common-20.1.2.aar
    firebase-components-17.0.1.aar
    firebase-measurement-connector-19.0.0.aar
    firebase-datatransport-18.1.6.aar
    firebase-encoders-17.0.0.jar
    firebase-encoders-json-18.0.0.aar
    firebase-encoders-proto-16.0.0.jar
    firebase-iid-21.1.0.aar
    firebase-iid-interop-17.1.0.aar
    firebase-installations-17.0.2.aar
    firebase-installations-interop-17.0.2.aar
    firebase-messaging-23.0.8.aar
    jsr305-3.0.1.jar
    javax.inject-1.jar
    kotlin-stdlib-1.5.31.jar
    kotlin-stdlib-common-1.5.31.jar
    kotlin-stdlib-jdk7-1.5.31.jar
    kotlin-stdlib-jdk8-1.5.31.jar
    
    [Android/..]
    androidx.activity.activity-1.0.0.aar
    androidx.lifecycle.lifecycle-viewmodel-2.1.0.aar
    androidx.lifecycle.lifecycle-livedata-core-2.0.0.aar
    androidx.savedstate.savedstate-1.0.0.aar 
    
    1. ../Assets/Plugins/Android/baseProjectTemplate 내용 추가
    plugins {
       ... 
     // Add the dependency for the Crashlytics Gradle plugin
        id 'com.google.firebase.crashlytics' version "2.9.9" apply false
    ...
    <meta-data android:name="android.max_aspect" android:value="2.1" />
    
    1. ../Assets/Plugins/Android/gradleTemplate 내 아래 내용으로 되어있는지 확인
    org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M
    org.gradle.parallel=true
    unityStreamingAssets=**STREAMING_ASSETS**
    
    # Android Resolver Properties Start
    android.useAndroidX=true
    android.enableJetifier=true
    # Android Resolver Properties End
    
    **ADDITIONAL_PROPERTIES**
    android.useAndroidX=true
    android.enableJetifier=true
    
    1. ./Assets/Plugins/Android/launcherTemplate 내 아래 내용 추가
    // Add the Crashlytics Gradle plugin
    apply plugin: 'com.google.firebase.crashlytics'
    
    dependencies {
    ...
    
    android {
         ...
       packagingOptions {
    		 ...
            exclude 'META-INF/kotlinx_coroutines_core.version'
        }
    }
    
    1. ./Assets/Plugins/Android/mainTemplate 내 아래 내용 추가
    android {
        ...
        packagingOptions {
            exclude 'META-INF/kotlinx_coroutines_core.version'
        }
    }
    
    1. ../Assets > Plugins > Andoird에 settingsTemplate 추가 및 아래 내용 입력
    pluginManagement {
        repositories {
            **ARTIFACTORYREPOSITORY**
            gradlePluginPortal()
            google()
            mavenCentral()
        }
    }
    
    include ':launcher', ':unityLibrary'
    **INCLUDES**
    
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
        repositories {
            **ARTIFACTORYREPOSITORY**
            google()
            mavenCentral()
            flatDir {
                dirs "${project(':unityLibrary').projectDir}/libs"
            }
        }
    }
    

    (Unity) 유니티 에디터 옵션 중 minify를 사용하실 때

    게임팟 측면에서 관련하여 Proguard File 에서 게임팟 관련 내용을 모두 예외 처리해야 합니다.

    Build Settings > Player Settings > Player > Publishing Settings > Build 경로에서 Custom Proguard File 설정을 체크해 주시고,
    하기 내용을 사용하시는 라이브러리에 따라 추가로 정의하시어 사용하시면 됩니다.

    하기 내용:

    -keep class io.gamepot.common.GamePot { *; }
    -keep class io.gamepot.common.GamePotAppStatus { *; }
    -keep class io.gamepot.common.GamePotError { *; }
    -keep class io.gamepot.common.GamePotLicenseRestfulRequest { *; }
    -keep class io.gamepot.common.GamePotLog { *; }
    -keep class io.gamepot.common.GamePotSharedPref { *; }
    -keep class io.gamepot.common.GamePotPurchaseDetailList { *; }
    -keep class io.gamepot.common.GamePotAgreeBuilder { *; }
    -keep class io.gamepot.common.GamePotAgreeInfo { *; }
    -keep class io.gamepot.common.GamePotLocalPushBuilder { *; }
    -keep class io.gamepot.common.GamePotNoticeDialog { *; }
    -keep class io.gamepot.common.GamePotChat { *; }
    -keep class io.gamepot.common.GamePotChatMessage { *; }
    -keep class io.gamepot.common.GamePotLocale { *; }
    -keep class io.gamepot.common.GamePotPurchaseInfo { ; }
    -keep class io.gamepot.common.GamePotUtils { ; }
    -keep class io.gamepot.common.LinkingsQuery$ { ; }
    -keep class io.gamepot.common.GamePotPermission { ; }
    -keep public interface io.gamepot.common. {;}
    -keep class io.gamepot.unity.plugin.GamePotUnityPlugin$SDK { *; }
    -keep class com.google.firebase.FirebaseApp { *; }
    
    -keep class io.gamepot.channel.** { *; }
    -keep class io.gamepot.channel.google.signin { *; }
    
    -keep class com.google.firebase.iid { *; }
    -keep class com.android.billingclient { *; }
    -keep class com.android.billingclient.api { *; }
    
    -keep class com.google.gms.** {*;}
    -keep class com.google.android.gms.auth.** { *; }
    
    -keep class com.gaa.sdk.iap.** { ; }
    -keep class com.gaa.iap.sdk.unity.* { *; }
    
    -keep class com.samsung.android { *; }
    -dontwarn com.samsung.**
    

    android, targetsdkversion 31 이상으로 올렸을 때, 다음 에러와 함께 앱이 설치되지 않는 문제

    예시)
    Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/XXXXXXXX.tmp/base.apk (at Binary XML file line #445): io.gamepot.common.GamePotFCMIDService: Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present]
    

    AndroidManifest.xml 내 android:exported 정의를 해야 합니다.
    다음과 같은 문구를 추가해 주십시오. 이외에 activty / service / receiver 를 사용하는 것이 있다면 해당 부분에도 관련 용도에 맞게 정의를 해야 합니다.

    <예시>

           <service
                android:exported="false"
                android:name="io.gamepot.common.GamePotFCMIDService">
                <intent-filter>
                    <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
                </intent-filter>
            </service>
            <service
                android:exported="false"
                android:name="io.gamepot.common.GamePotFCMService">
                <intent-filter>
                    <action android:name="com.google.firebase.MESSAGING_EVENT"/>
                </intent-filter>
            </service>
            
            <!-- ELSA 서비스를 사용하지 않는 다면 하기 문구는 삭제 / gamepot-logger.aar가 빌드시 포함 안되게 진행 [start]-->
            <receiver
                android:exported="false"
                android:name="com.navercorp.nelo2.android.util.NetworkStatusReceiver">
                <intent-filter>
                    <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
                </intent-filter>
            </receiver>
            <!-- ELSA 서비스를 사용하지 않는 다면 하기 문구는 삭제 / gamepot-logger.aar가 빌드시 포함 안되게 진행 [end]-->
            
            
            <!-- 네이버 로그인을 사용하지 않는 다면 하기 문구는 삭제  [start]-->
            <activity android:exported="true" android:configChanges="orientation|screenSize" android:launchMode="singleTask" android:name="com.nhn.android.naverlogin.ui.OAuthCustomTabActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar">
                <intent-filter>
                    <action android:name="android.intent.action.VIEW"/>
                    <category android:name="android.intent.category.DEFAULT"/>
                    <category android:name="android.intent.category.BROWSABLE"/>
                    <data android:host="authorize" android:path="/" android:scheme="naver3rdpartylogin"/>
                </intent-filter>
            </activity>
            <!-- 네이버 로그인을 사용하지 않는다면 하기 문구는 삭제  [end]-->
    

    Unreal 의 경우

    Engine/Source/Programs/UnrealBuildTool/Platform/Android/UEDeployAndroid.cs 내 GenerateManifest() 함수에서 Manifest를 만드는 문맥을 파악 후 하기 코드를 추가합니다.

    예시)
    .......
    
            // 게임팟 관련 태그 추가 [start]
    
            Text.AppendLine("\t\t<service android:exported=\"false\" android:name=\"io.gamepot.common.GamePotFCMIDService\">");
            Text.AppendLine("\t\t    <intent-filter>");
            Text.AppendLine("\t\t        <action android:name=\"com.google.firebase.INSTANCE_ID_EVENT\"/>");
            Text.AppendLine("\t\t    </intent-filter>");
            Text.AppendLine("\t\t</service>");
            Text.AppendLine("\t\t<service android:exported=\"false\" android:name=\"io.gamepot.common.GamePotFCMService\">");
            Text.AppendLine("\t\t    <intent-filter>");
            Text.AppendLine("\t\t        <action android:name=\"com.google.firebase.MESSAGING_EVENT\"/>");
            Text.AppendLine("\t\t    </intent-filter>");
            Text.AppendLine("\t\t</service>");
    
            // 게임팟 관련 태그 추가 [end]
    
    		.......
            // Required for OBB download support
    

    페이스북 로그인을 사용하는데 Pending Intent 오류가 발생할 경우

    게임팟 SDK 3.5.3 버전에는 반영된 사항입니다. 그 이하 버전를 이용하는 경우 별도로 확인해 주십시오.

    [게임팟 SDK V3.4.2 기준]

    V3.4.2 버전으로 SDK 업그레이드 이후 아래 중복되는 라이브러리 파일을 교체 및 삭제해 주십시오. 이는 사용하는 버전에 따라 다를 수 있습니다. gradle 내 설정해야 하는 환경 변수의 차이가 있어 아래의 내용을 확인해 주십시오.

    해당 내용을 반드시 추가로 입력해야 합니다.
    resValue "string", "facebook_client_token", "" // 페이스북 콘솔 > 앱 > 설정 > 고급 설정 > 클라이언트 토큰 optional (facebook)

    [unity 패치]
    관련 수정 패치: 다운로드

    삭제 : 게임팟 SDK 3.4.2 기준 패치사항 사항 ( 게임팟 적용 시점에 따라 별도로 중복 라이브러리를 추가로 삭제해야 할 수도 있습니다. )
    
          ../Assets/Plugins/Android/libs/activity-1.0.0.aar
          ../Assets/Plugins/Android/libs/core-1.3.0.aar
          ../Assets/Plugins/Android/libs/core-runtime-2.0.0.aar
          ../Assets/Plugins/Android/libs/facebook-android-sdk-8.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-applinks-8.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-common-8.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-core-8.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-gamingservices-8.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-login-8.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-messenger-8.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-share-8.2.0.aar
          ../Assets/Plugins/Android/libs/kotlin-stdlib-common-1.3.31.jar
          ../Assets/Plugins/Android/libs/kotlin-stdlib-1.3.31.jar
          ../Assets/Plugins/Android/libs/kotlin-stdlib-jdk7-1.3.31.jar
          ../Assets/Plugins/Android/libs/lifecycle-common-2.1.0.jar
          ../Assets/Plugins/Android/libs/lifecycle-livedata-core-2.0.0.aar
          ../Assets/Plugins/Android/libs/lifecycle-runtime-2.1.0.aar
          ../Assets/Plugins/Android/libs/lifecycle-viewmodel-2.1.0.aar
          ../Assets/Plugins/Android/libs/okhttp-3.10.0.jar
          ../Assets/Plugins/Android/libs/okio-1.14.0.jar
          ../Assets/Plugins/Android/libs/savedstate-1.0.0.aar
    
      추가 및 교체 :
          ../Assets/Plugins/Android/libs/gamepot-channel-facebook.aar
          ../Assets/Plugins/Android/libs/activity-1.2.0.aar
          ../Assets/Plugins/Android/libs/annotation-experimental-1.0.0.aar
          ../Assets/Plugins/Android/libs/converter-gson-2.5.0.jar
          ../Assets/Plugins/Android/libs/core-1.3.2.aar
          ../Assets/Plugins/Android/libs/core-ktx-1.3.2.aar
          ../Assets/Plugins/Android/libs/core-runtime-2.1.0.aar
          ../Assets/Plugins/Android/libs/facebook-android-sdk-13.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-applinks-13.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-bolts-13.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-common-13.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-core-13.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-gamingservices-13.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-login-13.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-messenger-13.2.0.aar
          ../Assets/Plugins/Android/libs/facebook-share-13.2.0.aar
          ../Assets/Plugins/Android/libs/kotlin-stdlib-1.5.10.jar
          ../Assets/Plugins/Android/libs/kotlin-stdlib-common-1.5.10.jar
          ../Assets/Plugins/Android/libs/kotlin-stdlib-jdk7-1.5.10.jar
          ../Assets/Plugins/Android/libs/kotlin-stdlib-jdk8-1.5.10.jar
          ../Assets/Plugins/Android/libs/lifecycle-common-2.3.0.jar
          ../Assets/Plugins/Android/libs/lifecycle-livedata-core-2.3.0.aar
          ../Assets/Plugins/Android/libs/lifecycle-runtime-2.3.0.aar
          ../Assets/Plugins/Android/libs/lifecycle-viewmodel-2.3.0.aar
          ../Assets/Plugins/Android/libs/lifecycle-viewmodel-savedstate-2.3.0.aar
          ../Assets/Plugins/Android/libs/okhttp-4.9.1.jar
          ../Assets/Plugins/Android/libs/okio-2.8.0.jar
          ../Assets/Plugins/Android/libs/pageindicatorview-1.0.0.aar
          ../Assets/Plugins/Android/libs/retrofit-2.5.0.jar
          ../Assets/Plugins/Android/libs/savedstate-1.1.0.aar
          ../Assets/Plugins/Android/libs/tracing-1.0.0.aar
    

    [Unreal 패치]
    관련 수정 패치 : 다운로드

    1. 수정 패치 파일 (gamepot-channel-facebook.aar) 교체
    2. GamePot_Android_UPL.xml 파일 내 facebook 관련 버전 수정
        …
        <insertValue value="com.facebook.android,facebook-android-sdk,13.2.0"/>
        …
        implementation 'com.facebook.android:facebook-android-sdk:13.2.0'
        …
        resValue "string", "facebook_client_token", "" // 페이스북 콘솔 > 앱 >  설정 > 고급 설정 > 클라이언트 토큰 optional (facebook)
    

    [Android Native 패치]

    관련 수정 패치: 다운로드

    1. 수정 패치 파일 (gamepot-channel-facebook.aar) 교체
    2. build.gradle 내 facebook 관련 버전 수정 및 환경변수 추가
    dependencies {
        ...
        implementation 'com.facebook.android:facebook-android-sdk:13.2.0'
    
    defaultConfig {
        ....
        resValue "string", "facebook_client_token", "" // 페이스북 콘솔 > 앱 >  설정 > 고급 설정 > 클라이언트 토큰 optional (facebook)
    

    Unity firebase Message Intent 오류가 발생할 경우

    관련 수정 패치: 다운로드

    [삭제]
    ../Assets/Plugins/Android/libs/firebase-annotations-16.0.0.jar
    ../Assets/Plugins/Android/libs/firebase-common-19.5.0.aar
    ../Assets/Plugins/Android/libs/firebase-components-16.1.0.aar
    ../Assets/Plugins/Android/libs/firebase-datatransport-17.0.10.aar
    ../Assets/Plugins/Android/libs/firebase-encoders-16.1.0.jar
    ../Assets/Plugins/Android/libs/firebase-encoders-json-17.1.0.aar
    ../Assets/Plugins/Android/libs/firebase-iid-21.0.1.aar
    ../Assets/Plugins/Android/libs/firebase-iid-interop-17.0.0.aar
    ../Assets/Plugins/Android/libs/firebase-installations-16.3.5.aar
    ../Assets/Plugins/Android/libs/firebase-installations-interop-16.0.1.aar
    ../Assets/Plugins/Android/libs/firebase-measurement-connector-18.0.0.aar
    ../Assets/Plugins/Android/libs/firebase-messaging-21.0.1.aar
    ../Assets/Plugins/Android/libs/play-services-base-17.5.0.aar
    ../Assets/Plugins/Android/libs/play-services-basement-17.5.0.aar
    ../Assets/Plugins/Android/libs/play-services-stats-17.0.0.aar
    ../Assets/Plugins/Android/libs/play-services-tasks-17.2.0.aar
    ../Assets/Plugins/Android/libs/transport-api-2.2.1.aar
    ../Assets/Plugins/Android/libs/transport-backend-cct-2.3.3.aar
    ../Assets/Plugins/Android/libs/transport-runtime-2.2.5.aar
    
    [추가]
    ../Assets/Plugins/Android/libs/firebase-annotations-16.1.0.jar
    ../Assets/Plugins/Android/libs/firebase-common-20.1.2.aar
    ../Assets/Plugins/Android/libs/firebase-components-17.0.1.aar
    ../Assets/Plugins/Android/libs/firebase-datatransport-18.1.6.aar
    ../Assets/Plugins/Android/libs/firebase-encoders-17.0.0.jar
    ../Assets/Plugins/Android/libs/firebase-encoders-json-18.0.0.aar
    ../Assets/Plugins/Android/libs/firebase-encoders-proto-16.0.0.jar
    ../Assets/Plugins/Android/libs/firebase-iid-21.1.0.aar
    ../Assets/Plugins/Android/libs/firebase-iid-interop-17.1.0.aar
    ../Assets/Plugins/Android/libs/firebase-installations-17.0.2.aar
    ../Assets/Plugins/Android/libs/firebase-installations-interop-17.0.2.aar
    ../Assets/Plugins/Android/libs/firebase-measurement-connector-19.0.0.aar
    ../Assets/Plugins/Android/libs/firebase-messaging-23.0.8.aar
    ../Assets/Plugins/Android/libs/play-services-base-18.0.1.aar
    ../Assets/Plugins/Android/libs/play-services-basement-18.1.0.aar
    ../Assets/Plugins/Android/libs/play-services-stats-17.0.2.aar
    ../Assets/Plugins/Android/libs/play-services-tasks-18.0.1.aar
    ../Assets/Plugins/Android/libs/transport-api-3.0.0.aar
    ../Assets/Plugins/Android/libs/transport-backend-cct-3.1.7.aar
    ../Assets/Plugins/Android/libs/transport-runtime-3.1.7.aar
    

    Android OS 13기기에서 푸시 설정 못 받는 경우

    안드로이드 OS 13부터는 푸시 알림을 표기하기 위해서는 android.permission.POST_NOTIFICATIONS 퍼미션 권한이 획득이 필요합니다. Targetsdk 31인 버전으로 빌드된 경우 앱이 포그라운드 상태에서 푸시 수신 받았을때 OS 내부적으로 1회 한번 권한 획득에 대한 팝업을 띄우고 있습니다.
    android.permission.POST_NOTIFICATIONS 퍼미션 권한 획득하는 기능은 게임팟 SDK에서는 지원하지 않습니다.
    관련 기능은 개발사에서 별도로 특정 시점( 예시) 약관동의 완료 시점 또는 앱 시작시점)에 android.permission.POST_NOTIFICATIONS 권한을 받도록 개발을 해야 합니다. 유저가 거절한 경우 앱 설정에서 수동으로 알림 권한을 다시 활성하지 않는다면 푸시 알림 표기가 안되는 부분에 대해 안내가 필요합니다.

    게임팟 SDK에서 수집하는 개인 정보 유형

    구글 스토어 앱 콘텐츠 항목 기준

    앱 통신은 https 통신 방식을 사용하여 암호화 처리가 되어 있으며 회원 탈퇴 기능이 있다면 회원 탈퇴 완료시 회원 정보 삭제합니다. 앱 기능 항목을 체크해 주십시오. 단, 앱의 기능적 요소로만 사용이 되며 계정 관리 기능은 사용하지 않습니다.

    • 개인 정보

      • 이메일 주소
      • 사용자 ID
    • 기기 또는 기타 ID

      • 기기 또는 기타 ID
    • 사진 및 동영상

      • 사진
      • 동영상

    애플 스토어 앱이 수집하는 개인정보 항목 기준

    • 식별자
      • 사용자 ID (계정정보)
      • 기기 ID (IDFA, auto generated)
      • 구입 항목
    • 사용자 컨텐츠
      • 사진 또는 비디오
      • 고객지원

    사용자 컨텐츠의 경우, 게임팟 PRO 이상 상품을 이용하는 고객 중에서 게임팟 고객 문의 UI를 사용하는 경우에 해당합니다. 오브젝트 스토리지 기능 사용 시 고객 문의에 이미지 파일을 올릴 수 있습니다.

    Xcode 16 버전으로 빌드 시 iOS 18에서 로그인 후 크래시 발생 현상 업데이트 안내

    iOS 18 정식 버전 크래시 이슈 발생에 대한 Gamepot v3.6.2 배포 안내 가이드입니다.
    iOS 18 정식 버전의 업데이트로 인해 동작 방식이 변경된 것이 원인으로 판단되어, Unity와 iOS Native에 업데이트 된 GAMEPOT v3.6.2 버전을 적용하면 위 문제는 해결되오니 반드시 GAMEPOT v3.6.2 버전으로 적용해 주십시오.

    주의

    기존에 이미 사용하고 있는 게임팟 버전이 있을 경우 적용 전 문의해 주십시오.

    확인된 에러

    Thread 1: "View was already initialized: <GamePotAgreeView: 0x11651af80; frame = (0 0; 0 0); layer = <CALayer: 0x3030d9640>>"
    

    게임팟에서 제공하는 약관 동의 팝업 기능 자체에는 문제가 없으나, iOS 18 정식 버전의 변경된 환경에서 예기치 않게 발생합니다.

    • 발생 빈도: 해당 크래시는 Xcode 16버전으로 빌드 & 디바이스 버전이 iOS 18일 경우에만 발생되며 발생 빈도는 100프로 발생합니다.
      iOS 18 이전 버전에서는 문제 없이 동작했으며, iOS 18 Beta에서도 발생하지 않았습니다.

    발생 케이스
    문제가 발생되는 부분은 약관 동의 팝업 부분에서 발생되어 로그인 시 멈춤 현상이 발생합니다. 게임팟에서 제공하는 약관 동의 팝업 기능 자체에는 문제가 없으나, iOS 18 정식 버전의 변경된 환경에서 예기치 않게 발생한 문제입니다.

    발생 조건

    • Xcode 16
    • iOS 18
    • 게임팟에서 제공하는 약관 동의 UI GamePot.setAgreeInfo 를 사용
      • 만약 게임팟 자체 약관 (GamePot.setAgreeInfo)을 사용하지 않을 경우 해당 오류가 나지 않습니다.
      • SetAutoAgree 를 false로 설정한 상태에서 xcode 16 / iOS 18 에서는 정상 작동 합니다.

    Unity SDK / iOS SDK 적용

    • Unity SDK
      이 섹션에서는 Unity Gamepot SDK v3.6.2 적용 방법을 설명합니다.
      [Unity SDK 다운로드]

    아래 절차를 따라 유니티 패키지를 프로젝트에 불러옵니다.

    1. 유니티에서 Assets > Import Package > Custom Package… 메뉴를 클릭해 주십시오.
    2. 다운받은 GAMEPOT_UNITY_SDK_20240925_362.unitypackage 를 열어 주십시오.
    3. Import Unity Package 팝업이 노출되면 패키지 내 모든 항목을 체크 후 Import해 주십시오.
    • iOS SDK
      이 섹션에서는 iOS Native Gamepot SDK v3.6.2 적용 방법을 설명합니다.
      [iOS SDK 다운로드 ]

    GAMEPOT iOS SDK를 설치하고 Xcode에서 프로젝트를 구성하는 방법은 다음과 같습니다.

    1. 파일을 클릭하여 다운로드해 주십시오.
    2. Xcode를 실행한 후 게임 프로젝트를 열어 주십시오.
    3. 다운로드한 SDK 파일의 압축을 해제한 후 생성한 프로젝트의 폴더로 드래그 앤 드롭해 주십시오.

    이 문서가 도움이 되었습니까?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.