- 인쇄
- PDF
Troubleshooting
- 인쇄
- PDF
Classic/VPC 환경에서 이용 가능합니다.
64-bit 환경에서 빌드할 때 네아로(네이버 아이디 로그인) 시도 시 크래시 발생 (API 28 이상의 Android 빌드)
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 이하 버전 기준]
- logging 기능 관련 라이브러리가 obsolete여서 발생하는 문제
- (대시보드 로그 기능을 사용하지 않을 경우) 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
Twitter i386 x86_64 IOS 빌드 이슈
콘솔(터미널)에서 TwitterCore.framework 파일 위치로 이동 후 아래 명령어를 하나씩 입력해 주십시오.
허용되지 않은 아키텍쳐를 제거하는 코드입니다.
lipo -remove x86_64 ./TwitterCore.framework/TwitterCore -o ./TwitterCore.framework/TwitterCore
lipo -remove i386 ./TwitterCore.framework/TwitterCore -o ./TwitterCore.framework/TwitterCore
lipo -remove x86_64 ./TwitterKit.framework/TwitterKit -o ./TwitterKit.framework/TwitterKit
lipo -remove i386 ./TwitterKit.framework/TwitterKit -o ./TwitterKit.framework/TwitterKit
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 빌드 이슈
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']) // } }
Firebase 관련 파일을 수정해 주십시오.
- 링크를 통해 패치 파일을 다운로드해 주십시오.
- 아래와 같이 파일을 복사해 주십시오.
/Firebase_patch/Assets/Firebase/Editor 위 경로의 파일을 아래 경로에 복사 -> {unity project}/Assets/Firebase/Editor {unity project}/Assets/PlayServicesResolver/Editor 위 경로의 파일을 모두 삭제 후 아래 경로에 파일을 복사 -> /Firebase_patch/Assets/PlayServicesResolver/Editor
- /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.aarmainTemplate.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 버전 반영시
../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
네이버 라운지 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
하기 경로에 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>
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/Assets/NGSDK/Plugins/iOS/NCSDKUnityManager.mm 파일 수정
기존 : (NSString *)getAuthSettingDescription { return NNGSDKManager.shared.authSettingDescription; } 수정 : - (NSString *)getAuthSettingDescription { return NNGSDKManager.shared.authSettingDescription; }
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 8.7.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 빌드를 진행해 주십시오.
- 중복되는 라이브러리 파일 삭제 필요:
../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
- ../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" />
- 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
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 패치]
관련 수정 패치 : 다운로드
- 수정 패치 파일 (gamepot-channel-facebook.aar) 교체
- 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 패치]
관련 수정 패치: 다운로드
- 수정 패치 파일 (gamepot-channel-facebook.aar) 교체
- 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를 사용하는 경우에 해당합니다. 오브젝트 스토리지 기능 사용 시 고객 문의에 이미지 파일을 올릴 수 있습니다.