FAQ
    • PDF

    FAQ

    • PDF

    Article Summary

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

    로그인 오류

    로그인 오류와 관련하여 자주하는 질문과 답변은 다음과 같습니다.
    소셜 로그인 기능의 경우, 기본적으로 해당 플랫폼의 개발 가이드를 기준으로 합니다. 문제 발생 시, 해당 플랫폼의 로그인 개발 가이드를 먼저 확인해 주십시오.

    Q. 로그인 시도 시 아래와 같은 오류가 나타납니다.
    Please check if you have set the 'XXXX' channel before using it. Did you import or set 'XXXX' information in gradle.build file
    A. XXXX 타입의 로그인에 필요한 게임팟 SDK 라이브러리가 없거나 초기화 시점 후 로그인 관련 설정을 하지 않은 경우입니다.

    1. Android / iOS 네이티브 환경인 경우
    • 로그인 관련 게임팟 라이브러리가 빌드 시 탑재가 되어 있는지 확인해 주십시오.
      • 예시: android 기준 애플 로그인 시 gamepot-channel-apple-signin.aar 파일이 탑재되어 있어야 합니다.
    • 로그인 타입에 맞는 설정 값이 들어가 있는지 확인해 주십시오.
      • 예시: (Android) build.gradle / (iOS) GamePotConfig-Info.plist 내에 설정값 세팅 및 기타 설정 진행
    • addchannel 처리가 되어 있는지 확인해 주십시오.
      • 예시: android 기준 애플 로그인을 위해 게임팟 SDK 초기화 작업 이후 GamePotChannel.getInstance().addChannel(this, GamePotChannelType.APPLE, new GamePotAppleSignin()); )
    1. 유니티 환경인 경우
    • 로그인 관련 게임팟 라이브러리가 빌드 시 탑재되어 있는지 확인해 주십시오.
      • 예시: android 기준 애플 로그인시 /Assets/Plugins/Android/libs 폴더에 gamepot-channel-apple-signin.aar 파일이 탑재되어 있어야 합니다.
    • 로그인 타입에 맞는 설정값이 들어가 있는지 확인해 주십시오.
      • 예시: Unity 2019.02.XX 이전 버전 : mainTemplate.gradle / Unity 2019.03.XX 이후 버전 : launcherTemplate.gradle 내에 설정 값 세팅 및 기타 설정 진행

    Google 로그인

    Google 로그인과 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. 로그인 시도 시 바로 로그인 취소가 리턴됩니다. (Android, iOS)
    A. 필요한 환경이 설정되지 않아 발생하는 현상입니다.

    1. Firebase 설정 파일인 google-service.json파일이 프로젝트에 정상적으로 포함됐는지 확인해 주십시오.
    2. (Android) APK 빌드 시 사용한 Keystore의 SHA-1값을 Firebase Console에 추가했는지 확인해 주십시오.
      • SHA-1 값은 개발사에 요청합니다.

    gamepot-faq01_firebase1_ko

    1. Firebase Console에서 프로젝트 설정이 정상적으로 되어있는지 확인해 주십시오.
      3-1) 해당 내용이 적용된 빌드가 맞는지 확인해 주십시오.
      - Console 상에 설정한 Package Name(Android) / Bundle ID(iOS)로 빌드했는지 여부
      - (Android) SHA-1을 추출한 Keystore로 빌드했는지 여부
      3-2) Firbase Conosole에 지원 이메일을 설정했는지 확인해 주십시오.

    gamepot-faq02_firebase2_ko

    3-3) 구글 개발자 콘솔 > 설정 > 앱 무결성 메뉴를 클릭하면 다음과 같은 화면이 나타납니다.
    - (Android) Google Console에서 앱 서명을 사용하는 경우, Console에서 만들어진 SHA-1 값도 추가로 입력해 주십시오.

    gamepot-faq31_googleSHA_ko

    1. 위 체크 항목을 모두 확인했음에도 불구하고 여전하다면, 지원 이메일을 다른 이메일로 변경해 주십시오.
    참고

    최초 지원 이메일 설정 시 간헐적으로 제대로 동작하지 않는 경우가 발생하고 있습니다. 이 경우 다른 이메일로 변경해 주십시오.

    1~4번 항목을 진행했지만 로그인 시도 시 onCancel 처리가 되는 경우, 다음 항목을 확인해 주십시오.

    1. 구글 클라우드 콘솔에 접속해 주십시오.

    2. 프로젝트 선택 > 왼쪽 상단 메뉴 > API 및 서비스 > 사용자 인증 정보 > OAuth 2.0 클라이언트 ID 유형에 접속한 후 Android/ iOS / 웹 애플리케이션 정보가 있는지 확인해 주십시오.

    gamepot-faq03_googlecloud1_ko

    1. 프로젝트 선택 > 왼쪽 상단 메뉴 > API 및 서비스 > OAuth 동의 화면에서 게시 상태가 프로덕션이며 사용자 유형이 외부인지 확인해 주십시오.
      gamepot-faq04_googlecloud2_ko

    Q. APK를 직접 설치하면 로그인이 되나, 스토어에 올린 앱을 다운로드 받아서 로그인하면 로그인이 되지 않습니다. (Android)
    A. Google Developer Console에서 '앱 서명' 기능을 사용해서 발생하는 문제입니다. 콘솔에서 APK를 업로드 할 때 '앱 서명'을 활성화하게 되면 keystore가 콘솔에서 관리하는 키로 교체되면서 발생하는 문제로, 콘솔에서 관리하는 keystore의 sha-1값을 Firebase console에 추가해 주십시오.
    gamepot-faq05_firebase3_ko

    페이스북 로그인을 사용하는 경우, Facebook Developer Console에도 새로운 keystore의 keyhash 값을 추가해 주십시오.

    Q. iOS에서 구글 로그인 시 오류 (401 오류: disabled_client)가 발생합니다. (iOS)
    A. Firebase 콘솔 설정에 지원 이메일이 설정되어 있지 않아 문제가 발생할 수 있습니다. Firebase 콘솔에서 지원 이메일을 설정한 후 확인해 주십시오.
    gamepot-faq06_firebase4_ko

    Q. iOS에서 구글 로그인 시 팝업이 발생하는데, 게임 이름이 아닌 다른 값으로 노출 됩니다. (iOS)
    A. Xcode > Targets > Build Settings에서 Product Name 항목의 값을 변경해주십시오.
    gamepot-faq_appname.png

    Facebook 로그인

    Facebook 로그인과 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. Facebook 앱이 스마트폰에 설치되어 있을 때, 정상적으로 로그인할 수 없습니다. (Android, iOS)
    A. Facebook Developer Console의 환경설정이 올바르지 않아 문제가 발생할 수 있습니다. APK 빌드 시 사용한 Keystore의 키 해시 값을 페이스북 콘솔에 추가해 주십시오.
    facebook-keyhash1.jpeg

    Google Console에서 '앱 서명' 기능을 사용할 경우, Google Console에서 관리하는 keystore의 keyhash 값도 추가해 주십시오.
    facebook-keyhash2.jpeg

    APPLE 로그인

    APPLE 로그인과 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. APPLE 로그인 시도 시, 에러가 발생합니다. (iOS)
    A. 필요한 환경이 올바르게 설정 되지 않아 발생하는 현상입니다.

    1. Xcode > TARGETS > Signing & Capabilities > Capability에 Sign In with Apple을 추가했는지 확인해주십시오.
    2. Xcode > TARGETS > Build phases > Link Binary With Libraries에 LocalAuthentication.framework, AuthenticationService.framework이 추가되었는지 확인해 주십시오. Target 버전이 iOS 13 이하라면 AuthenticationService.framework은 optional로 설정합니다.
      xcode-setting1.jpeg

    네이버 아이디로 로그인(네아로)

    네이버 아이디로 로그인과 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. 네이버 로그인 시 오류가 발생합니다. (Android, iOS)
    A. NAVER Developers Console의 환경 설정이 빌드 설정과 달라서 문제가 발생할 수 있습니다. NAVER Developers Application 설정과 빌드 설정이 일치하는지 확인해 주십시오.
    naver_setting1.jpeg

    Q. 네이버 카페 SDK 연동 시, 웹뷰를 통한 네아로(네이버 아이디로 로그인)를 할 수 없습니다. (iOS)
    A. 네아로 SDK와 카페 SDK의 로그인 모듈이 공존하여 발생하는 이슈입니다. 네이버 카페 SDK를 함께 연동하는 경우에만 적용됩니다.

    1. 패치 파일을 다운로드해 주십시오.(Download)
    2. 기존에 프로젝트 내 존재하는 2개의 framework를 삭제해 주십시오.
      • GamePotNaver.framework
      • NaverThirdPartyLogin.framework (존재할 경우)
    3. 다운받은 패치(GamePotNaver.framework)를 기존 동일한 경로에 저장해 주십시오.
      • iOS UIWebview 이슈로, 네이버 카페 SDK는 4.4.7 이후 버전을 사용해 주십시오.
    4. (UNITY ONLY) 네이버 카페 초기화 단계에서, url scheme을 명시적으로 추가해 주십시오.
      ../Assets/NCSDK/Plugins/iOS/NCSDKUnityManager.mm
      naver_setting3.jpeg
    5. info.plist의 URL Scheme 값 우선 순위를 첫 번째로 수정해 주십시오.

    Line 로그인

    Line 로그인과 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. 라인 로그인 시 오류 (400 오류: Bad_Request)가 발생합니다. (Android, iOS)
    A. LINE Developers Console의 환경 설정이 올바르지 않아 문제가 발생할 수 있습니다. Line Developer Console의 설정이 올바른지 확인해 주십시오.
    line_setting.jpeg

    Apple 로그인(Android)

    Apple 로그인(Android)과 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    1. 로그인 시도 시 오류 메시지: Insufficient data! 일 때
      • 게임팟 > 대시보드 > 프로젝트 설정 > 일반의 Apple ID Login 항목에 관련 설정이 없는 경우입니다. 도움말 내 내용을 확인하여 기입해 주십시오.
    2. 로그인 시도 시 invalid_client 오류 화면이 보일 때
      • 'Primary App ID' 항목에 사용할 앱의 App ID를 선택한 뒤, 'Register Website URLs' 항목에 게임팟 API 도메인과 Return URL 값이 잘못 입력된 경우입니다. 도움말 버튼 내 Client ID 설정하기 7번 항목을 참고해 주십시오.
    3. 애플 SDK로 로그인 실패 / 오류 메시지가 Error occurs from apple server. 인 경우
      • 게임팟 > 대시보드 > 프로젝트 설정 > 일반에서 Apple ID Login 항목에 기입된 정보가 잘못된 부분이 존재하여 애플 서버에서 오류를 발생한 경우입니다. 도움말 버튼 내 Key 설정하기 파트를 확인하면서 키값을 다시 저장해 주십시오.

    결제 오류

    결제 오류와 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    공통

    결제 오류와 관련하여 공통적으로 자주하는 질문과 답변은 다음과 같습니다.

    Q. 결제 시도 시 'productid was wrong!' 문구가 노출됩니다.
    A. GAMEPOT 대시보드 > 결제 > IAP에 스토어의 상품 아이디를 추가해 주십시오.
    purchase_item.jpeg

    Q. 첫 번째 결제 시도엔 응답이 없고, 두 번째 결제 시도 시에 결제가 성공했다고 응답합니다. (Play Store, ONE Store)
    A. 대시보드 > 프로젝트 설정 > 일반의 Public Key에 키가 올바르지 않은 경우입니다. 도움말 보기를 참고하여 키를 입력해 주십시오.
    gamepot-public-key.jpeg

    Google Play Store

    Google Play Store와 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. 구글 결제 팝업은 노출되나 결제가 진행되지 않아요.

    A. 구글 결제를 할 수 있는 환경이 올바르게 설정되지 않아 발생하는 경우입니다. 다음 항목을 확인해 보십시오.

    1. 콘솔 > 앱정보 > 인앱 상품에서 인앱이 활성 APK로 되어 있는지 확인해 주십시오.
      google-inappitem.jpeg
    2. 콘솔에 앱이 출시됨 상태인지 확인
      프로덕션 트랙이 아닌 비공개/내부 테스트 트랙에 게시해 주십시오. 가능하면 내부 테스트 트랙에 올리는 것을 권고합니다.
    3. 콘솔 > 테스트 > 트랙 관리 > 테스트 참여 대상 관리에 테스트 계정을 등록했는지 확인해 주십시오.
      google_addtester.png
    4. 테스트 참여 URL로 접속하여 테스트 참여를 신청했는지 확인해 주십시오.
      google_added_tester.jpeg
    5. 콘솔 > 설정에서 라이선스 테스트에 테스트 계정을 추가했는지 확인해 주십시오.
      google_Licensetesting.jpeg
    6. 단말기 > 설정 > 계정 메뉴에 테스트 참여한 계정만 남기고 모두 삭제했는지 확인해 주십시오.

    ONE Store

    ONE Store와 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. '비정상 앱에서 결제가 요청되었습니다' 문구가 노출됩니다.

    A. 오픈 전 앱은 테스트 계정만 접근이 가능합니다. 다음 내용을 확인해 주십시오.

    • 테스트 계정이 등록되어 있는지 확인해 주십시오.
    • 단말기에 설치된 원스토어 앱이 1번에서 등록한 테스트 계정으로 로그인했는지 확인해 주십시오.

    Q. 결제 시 [package] doesn't exist or wrong secret. 문구가 노출됩니다.

    A. GAMEPOT 대시보드에 원스토어 관련 키값이 정상적으로 적용됐는지 확인해 주십시오.

    1. APK의 Package name 이 원스토어에 등록된 패키지명과 동일한지 확인해 주십시오.
      onestore_app_package.png
    2. 원스토어 콘솔의 라이선스 키 적용 여부 확인해 주십시오.
      onestore_Licensetesting.jpeg{height="" width="70%"}
      해당 값이 GAMEPOT 대시보드 아래 항목에 적용되었는지 확인해 주십시오.
      onestore_public_key.png{height="" width="70%"}
      gamepot-public-key.jpeg
    3. 원스토어 콘솔의 Client secret 적용 여부를 확인해 주십시오.
      onestore_Client_secret.jpeg{height="" width="70%"}
      해당 값이 GAMEPOT 대시보드의 아래 항목에 적용되었는지 확인해 주십시오.
      onestore_server_key.png{height="" width="70%"}
      gamepot-server-key.jpeg

    Q. 결제 완료 후 "조회된 결과 값이 존재하지 않습니다. (9001)" 문구와 함께 결제에 실패합니다.

    A. 원스토어에 영수증 검증 요청 시 리얼/테스트 환경의 차이로 문제가 발생한 경우입니다.
    원스토어 결제화면이 Sandbox 환경인 경우

    • 원스토어 콘솔 > In-App 정보 > 결제 테스트 메뉴에 원스토어 앱 계정 등록 및 결제 환경 설정을 Sandbox 상태로 설정된 상태인지 확인해 주십시오.
    • 테스트 기기에 원스토어 앱이 설치가 되어 있고 등록된 계정으로 로그인이 완료된 상태인지 확인해 주십시오.
    • 게임팟 대시보드 > 프로젝트 설정 > 화이트 유저 메뉴에 결제/쿠폰으로 아이피가 등록되어 있는지 확인해 주십시오.
      gamepot_WhiteUser.jpeg
    • 게임팟 대시보드 > 프로젝트 설정 메뉴의 Webhook 항목에 결제 아이템(테스트 사용자) 주소가 등록되어 있는지 확인해 주십시오.
      gamepot_webhook_setting.png

    원스토어 결제화면이 Production 환경인 경우

    • 원스토어 콘솔 - In-App 정보 - 결제 테스트 메뉴에 원스토어 앱 계정 등록 및 결제 환경 설정을 상용테스트 상태로 설정된 상태인지 해 주십시오.
    • 테스트 기기에 원스토어 앱이 설치가 되어 있고 등록된 계정으로 로그인이 완료된 상태인지 확인해 주십시오.
    • 게임팟 대시보드 > 프로젝트 설정 > 화이트 유저 메뉴에서 결제/쿠폰으로 아이피가 미사용 상태인지, 미등록 상태인지 확인해 주십시오.
      gamepot_WhiteUser_off.jpeg
    • 게임팟 대시보드 > 프로젝트 설정 메뉴에서 Webhook 항목에 결제 아이템(서비스) 에 주소가 등록되어 있는지 확인해 주십시오.
      gamepot_webhook_setting_real.jpeg

    원스토어 SDK 인앱 버전 SDK 지원 범위
    원스토어 SDK 인앱 버전 SDK은 게임팟 SDK 버전에 따라 지원 범위가 다릅니다.

    • GAMEPOT SDK V 3.5.0이상: api21, V7 지원
      • 관련 라이브러리 파일: gamepot-billing-onestore.aar ,gamepot-common.aar ,sdk-auth-1.0.2.aar ,sdk-base-1.0.3.aar ,sdk-iap-21.00.00.aar
    • GAMEPOT SDK V 3.4.3-oneV6: api19, V6 지원
      • 관련 라이브러리 파일: iap_sdk-v19.00.02.aar , gamepot-billing-onestoreV6.aar , gamepot-common_onestoreV6_only.aar

    GAMEPOT SDK V 3.4.2 api17, V5 지원
    관련 라이브러리 파일 : gamepot-billing-onestore.aar ,gamepot-common.aar

    Android 빌드 시 targetSdkVersion 30(Android 11) 이상으로 빌드한 경우 Android 11 OS기기에 원스토어 APK가 설치되었음에도 찾지 못합니다.
    AndroidManifest.xml 파일 내 아래 문구를 추가해 주십시오.

       <!-- targetSdkVersion 30 이상 일 때 원스토어 관련 패치 [Start] -->
        <queries>
            <intent>
                <action android:name="com.onestore.ipc.iap.IapService.ACTION" />
            </intent>
            <intent>
                <action android:name="android.intent.action.VIEW" />
                <data android:scheme="onestore" />
            </intent>
        </queries>
        <!-- targetSdkVersion 30 이상 일 때 원스토어 관련 패치 [End] -->
        <application>
    

    Galaxy Store

    Galaxy Store와 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. 로그인 시 '삼성 인앱결제 선택한 상품이 없어요'라는 문구가 노출됩니다.
    A. 앱이 배포되지 않은 경우 발생합니다. 앱 배포 전에 테스트 인앱 결제를 하려면 다음과 같이 진행되어야 합니다.

    1. 대시보드 > 프로젝트 설정 > 화이트 유저 메뉴에서 [추가] 버튼을 클릭해 주십시오.
    2. 다음과 같이 입력해 화이트 유저를 추가해 주십시오.
    • 종류: 개발
    • IP/사용자 ID: 테스트 기기 IP

    Apple Store

    Apple Store와 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    • 결제를 진행하는 Sandbox 계정의 국가 정보가 애플 콘솔상에 앱 배포 국가 설정에 포함된 국가여야 합니다.
    • Xcode > Capability 항목에 in app purchase 항목이 추가되어 있어야 합니다.
    • 애플 콘솔상의 계약, 세금 및 금융거래 항목에 관련 정보에 이상이 있으면 안됩니다. 미처리된 부분이 있으면 인앱 정보를 애플 인앱 SDK에서 제공하지 않아 결제가 불가능합니다.

    인앱 오류

    인앱 오류와 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. 인앱 아이템 목록을 가져오지 못하는 경우
    A. 다음 내용을 확인해 주십시오.

    • 게임팟 결제는 소모성 인앱만 결제가 가능합니다.
    • 결제 라이브러리가 빌드 시 탑재되어 있어야 합니다.
      • 구글 인앱 SDK :

        (유니티)
        ../Assets/Plugins/Android/libs/billing-5.0.0.aar
        ../Assets/Plugins/Android/libs/firebase-crashlytics-buildtools-2.9.1.jar
        
        (Native) 
        implementation 'com.google.firebase:firebase-crashlytics-buildtools:2.9.1'
        implementation 'com.android.billingclient:billing:5.0.0'
        
      • 원스토어 인앱 SDK :

        (유니티)
        ../Assets/Plugins/Android/nativeLibs/gamepot-billing-onestore.aar
        ../Assets/Plugins/Android/nativeLibs/sdk-auth-1.0.2.aar
        ../Assets/Plugins/Android/nativeLibs/sdk-base-1.0.3.aar
        ../Assets/Plugins/Android/nativeLibs/sdk-iap-21.00.00.aar
        
        (Native) 
        implementation(name: 'gamepot-billing-onestore', ext: 'aar')
        implementation(name: 'sdk-auth-1.0.2', ext: 'aar')
        implementation(name: 'sdk-base-1.0.3', ext: 'aar')
        implementation(name: 'sdk-iap-21.00.00', ext: 'aar')
        
      • 갤럭시 스토어 인앱 SDK :

        (유니티)
        ../Assets/Plugins/Android/nativeLibs/gamepot-billing-galaxystore.aar
        
        (Native) 
        implementation(name: 'gamepot-billing-galaxystore', ext: 'aar')
        
    • 결제 관련 설정을 완료해야 합니다. 결제 오류 참조
    • getPurchaseItems API를 이용하는 경우 로그인 이후 결제 모듈을 초기화 작업을 진행 후 비동기적으로 인앱 리스트를 받으며 받은 결과를 보여주는 API 입니다. 호출하는 타이밍상 정보가 없을 수가 있습니다. 정보가 없는 경우 getPurchaseDetailListAsync API (동기식 인앱 목록 항목 획득)를 사용하시는 것을 추천드립니다. 구글의 경우 기기에 구글 계정이 미등록된 기기에서는 응답이 없을 수가 있습니다.
    • 각 스토어 인앱 결제를 위한 결제 계정이 기기에 로그인되어 있어야 하며 결제를 진행하는 계정의 국가 정보가 스토어 앱 배포 국가에 속한 계정이여야 합니다.
    • 애플 스토어의 경우 애플 시스템 특성상 앱, 앱의 인앱 정보 배포가 서로 다르게 진행되는 구조이며 정책상 24시간 이내 배포되는 정책을 가지고 있습니다.

    인앱 상품 검수 완료 및 배포 설정까지 된 상태에서 개발 버전 / 테스트 플라이트 버전에서 정보를 가져옵니다. 단 상용 서비스 버전에서만 못 가져온다면 애플 서버에 인앱 정보가 배포가 안된 경우이며 보통 배포 설정 후 24시간 이내 해결이 되지만 3일 정도까지 애플에서 관련 정보를 보내지 않는 경우도 있습니다.

    Q. 인앱 영수증이 있는데 대시보드의 영수증 정보가 없어요 / 결제 진행이 중단된 경우 복구 처리하는 로직이 있나요?
    A. 게임팟 결제 로직은 다음과 같습니다.
    클라이언트 -> 스토어 인앱 결제 진행 -> 게임팟 서버에서 대시보드에 기입한 정보를 토대로 영수증 검증을 진행합니다.
    영수증 검증 시 문제가 없으면 결제 Webhook api 발송 후 대시보드 결제 목록에 정보가 추가 / Webhook api 결과와 상관없이 클라이언트 SDK에는 성공 처리됩니다.
    스토어 인앱 결제에서 성공 이후 알 수 없는 이유로( 네트워크 이슈, 앱 강제 종료 등등) 중단되는 경우 쉐어드 메모리에 결제 API 호출시 전달한 정보를 저장합니다.
    이슈가 발생한 앱을 종료 -> 앱을 재실행 -> 로그인 성공시 게임팟 내부적으로 결제 중단 이력을 체크를 합니다. 중단된 이력이 있는 경우 쉐어드 메모리에 저장된 내용을 토대로 결제 로직이 다시 진행되며 영수증 검증까지 이상없으면 결제 Webhook api 발송 후 대시보드 결제 목록에 정보가 추가됩니다.

    인앱 영수증은 있으나 게임팟 대시보드에 결제 이력이 없는 경우는 게임팟 결제 로직상에 문제가 발생한 케이스입니다. 유저에게는 결제를 진행한 앱을 다시 실행하여 로그인 유도를 해주시면 내부적으로 결제 로직이 다시 진행이 되며 이상이 없는경우 결제 API를 발송 및 대시보드에 이력을 남깁니다.

    결제 모듈이 다른 앱을 실행하면 결제 복구 로직이 발생하지 않습니다
    <예시> 구글 결제 진행 후 장애 발생 -> 원스토어 버전 로그인시 결제 모듈이 다르기때문에 결제 복구 로직이 진행되지 않습니다.
    구글의 경우 기기 설정 내 결제를 진행한 계정만 남긴 상태에서 진행합니다. (로그인 계정과 결제하는 계정은 다를 수 있습니다.)

    Adbrix Remaster

    Adbrix Remaster와 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. Adbrix Remaster 적용 후 IOS 빌드 시 Crash가 발생합니다.
    A. Adbrix Remaster는 Swift로 구현되어 있는 라이브러리로 Swift 라이브러리 적용 시 추가 설정이 필요합니다. XCode에서 아래와 같이 설정 하신 후 빌드합니다. 만약 빌드해도 동일하다면 클린 빌드를 진행한 후 확인해 주십시오.
    gamepot-faq28_adbrix1_ko.png

    gamepot-faq29_adbrix2_ko.png

    Q. Adbrix Remaster 적용 후 AppStore 업로드 시 Error가 발생합니다.
    A. Adbrix Remaster 라이브러리가 x86_64, i386 아키텍쳐를 포함 하여 발생하는 문제입니다. 아래와 같이 조치 후 다시 빌드 후 확인해 주십시오.
    콘솔(터미널)에서 AdBrixRM.framework 파일 위치로 이동 후 아래 두 명령어를 입력해 주십시오.

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

    gamepot-faq30_adbrix_error_ko.png

    NAVER Cafe와 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. iOS NAVER Cafe 노출 시 영문으로 노출됩니다.
    A. XCode > Targets > Info > Localization에서 native development region을 korea로 변경한 후 확인해 주십시오.

    서비스 런칭

    서비스 런칭과 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. iOS 플랫폼을 대상으로 서비스를 런칭할 때 주의해야 할 점이 있나요?
    A. iOS App Store 의 경우, 앱 검수 기간이 1~2 주 가량 소요되기 때문에 2주 정도 여유기간을 두시고 리얼존 대시보드로 이전을 신청해야 원활한 진행이 가능합니다.

    푸시알림

    푸시 알림과 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. iOS에서 알림이 오지 않습니다.
    A. 다음을 하나씩 확인해 주십시오.

    1. NCloud SENS 설정에 Certification에 iOS 인증서가 등록되어 있는지 확인해 주십시오.
      • iOS는 빌드 시 사용 된 프로비저닝프로파일 타입에 따라 등록해야 하는 인증서가 다릅니다.
        • Developement Provisioning > Apple Development 인증서 등록에서 Type을 Sandbox로 설정
        • Adhoc / Distribution Provisioning > iOS Distribution 인증서 등록에서 Type을 Production으로 설정
    2. 인증서 등록 후 클라이언트에서 로그인까지 완료 되었는지 확인해 주십시오.
      • Gamepot은 푸시 토큰을 로그인 완료 시 서버로 전달합니다. 따라서 인증서를 등록했으면 클라이언트에서 로그인까지 진행 후 확인해 주십시오.
    3. 앱이 Forground 상태 인지 확인해 주십시오.
      • iOS의 경우 앱이 Forground 인 상태에서는 푸시 수신이 되지 않습니다. home 버튼을 클릭한 후 메인 화면에서 푸시가 수신되는지 확인해 주십시오.
    4. Xcode에서 build 시 Capability에 Push Notification이 포함되어 있는지 확인해 주십시오.
      • Xcode에서 build 시 Capability에 Push Notification이 포함되어야 합니다. 수신이 되지 않는다면 빌드 시 이 부분이 포함되지 않았는지 확인해 주십시오.

    Q. AOS에서 알림이 오지 않습니다.
    A. 다음 항목을 확인해 주십시오.

    • 네이버 클라우드 콘솔상 푸시 설정 값이 잘 설정되었는지 확인해 주십시오.
      • Firebase 콘솔 > 앱 설정 > [클라우드 메시징] 탭에 서버키와 발신자 ID가 정보 확인해 주십시오.
      • [네이버 클라우드 콘솔 > Simple & Easy Notification Service (SENS) > push > certificate] 항목에서 설정 값을 확인해 주십시오.
        https://console.ncloud.com/sens/push-certificate
    • Firebase SDK를 별도로 탑재하여 사용 중인 경우
      • ../Assets/Plugins/Android/AndroidManifest.xml 내 하기 코드가 적용되어 있는지 확인해 주십시오.
          ....
          </activity>
      
          <!-- FCM [start]-->
          <service android:name="io.gamepot.common.GamePotFCMIDService">
          <intent-filter>
              <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
          </intent-filter>
          </service>
          <service 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" />
      

    구글 앱 서명 사용 시 주의 사항

    구글 앱 서명 사용 시 자주하는 질문과 답변은 다음과 같습니다.

    Q. 직접 설치한 APK는 소셜 로그인이 정상적으로 되나, 스토어에서 다운로드 후 소셜로그인하면 로그인이 되지 않습니다.
    A. 구글 개발자 콘솔에서 앱 서명이 활성화 되어 키스토어가 변경된 경우입니다. 구글 개발자 콘솔 > 설정 > 앱 무결성 메뉴에 아래와 같은 화면이 나타납니다. 구글 로그인을 이용중이라면 SHA-1값을 firebase console에 추가하고, 페이스북 로그인을 이용 중이라면 위 SHA-1값의 keyhash를 페이스북 콘솔에 추가해 주십시오.
    gamepot-faq31_googleSHA_ko.png

    사용자 ID 이전

    사용자 ID 이전과 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    참고

    사용자ID 이관은 소셜 계정으로 연결된 사용자ID에서만 다른 사용자ID로 이관할 수 있습니다.

    1. 이전을 시킬 사용자ID와 이전을 받을 사용자 ID를 확보해 주십시오.
    2. 이전을 시킬 사용자ID를 게임팟 대시보드 > 회원 > 목록 화면에서 사용자ID를 조회 후 사용자 ID를 클릭하여 상세 화면으로 이동해 주십시오.
    3. 하단에 계정연동 탭을 클릭 > 이동을 하고자 하는 소셜 아이디 옆의 설정 아이콘을 클릭해 주십시오.
    4. 연동 정보 변경 팝업 창 내에 이전 받을 사용자ID를 입력 후 [변경] 버튼을 클릭해 주십시오.
      • 변경을 하면 해당 사용자ID에서 소셜 계정 정보가 사라집니다.
        gamepot-faq32_userIDmove_ko.png
    5. 이전 받은 사용자 ID를 게임팟 대시보드 > 회원 > 목록 화면에서 사용자ID를 조회한 후 사용자 ID를 클릭하여 상세 화면으로 이동해 주십시오.
    6. 하단에 [계정연동] 탭을 클릭 > 이전을 한 소셜 아이디가 존재하는지 확인해 주십시오.
      • gamepot-faq33_userIDmove2_ko.png
    7. 이전 시킬 사용자ID로 로그인된 클라이언트에서 로그아웃을 한 후 다시 로그인 과정을 진행해 주십시오.

    사용자 ID 복구

    사용자 ID 복구와 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    1. 게임팟 대시보드 > 회원 > 목록에서 사용자ID를 조회 후 사용자ID를 클릭하여 상세 화면으로 이동해 주십시오.
    2. 회원 복구 버튼을 클릭한 후 [확인] 버튼을 클릭해 주십시오.

    단. 사용자가 탈퇴 후 동일한 소셜 계정으로 로그인 과정을 진행하여 신규 사용자ID를 발급 받았다면 1, 2번 과정을 진행한 이후 사용자ID 이전하는 방법을 이용하여 사용자ID 이전 절차를 진행해야 합니다.
    gamepot-faq34_userIDmove3_ko.png

    대시보드 사전 예약 페이지 연동

    대시보드 사전 예약 페이지를 진행하는 방법은 다음과 같습니다.

    1. 발신번호 신청

    발신번호 신청 및 해당 번호의 승인이 된 이후에 문자를 발송할 수 있습니다.
    SMS 발신번호 신청 가이드를 참고해 주십시오.

    2. 사전예약 페이지 연동 API

    API는 SMS 인증문자 발송 -> SMS 인증완료 -> SMS 사전예약 신청완료 순으로 진행이 되어야 합니다.
    게임 > 사전예약 페이지에서 [추가] 버튼을 클릭하여 명칭을 입력한 후 [저장] 을 클릭해 주십시오.
    GamePot 사전예약 페이지의 Category Id에서 저장한 명칭을 선택 후 옆의 복사 아이콘을 클릭해 주십시오.
    gamepot-faq35_Pre-booking_ko.png

    3. SMS 인증 문자

    SMS 인증 문자와 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    3-1. SMS 인증문자 발송

    Request

    POST
    url : https://gamepot.apigw.ntruss.com/gpapps/v2/phone/request
    Header : 'content-type: application/json'
    data:
    {
    	"projectId":"ab2775b4-cf09-4794-9480-XXXXXXXXXXXX",
    	"categoryId":"b062a3f3-0a37-44d1-9e8f-XXXXXXXXXXXX",
    	"from":"XXXXXXX",
    	"to":"010XXXXXXX",
    	"store":"google"
    }
    
    AttributeTypeRequiredDescription
    projectIdString-GamePot SDK의 projectId
    categoryIdString-GamePot 사전예약 페이지의 categoryId
    fromString-승인 받은 발신번호
    toString-SMS 인증 번호를 수신 받는 연락처
    storeString-스토어 ( google, one, apple )

    Response

    {
        "code": 200,
        "message" : ""
    }
    
    AttributeTypeDescription
    codeInt결과값 (200: 성공, 404: 실패)
    errorString상황별 오류 내용 전달

    3-2 SMS 인증 완료

    Request

    POST
    url : https://gamepot.apigw.ntruss.com/gpapps/v2/phone/verify
    Header : 'content-type: application/json'
    data:
    {
    	"projectId":"ab2775b4-cf09-4794-9480-XXXXXXXXXXXX",
    	"categoryId":"b062a3f3-0a37-44d1-9e8f-XXXXXXXXXXXX",
    	"code":"6137",
    	"to":"010XXXXXXX",
    	"store":"google"
    }
    
    AttributeTypeRequiredDescription
    projectIdString-GamePot SDK의 projectId
    categoryIdString-GamePot 사전예약 페이지의 categoryId
    codeString-수신 받은 인증번호
    toString-SMS 인증 번호를 수신 받는 연락처
    storeString-스토어 ( google, one, apple )

    Response

    {
        "code": 200,
        "message" : ""
    }
    
    AttributeTypeDescription
    codeInt결과값 (200: 성공, 404: 실패)
    errorString상황별 오류 내용 전달

    3-3 SMS 사전 예약 신청 완료

    Request

    POST
    url : https://gamepot.apigw.ntruss.com/gpapps/v2/phone/join
    Header : 'content-type: application/json'
    data:
    {
    	"projectId":"ab2775b4-cf09-4794-9480-XXXXXXXXXXXX",
    	"categoryId":"b062a3f3-0a37-44d1-9e8f-XXXXXXXXXXXX",
    	"code":"6137",
       	"from":"02XXXXXXXX",
    	"to":"010XXXXXXX",
    	"store":"google",
        	"tag":""
    }
    
    AttributeTypeRequiredDescription
    projectIdString-GamePot SDK의 projectId
    categoryIdString-GamePot 사전예약 페이지의 categoryId
    codeString-수신 받은 인증번호
    fromString-승인 받은 발신번호
    toString-SMS 인증 번호를 수신 받는 연락처
    storeString-스토어 ( google, one, apple )
    tagString-기타 정보 ( 유입 경로 같은 정보 )

    Response

    {
        "code": 200,
        "message" : ""
    }
    
    AttributeTypeDescription
    codeInt결과값 (200: 성공, 404: 실패)
    errorString상황별 오류 내용 전달

    사전 예약 사이트 관련 PHP 소스 기반 소스는 다음 링크를 참조해 주십시오.

    GooglePlayGames API

    GooglePlayGames API와 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    구글 로그인과 다르게 구글 플레이 게임 서비스 로그인은 이종 간 로그인을 지원하지 않습니다. 따라서 게임팟에서는 구글 플레이 게임 서비스 로그인을 메인 로그인 방식으로 사용하지 않을 것을 권장합니다. 게임팟에서는 기본적으로 구글 플레이 게임 서비스 라이브러리(gamepot-channel-google-playgame.aar)가 있는 경우 구글 업적 및 리더보드 연결을 위한 동작으로 판단하여 기본 로그인 이후 구글 플레이 로그인되도록 되어 있습니다.

    Q. 로그인 시 다른 플랫폼을 사용하려고 하지만 구글 플레이 로그인이 시도됩니다. 관련 팝업이 안 뜨게 하려면 어떻게 하나요?
    A. 게임팟에서는 구글 업적 및 리더보드 연결을 위한 동작으로 판단하여 기본 로그인 이후 구글 플레이 로그인하도록 되어있습니다.

    구글 플레이 게임 서비스 로그인은 사용하지만 구글 업적, 리더 보드를 사용하지 않는다면 로그인 API 전에 다음과 같이 설정해 주십시오.

    • Android
    GamePotChannel.getInstance().enableGPG(false);
    
    • Unity
    GamePot.enableGPG(false)
    

    Google Play Game API - 구글 업적, 구글 리더 보드

    구글 업적, 구글 리더 보드와 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. GAMEPOT SDK를 통해, GooglePlayGames API를 사용할 수 있나요?
    A. GAMEPOT SDK에서 자체적으로 지원하는 GooglePlayGames API가 존재합니다. (업적, 리더보드) (Android, Unity, Unreal) 플랫폼별, GooglePlayGames API 사용 방법은 다음과 같습니다.

    Android

    빌드 시, gamepot-channel-google-playgame.aar을 포함하여 빌드를 진행해 주십시오.
    ../app/build.gradle에 gamepot_gpg_id 값을 입력해 주십시오.

    ...
    android {
        ...
        defaultConfig {
            ...
            resValue "string", "gamepot_gpg_id", ""
        }
        ...
    }
    
    import io.gamepot.channel.GamePotChannel;
    import io.gamepot.channel.google.playgame.GamePotAchievementInfo;
    
    //Achievement Handling API
    GamePotChannel.getInstance().showAchievement(ACTIVITY);
    
    GamePotChannel.getInstance().loadAchievements(ACTIVITY, new GamePotChannelListener<GamePotAchievementInfo>() {
        @Override
        public void onCancel() {
        }
        @Override
        public void onSuccess(GamePotAchievementInfo info) {}
        
        @Override
        public void onFailure(GamePotError err) {}
        });
    
    GamePotChannel.getInstance().unlockAchievement(Activity activity, String achievementId);
    
    GamePotChannel.getInstance().incrementAchievement(Activity activity, String achievementId, int Count);
    
    
    //Leaderboard Handling API
    GamePotChannel.getInstance().showLeaderboard(Activity activity);
    
    GamePotChannel.getInstance().submitScoreLeaderboard(Activity activity, String leaderBoardId, int leaderBoardScore);
    

    Unity

    빌드 시, gamepot-channel-google-playgame.aar을 포함하여 빌드를 진행해 주십시오.
    ../Assets/Plugin/Android/mainTemplate.gradle에 gamepot_gpg_id 값을 입력해 주십오.

    ...
    android {
        ...
        defaultConfig {
            ...
            resValue "string", "gamepot_gpg_id", ""
        }
        ...
    }
    
    using GamePotUnity;
    
    //Achievement Handling API
    GamePot.showAchievement();
    
    GamePot.unlockAchievement(string achievementId);
    
    GamePot.incrementAchievement(string achievementId, string count);
    
    GamePot.loadAchievement();
    
    //loadAchievement Handled by Callback Function
    void onLoadAchievementSuccess(List<NAchievementInfo> info);
    void onLoadAchievementFailure(NError error);
    void onLoadAchievementCancel();
    
    //Leaderboard Handling API
    GamePot.showLeaderboard();
    
    GamePot.submitScoreLeaderboard(string leaderBoardId, string leaderBoardScore);
    

    Unreal

    Unreal 엔진의 경우, 엔진 소스 내 빌드스크립트에서 gpg App ID 값을 디폴트로 Manifest Merge하고 있습니다. (UnrealEngine 4.26 기준)
    GAMEPOT GooglePlayGames 모듈과 duplicate 나지 않도록, 엔진 소스 내 Engine/Source/Programs/UnrealBuilTool/Platform/Android/UEDeployAndroid.cs 의 다음 2-line을 주석 처리해 주십시오.
    image.png

    GamePot_Android_UPL.xml 수정

    ...
    <resourceCopies>
            <copyFile src="$S(PluginDir)/ThirdParty/Android/libs/gamepot-channel-google-playgame.aar" dst="$S(BuildDir)/libs/gamepot-channel-google-playgame.aar" />
    </resourceCopies>
    
    ...
    
    <AARImports>
        <insertValue value="com.google.android.gms,play-services-games,21.0.0"/>
        <insertNewline/>
        <insertValue value="com.google.android.gms,play-services-base,17.5.0"/>
        <insertNewline/>
        <insertValue value="com.google.android.gms,play-services-auth,19.0.0"/>       
        <insertNewline/>
    </AARImports>
    
    ...
    
    <buildGradleAdditions>
        <insert>
    
            ...
            dependencies {
                ...
                implementation(name: 'gamepot-channel-google-playgame', ext: 'aar')
                implementation 'com.google.android.gms:play-services-games:21.0.0'
                implementation 'com.google.android.gms:play-services-base:17.5.0'
                implementation 'com.google.android.gms:play-services-auth:19.0.0'
                ...
            }
            ...
    
            defaultConfig {
                ...
                resValue "string", "gamepot_gpg_id","xxx" //insert gpg App ID
                ...
            }
    
        </insert>
    </buildGradleAdditions>
    
    ...
    
    <gameActivityImportAdditions>
      <insert>
        import io.gamepot.channel.google.playgame.GamePotGooglePlaygame;
      </insert>
    </gameActivityImportAdditions>
    
    ...
    
    #include "GamePotSDKPluginModule.h"
    
    //Achievement Handling API
    FGamePotSDKPluginModule::GetSharedGamePotSdk()->showAchievement();
    
    FGamePotSDKPluginModule::GetSharedGamePotSdk()->unlockAchievement(FString achievementId);
    
    FGamePotSDKPluginModule::GetSharedGamePotSdk()->incrementAchievement(FString achievementId, FString count);
    
    //loadAchievement Handled by Callback Function
    FGamePotSDKPluginModule::GetSharedGamePotSdk()->loadAchievement();
    
    void FOnSdkLoadAchievementSuccess(FNAchievementInfo info);
    void FOnSdkLoadAchievementFailure(FNError error);
    void FOnSdkLoadAchievementCancel();
    
    //Leaderboard Handling API
    FGamePotSDKPluginModule::GetSharedGamePotSdk()->showLeaderboard();
    
    FGamePotSDKPluginModule::GetSharedGamePotSdk()->submitScoreLeaderboard(FString leaderBoardId, FString leaderBoardScore);
    

    Casebook

    Casebook과 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    게임팟 API 지연 속도 확인

    게임팟 API의 지연 속도를 확인하려면 지연 테스트를 참고해 주십시오.

    image.png

    Dashboard

    Dashboard와 관련하여 자주하는 질문과 답변은 다음과 같습니다.

    Q. Push 메시지가 수신되지 않습니다.
    A. 대시보드 > 프로젝트 설정 > ncloud API 인증키에서 AccessKey, Secret Key, SENS-PUSH, SENS-SMS 값을 확인해 주십시오. 해당 인증 키에 대해 SENS 프로젝트의 Certificate 설정을 했는지 확인해 주십시오.
    image.png

    Q. 사용자 지표 Retention 계산 방식이 궁금합니다.
    A. 광고 등의 경로로 유입된 허수를 제외하기 위해 계정을 생성한 후 그 다음 날 접속한 유저를 새로운 유저로로 간주하여 카운팅합니다.

    <예시>
    아래의 이미지에서 2020-01-07 기준으로 살펴봤을 때, 2020-01-07에 신규 유저 중 2020-01-08에 접속한 인원이 5명이며 해당 날짜(2020-01-07)의 신규 유저를 5명으로 판단합니다. (Day1 값과 같습니다.) 해당 인원 기준으로 Day 2(다음 날 2020-01-09)에 1명 접속 / Day 3에 0명 접속 / Day 4에 1명 접속한 상태를 보여줍니다. 5명의 유저 중, n Day에 카운트 되는 방식이기 때문에 중간에 0%로 빠지는 구간이 생깁니다.
    image.png

    Q. 회원을 이용 정지 리스트에 추가한 후 구글 환불을 진행하면 사용자 아이디가 활성화되나요?

    A. 이용 정지 리스트에 사용자 아이디가 추가되어 있고 비활성화 상태일 때, 구글 환불을 진행 하더라도 자동으로 해당 리스트가 활성화되지 않습니다. 또한 비활성화 된 사용자 아이디에 대해서는 계정 접근을 막지 않고 있습니다.

    기타

    GAMEPOT과 관련하여 자주하는 기타 질문과 답변은 다음과 같습니다.

    Q. Firebase Console에서 google-service.json 추출에 오류가 발생합니다.
    A. Firebase Console 상에서, SHA 지문이 등록된 상태에서 google-service.json을 추출합니다. 그렇지 않을 경우, json 파일의 일부 값이 누락되어 추출될 가능성이 있어 정상적인 로그인이 안 될 수도 있습니다.
    image.png

    Q. 게임팟 로그인 검증 시, Token authentication failed 오류가 발생합니다.
    A. 베타존을 사용 중인 업체에서 발생할 수 있는 이슈입니다. 로그인 검증 Request URL이 'https://gamepot.apigw.ntruss.com/gpapps/v1/loginauth'로 설정되어 있으면, https://cloud-api.gamepot.io/loginauth으로 변경하여 확인해 주십시오.

    • 리얼존: https://gamepot.apigw.ntruss.com/gpapps/v1/loginauth
    • 베타존: https://cloud-api.gamepot.io/loginauth ( 서비스 종료 )

    Q. 빌드 실행 시, '비정상적으로 앱이 실행되었습니다. 스토어에서 다운로드 받으세요' 메시지 팝업이 발생합니다.
    A. 대시보드 > 프로젝트 설정 > [일반] 탭에서, 해시키가 잘못 설정되어 발생할 수 있습니다. 해당 해시키를 삭제하거나 정확한 해시키를 입력한 후 확인해 주십시오.
    image.png

    Q. Gamepot SDK에서 결제 시도 시, Gamepot SDK에서는 성공 응답을 받았지만 대시보드 > 결제 > 결제목록에 결제 이력이 표시되지 않고, 게임서버에 request 전달이 안 됩니다.
    A. 대시보드 > 프로젝트 설정 > [일반] 탭에서, 구글 API Key의 Json 값이 등록되어 있는지 확인해 주십시오. 구글 API Key 설정이 version 2로 되어있을 때, 해당 key 값이 없어도 결제가 가능했지만 version 3부터는 key 값을 입력해야 합니다.
    만약 입력이 되어 있는 상태라면 도움말 보기를 클릭하여 JSON 값을 다시 생성하여 등록해 주십시오.

    참고

    새로 계정을 발급받고 key 값을 추출해 넣었을 때, 새로운 키가 갱신 적용되기까지는 약 하루 가량 시간이 소요됩니다.

    image.png

    Q. 결제 완료 후, Google Play Developer API not linked 오류가 발생합니다.
    A. 구글 API Key 설정이 올바르지 않을 때 발생할 수 있는 문제입니다. 도움말 보기를 클릭하여 JSON 값을 다시 생성하여 등록해 주십시오.

    참고

    새로 계정을 발급받고 key 값을 추출해 넣었을 때, 새로운 키가 갱신 적용되기까지는 약 하루 가량 시간이 소요됩니다.

    image.png

    Q. 신규 서비스 계정 발급 후 Key값을 적용했음에도 결제 API가 실패합니다.
    A. (구글 서비스 계정 이관 시) 신규 Key를 발급받아 적용했음에도, 결제 API가 실패하는 구글 콘솔 측 버그 리포트가 유입되었습니다(2020.02.13).
    결제 진행 후 아래와 같은 오류가 발생합니다.

    • 오류 문구: "The current user has insufficient permissions to perform the requested operation."

    구글 콘솔에서 서비스 계정에 권한 설정이 정상적으로 되었는지 추가 확인 후 구글 콘솔에서 임의로 인앱상품을 하나 생성한 다음, 문제가 해결되는지 확인해 주십시오.

    Q. iOS Push 메시지 수신에 오류가 발생합니다.
    A. iOS 푸시 메시지 수신에 오류가 발생한 경우 iOS APNS 인증서 등록 가이드를 참고하여 다음과 같이 진행해 주십시오.

    1. SENS 설정에 Certification에 인증키 및 인증서가 등록되어 있는지 확인해 주십시오.
    2. iOS의 경우 빌드 시 사용 된 프로비저닝프로파일 타입에 따라 등록해야 하는 인증서가 다릅니다.
      [Development]: Xcode > Provisioning 에서 Push Development 인증서를 업로드한 후, Type을 Sandbox로 설정해 주십시오.
      [Adhoc/Distribution]: Xcode > Provisioning 에서 Push Distribution 인증서를 업로드한 후, Type을 Production으로 설정해 주십시오.
    3. Gamepot은 Push Token을 로그인 완료 시 서버로 전달합니다. 따라서 인증서를 등록한 후, 클라이언트에서 로그인까지 진행되는지 확인해 주십시오.
    4. iOS의 경우, 앱이 Forground 상태에서는 푸시가 오지 않습니다. home 버튼을 눌러 메인 화면에서 푸시가 오는지 확인해 주십시오.
    5. iOS의 경우, Xcode에서 build 시 Capability에 Push Notification이 포함되어야 합니다. 수신이 되지 않을 경우, 빌드 시 해당 부분이 추가되지 않았는지 확인해 주십시오.

    Q. iOS에서 결제를 테스트하고 싶습니다.
    A. iOS에서 결제 테스트를 하려면 다음과 같이 진행해 주십시오.

    1. 테스트 하려는 기기의 설정 >> iTunse 및 Store >> Apple ID : XXXX 를 터치 >> 로그아웃
    2. 앱 실행
    3. 앱의 유료 결제 항목 선택
    4. 팝업 발생 시 기존 appleID 사용으로 선택.
    5. 테스트 계정 ID / PW 입력한 후 로그인
      • 상태에 따라 팝업이 여러 번 나타날 수 있습니다.
    6. 유료 결제 항목의 가격 및 이름이 팝업 형태로 노출되며 [Environment : Sandbox] 문구 노출
    7. 구입 선택
    • 결제 팝업에 [Environment : Sandbox] 문구가 노출 되면 실제 요금은 부과되지 않습니다.

    Q. Push 메시지에 표시되는 앱 이름을 변경하고자 합니다.
    A. 앱 이름은 클라이언트 빌드 시 결정됩니다. 언어에 맞게 앱 이름을 변경하려면 다음과 같이 진행해 주십시오.
    image.png

    • 안드로이드

      app/src/main/res/values-국가코드/strings.xml
      

      <예시> 디바이스 언어가 영어일 때 앱 이름을 변경하고자 할 때

      app/src/main/res/values-en/strings.xml
      
    • 유니티 안드로이드

      Assets/Plugins/Android/GamePotResources/res/values-국가코드/strings.xml
      

      <예시> 디바이스 언어가 한국어일 때 앱 이름을 변경하고자 할 때

      Assets/Plugins/Android/GamePotResources/res/values-ko/strings.xml
      

      strings.xml

      <?xml version="1.0" encoding="utf-8"?>
          <resources>
              <string name="app_name">언어에 맞게 앱 이름을  설정</string>
          </resources>
      
    • iOS

      1. XCode > Targets > Info에서 Localization 항목에 원하는 언어를 추가해 주십시오.
        image.png
      2. Xcode > File > file에서 Strings File 아이콘을 클릭한 후 [next] 버튼을 클릭해 주십시오. 파일명을 InfoPlist로 입력하여 파일을 생성해 주십시오.
      3. 생성된 파일을 선택하여 Localization 설정을 입력해 주십시오.
        image.png
      4. 언어를 선택하면 관련 파일이 생성되며, 해당 파일에 각 언어에 대한 앱 이름을 입력해 주십시오.
        [InfoPlist.string] CFBundleDisplayName="언어에 맞게 앱 이름을 설정";
        image.png

    Q. 인앱 리스트 정보를 가져올 때 스토어마다 GamePot.getPurchaseItems() API의 Price 값이 다릅니다.
    A. 인앱 리스트 정보를 가져올 때 각 스토어 인앱 SDK에서 전달해 주는 값은 다음과 같습니다.

    • 구글 스토어: price의 값은 화폐단위 + 인앱 가격
      <예시> ₩1,000
    • 애플 스토어 : price의 값은 인앱 가격
      <예시> 1000

    IOS에서 화폐 단위를 표기하기 위해서는 price_currency_code 값을 참고해 주십시오.
    <예시> price_currency_code : KRW

    Q. 대시보드 관리자 계정이 비밀번호 5회 실패로 로그인이 안 돼요. (V2 대시보드 사용자 대상)
    A. 5회 이상 관리자 계정 로그인에 실패하면 비밀번호를 초기화해야 합니다. 다음과 같이 비밀번호 초기화를 진행해 주십시오.

    1. 네이버 클라우드 플랫폼 콘솔에서 admin 계정으로 로그인한 후, Services > Gaming > GAMEPOT 메뉴를 클릭해 주십시오.
    2. 비밀번호를 초기화 하고자 하는 대시보드를 선택한 후, 프로젝트 관리 항목을 클릭 시 비밀번호 초기화 메뉴가 표시됩니다.
    3. 비밀번호 초기화 메뉴를 선택시 관리자 계정을 입력하는 팝업이 발생하며 내용 입력 시 관련 메일로 초기화할 수 있는 메일이 전달됩니다.
      image.png

    image.png

    image.png

    Q. 대시보드 데이터 초기화 지원 범위가 궁금합니다.
    A. 스토어 배포 전에 원하는 목록을 정리하여 요청하는 것을 권장합니다. 앱 배포 후 데이터를 초기화할 경우, 실제 유저의 데이터와 더미 데이터의 구분이 명확하지 않아 서비스에 혼란을 초래하므로 권장하지 않습니다. CBT를 선행으로 진행 후 런칭 진행 시 회원 정보를 유지하지 않는 경우 게임DB 초기화 시 게임팟 계정 연동 이력도 삭제돼야 하므로 런칭 전에 반드시 삭제 요청을 합니다. 삭제된 데이터는 복구되지 않으니 신중히 판단해 주십시오.
    한국 리전의 대시보드인 경우만 삭제가 가능합니다.

    대시보드 메뉴별 데이터 삭제 가능 범위는 아래와 같습니다.

    목록스토어 배포 전스토어 배포 후
    사용자 지표XX
    매출 지표XX
    회원(소셜 계정 연동 포함)O조건부 가능
    결제 목록OO
    공지사항XX
    점검XX
    업데이트XX
    메시지XX
    쿠폰XX
    고객지원XX
    게임 > 플레이어XX
    게임 > 선물하기XX

    Q. 애플의 iOS 14 개인정보처리방침 강화에 따라 수집하는 개인정보 내역 리스트가 궁금합니다.
    A. 애플 콘솔 > 일반정보 > [앱이 수집하는 개인정보] 탭을 기준으로(고객 신원 정보와 연결되지 않으며 관련 정보로 추적하는 목적이 아닌 사항) 게임팟 SDK에서 수집하는 항목은 다음과 같습니다.

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

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

    Q. 결제 / 로그인 시 오류 코드가 궁금합니다.
    A. 결제와 로그인 시 발생하는 오류 코드는 다음과 같습니다.

    • 결제 실패시 오류 코드 - 405: 동일한 결제 정보가 게임팟 서버에 수신되어 발생하는 경우입니다.

      • 결제 API 호출 후 결제 로직이 완료가 안된 상태에서 연속적으로 호출되어 발생한 경우, 결제 완료 처리 이후에 호출하는 부분이 있는지 확인 부탁드립니다.
      • 네트워크 이슈로 동일한 결제 정보가 중복으로 요청되어 발생한 경우, 네트워크 이슈로 게임팟 서버에 결제 정보를 전달 했으나 (게임팟 서버에서는 관련 정보를 받아 관련 처리가 진행된 상태- Purchase Webhook API 발송) 관련 응답을 못받은 상태에서 클라이언트에서는 결제 정보를 또 다시 게임팟 서버에 전달했을 때 게임팟 서버에서는 해당 건을 중복처리로 인지하여 실패 케이스로 처리한 경우입니다. 클라이언트 구조 상 하나의 응답만 받을 수 없기 때문에 발생하는 건으로 실질적으로는 유저가 결제 아이템을 받았을 것으로,해당 케이스에서는 운영 상에 이슈는 없을 것으로 판단됩니다.
    • 결제 실패시 오류 코드 - 5000: 가이드의 내용처럼 결제에서 알 수 없는 오류 발생 및 스토어 인앱 SDK에서 에러가 발생한 경우 입니다.

      • 기기 내 결제 환경이 안 되어 있거나 결제 관련 셋팅이 안 되어 있는 경우 발생합니다. 빌드 시 결제 모듈 라이브러리가 미탑재, 각 스토어 콘솔 내 결제 관련 설정 누락, 게임팟 대시보드 내 결제 관련 셋팅 정보 누락, 기기 내 결제 계정이 앱 배포 국가에 맞지 않는 경우 등. 결제 오류 참조
      • '결제 오류가 발생했습니다. code ( 숫자 ) ..... 입니다' 메시지가 뜨는 경우, 인앱 SDK 오류로 인해 발생하는 문제로 code () 안의 숫자가 인앱 SDK의 오류 코드입니다. 특정 유저가 구글 결제 시도 시 간혹 code(5) 오류에 대한 문의가 있습니다.
        • APK 변조 가능성 - 문제가 발생하는 앱 삭제 후 스토어에서 버전을 다시 받도록 유도합니다.
        • 앱 재설치 후에도 발생한다면 구글 스토어 앱에 저장된 정보와 결제 정보 이슈일 수도 있습니다. 기기 내 구글 계정 삭제, 구글 스토어 앱 내 데이터 삭제 후 구글 계정 재등록해 보십시오.
        • 구글 인앱 에러 코드 참고: https://developer.android.com/reference/com/android/billingclient/api/BillingClient.BillingResponseCode?authuser=1#DEVELOPER_ERROR
    • 로그인시 오류 코드 - 407: 사용자 아이디가 이용정지된 케이스입니다. error message에 대시보드에 설정한 이용 정지 사유를 전달합니다.

    ** Q. 결제 인앱 리스트 상에 통화 단위 변경은 어떻게 하나요?**
    A. 결제 인앱 리스트 상의 통화 단위는 해당 스토어의 인앱 SDK에서 제공하는 값을 제공하고 있습니다. 일반적으로 결제를 진행하는 결제 계정의 국가 및 결제 수단에 따라 관련 정보가 결정됩니다. 타 국가의 통화 단위로 보기 원하신다면 해당 국가에 맞는 결제 계정 생성 및 관련 설정을 진행하시면 됩니다.(구글의 경우 기기 내 계정 설정에 결제 계정을 제외한 다른 계정을 삭제 후 진행)

    Q. 게임팟 Pro 상품에서 Essential로 다운그레이드 진행 시 고려할 점은 뭔가요?
    A. 통계(사용자 지표/매출지표), 점검&업데이트, 객지원(고객문의/약관/페이지 기능 등등), 쿠폰 등은 별도로 구현해야 합니다.

    • 게임팟 에센셜 상품에서 지원하는 메뉴는 아래와 같습니다.
      운영 > 회원 (목록/일별 접속자/신규사용자/동시 접속자/이용정지)
      운영 > 결제 (목록/IAP/통계)
      운영 > 메시지 (푸시 메시지/문자 메시지)

    Q. 게임팟에서는 구글 > 프로젝트 선택 > 앱 콘텐츠 > 데이터 보안 섹션에 해당하는 부분은 어떤 기능들을 사용하고 사용 목적은 무엇인가요?
    A. 앱 통신은 https 통신 방식을 사용하여 암호화 처리가 되어 있으며 회원 탈퇴 기능이 있다면 유저 입장에서는 정보 삭제로 판단됩니다.
    앱 기능 목적으로만 사용합니다.

    • 개인 정보
      • 이메일 주소
      • 사용자 ID
    • 기기 또는 기타 ID
      • 기기 또는 기타 ID
    • 사진 및 동영상
      • 사진
      • 동영상

    사진 및 동영상의 경우 게임팟 PRO 이상 상품을 이용하는 고객 중 게임팟 고객 문의 UI를 사용하는 경우에 해당하며 오브젝트 스토리지 기능 사용 시 고객 문의에 이미지 파일을 첨부 파일로 올릴 수 있습니다.

    Ver 3.5.1 변경 사항 - 보안 이슈로 해당 버전 사용 금지

    게스트 로그인 처리 방식 변경 (Ver 3.5.1 )

    게임팟 SDK 3.5.1 버전부터 게스트 로그인 처리 방식이 변경되었습니다.

    • 기존 방식
      기존 게임팟 SDK 3.5.0 이하 버전에서는 게스트 로그인 진행 후 앱 삭제 또는 앱 내 데이터 삭제 후 게스트 로그인 시도시 신규로 게임팟 사용자 아이디를 제공했었습니다.

    • 변경 방식
      게임팟 SDK 3.5.1 버전부터 게스트 로그인 진행 후 앱 삭제 또는 앱 내 데이터 삭제 후 게스트 로그인 시도 시 이전에 사용한 게임팟 사용자 아이디 정보를 제공합니다. ANDROID_ID 및 UDID 정보를 기반으로 게임팟 사용자 아이디를 생성합니다. 관련 정보가 변경이 되는 경우 사용자 아이디 정보가 유지되지 않습니다.
      게스트 로그인 성공 후 회원 탈퇴 또는 타 소셜 로그인 방식으로 계정 연동이 성공된 이후 게스트 로그인 시도시 기존과 동일하게 신규 사용한 게임팟 사용자 아이디 정보를 제공합니다.
      기존에 게임팟 SDK 3.5.0 이하 버전에서 게스트 로그인 성공하여 이용중인 유저가 게임팟 SDK 3.5.1 탑재 버전으로 업데이트 된 상태에서는 기존 사용자 아이디 정보를 제공하나 앱 삭제 또는 앱 내 데이터 삭제 후 게스트 로그인 시도시 신규로 게임팟 사용자 아이디(신규 게스트 로그인 사용자 아이디)를 제공드립니다. 구 버전의 게스트 사용자 아이디는 앱 삭제 또는 앱 내 데이터 삭제 시 유지되지 않습니다.
      위 케이스 이후 앱 삭제 또는 앱 내 데이터 삭제 후 게스트 로그인 시도시 이전 사용자 아이디(마지막으로 받은 신규 게스트 로그인 사용자 아이디)를 제공드립니다.

    Migration

    Ver Unity 2.1.1 To Ver Unity 2.1.2 or New Version

    Unity 2019.02.XX 버전 또는 이전 버전

    • 기존과 동일한 방식으로 업데이트 진행

    Unity 2019.3.0~2019.3.6

    기존에 사용한 settingsTemplate.gradle / mainTemplate.gradle 파일을 유지합니다.
    해당 버전의 엔진 특성상 외부 라이브러리 탑재시 제약 사항이 발생하는 버전이므로 다른 버전의 유니티 플러그인 버전을 사용할 것을 권장합니다.

    Unity 2019.3.7 이상 버전 또는 이후 버전 (신규로 작업하는 경우)

    GAMEPOT SDK ver 3.5.1 버전 기준
    mainTemplate.gradle / launcherTemplate.gradle / baseProjectTemplate.gradle 파일 변경 시 참고 사항

    • [파일]GAMEPOT_UNITY[년도][중간][마이너버전 또는 이상 버전]
    • UNITY_2019_3_Over : UNITY 2019.3.XX 이상 버전일 때 사용
    • UNITY_2020_XX_Over_2022_1_XX : UNITY_2020 이상 UNITY_2022.1.XX 이하 버전일 때 사용
    • UNITY_2022_2_XX_Over : 2022.2.XX 이상 버전일 때 사용
    1. mainTemplate.gradle 파일 삭제 (기존 파일은 Unity 2018 기준 파일이기에 삭제 진행)
    2. 탑재하는 유니티 버전에 맞는 mainTemplate.gradle 파일을 찾아 파일명 변경.
      게임팟 환경변수는 launcherTemplate 파일에 정의하므로 mainTemplate 파일에 정의를 하지 않아도 됩니다.
      • case 1) 유니티 에디터 버전이 2019.4.40 버전일 때, mainTemplate_GAMEPOT_UNITY_2019_3_Over 파일을 mainTemplate.gradle 로 파일명 변경
      • case 2) 유니티 에디터 버전이 2021.3.13 버전일 때, mainTemplate_GAMEPOT_UNITY_2020_XX_Over_2022_1_XX.gradle 파일을 mainTemplate.gradle 로 파일명 변경
      • case 3)유니티 에디터 버전이 2022.3.00 버전일 때, mainTemplate_GAMEPOT_UNITY_2022_2_XX_Over 파일을 mainTemplate.gradle 로 파일명 변경
    3. 탑재하는 유니티 버전에 맞는 launcherTemplate.gradle 파일을 찾아 파일명 변경 후 오픈하여 게임팟 환경 변수를 정의합니다.
      • case 1) 유니티 에디터 버전이 2019.4.40 버전일 때, launcherTemplate_GAMEPOT_UNITY_2019_3_Over 파일을 launcherTemplate.gradle 로 파일명 변경
      • case 2) 유니티 에디터 버전이 2021.3.13 버전일 때, launcherTemplate_GAMEPOT_UNITY_2020_XX_Over_2022_1_XX.gradle 파일을 launcherTemplate.gradle 로 파일명 변경
      • case 3) 유니티 에디터 버전이 2022.3.00 버전일 때, launcherTemplate_GAMEPOT_UNITY_2022_2_XX_Over 파일을 launcherTemplate.gradle 로 파일명 변경
    4. 탑재하는 유니티 버전에 맞는 baseProjectTemplate.gradle 파일을 찾아 이름 변경
      • case 1) 유니티 에디터 버전이 2019.4.40 버전일 때, baseProjectTemplate_GAMEPOT_UNITY_2019_X_XX 파일을 baseProjectTemplate.gradle 로 파일명 변경
      • case 2) 유니티 에디터 버전이 2021.3.13 버전일 때, baseProjectTemplate_GAMEPOT_UNITY_2020_X_Over_2022_1_XX.gradle 파일을 baseProjectTemplate.gradle 로 파일명 변경
      • case 3)유니티 에디터 버전이 2022.3.00 버전일 때, baseProjectTemplate_GAMEPOT_UNITY_2022_2_XX_Over 파일을 baseProjectTemplate.gradle 로 파일명 변경

    GAMEPOT SDK ver 3.4.2 버전 기준

    • baseProjectTemplate.gradle을 추가합니다. 일반적으로 하기 파일을 rename 해서 사용하면 됩니다. baseProjectTemplate_GAMEPOT_UNITY_2019_3_Over.gradle => baseProjectTemplate.gradle
    • settingsTemplate.gradle 삭제합니다. ../Assets/Plugins/Android/settingsTemplate.gradle
    • mainTemplate.gradle 파일에 정의했던 gamepot_project_id 같은 환경 변수 정의를 launcherTemplate.gradle에 정의합니다. 일반적으로 하기 파일을 rename한 후 게임팟 환경 변수 값을 정의합니다. launcherTemplate_GAMEPOT_UNITY_2019_3_Over.gradle => launcherTemplate.gradle
    • mainTemplate_GAMEPOT_UNITY_2019_3_Over.gradle 파일을 참고하여 mainTemplate.gradle 설정합니다. gamepot_project_id 같은 환경 변수들은 launcherTemplate.gradle에 정의되었으므로 지우시면 됩니다.

    Unity 2022.2.X 이상

    Unity Editer Ver 2022.2.X 이상 버전에서 baseProjectTemplate.gradle / launcherTemplate.gradle / mainTemplate.gradle 파일 내 형태가 변경됨에 따라 패치 파일 기준으로 적용 후 빌드를 진행하면 됩니다.
    2022.2.X 용 gradle_files: 다운로드

    Unity 2023.1.X 이상

    Unity Editer Ver 2023.1.X baseProjectTemplate.gradle / launcherTemplate.gradle / mainTemplate.gradle 파일 내 형태가 변경됨에 따라 패치 파일 기준으로 적용 후 빌드를 진행하면 됩니다.

    Unity 2022.3.X 버전에서 multidex 관련 오류가 발생할 경우 다음을 수행해 주십시오.

    1. Unity Editer > Player Settings > Publishing Settings > Custom Gradle Propreties Template 항목 체크해 주십시오.
    2. ../Assets/Plugins/Android/gradleTemplate.properties 파일 내 android.useAndroidX / android.enableJetifier 설정 추가 후 저장
      org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M
      org.gradle.parallel=true
      unityStreamingAssets=**STREAMING_ASSETS**
      **ADDITIONAL_PROPERTIES**
      
      android.useAndroidX= true      // 추가
      android.enableJetifier=true    // 추가
      

    Unity 2020.X, 2021.X , 2022.1.X 버전을 사용하는 경우 추가 수정 사항(게임팟 SDK 3.4.X 이하 버전 대상)

    • Unity 202X.X 버전을 위한 패치: 다운로드
    • 폴더 및 파일 교체
      ../Assets/ExternalDependencyManager
      ../Assets/Firebase
      
    • 폴더 및 파일 추가
      ../Assets/Parse
      (선택) ../Assets/GooglePlayPlugins   //com.google.android.appbundle-1.7.0.unitypackage 
      
    • 폴더명 수정
      기존 :  ../Assets/Plugins/Android/Firebase
              수정 :  ../Assets/Plugins/Android/FirebaseApp.androidlib
              기존 :  ../Assets/Plugins/Android/GamePotResources
              수정 :  ../Assets/Plugins/Android/GamePotResources.androidlib
      
    • mainTemplate.gradle 수정 (폴더명 변경됨에 따른 수정)
      기존 : 
          dependencies {
              ...
              implementation project('GamePotResources')
              implementation project('Firebase')
          수정 :
          dependencies {
              ...
              implementation project('GamePotResources.androidlib')
              implementation project('FirebaseApp.androidlib')
              ...
          aaptOptions {
              noCompress = ['.ress', '.resource', '.obb'] + unityStreamingAssets.tokenize(', ') // add
              ...
          - launcherTemplate.gradle 수정     
          aaptOptions {
              noCompress = ['.unity3d', '.ress', '.resource', '.obb'**STREAMING_ASSETS**]+ unityStreamingAssets.tokenize(', ') //add
              ...
      

    유니티 에디터 상에서 ../Assets/Plugins/Android/nativeLibs 폴더내 모든 라이브러리가 Android 빌드시 포함되지 않도록 설정해 주십시오.
    image.png{height="" width="70%"}
    ```
    6. Please fix your Bundle ID 팝업이 뜨면 해당 패키지명을 확인 후 [Apply] 버튼을 클릭해 주십시오.
    google android resolver 라이브러리에서 google-services.json 또는 GoogleService-Info.plist 을 인지한 후 파싱할 것인지 확인하는 팝업으로 수락을 해야 구글 관련 동작이 정상적으로 수행됩니다.
    image.png

    • 유니티 에디터 2021.X 이상 버전에서는 안드로이드/IOS 관련 하여 Build Settings > Player Settings > Other Settings 메뉴에서 패키지 네임을 수동으로 기입 후 빌드하고자 하는 OS로 Switch Platform 후 빌드해 주십시오.
      위 작업을 선행하지 않았을 경우 google resolver 라이브러리 내부 버그로 인한 Please fix your Bundle ID 팝업 > Apply 버튼 클릭시 Ambiguous match found 오류가 발생하며 동작하지 않습니다.

      • 관련 내용: https://github.com/googlesamples/unity-jar-resolver/issues/523#issuecomment-1147499484
    • 유니티 에디터 202X.X 버전에서는 샘플 씬 파일 교체: 다운로드

    • 유니티 에디터 2019.X 이하 버전에서 안드로이드 버전 빌드 환경상에서 아래와 같은 오류가 발생한다면 패치 다운로드를 다운로드 후 아래와 같이 수정해 주십시오.

    System.TypeLoadException: Could not resolve type with token 01000074 (from typeref, class/assembly Google.EditorInitializer, Google.VersionHandlerImpl, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null)
    UnityEditor.EditorAssemblies:ProcessInitializeOnLoadAttributes (System.Type[]) (at /Users/bokken/buildslave/unity/build/Editor/Mono/EditorAssemblies.cs:138)
    
    - 폴더 및 파일 교체
    ../Assets/ExternalDependencyManager
    ../Assets/Firebase
    
    
    - 폴더명 수정 
    기존 :  ../Assets/Plugins/Android/Firebase
    수정 :  ../Assets/Plugins/Android/FirebaseApp.androidlib
    
    - mainTemplate.gradle 수정 (폴더명 변경됨에 따른 수정)
    기존 : 
    dependencies {
        ...
    	implementation project('Firebase')
    수정 :
    dependencies {
        ...
    	implementation project('FirebaseApp.androidlib')
        ...
    
    • (macOS Monterey 12.3 기준) Unity 빌드 시 다음과 같은 오류가 발생한다면 ./Assets/Firebase/Editor 내 파일을 교체해 주십시오.
      • https://github.com/techyworm10/firebase-unity-sdk-editor-python-fix

    [패치 다운로드] (https://xyuditqzezxs1008973.cdn.ntruss.com/patch/Fixed_Firebase.Editor.zip)에서 패치 파일을 다운로드 받아 압축을 푼 후 /Assets/Firebase/Editor 폴더에 넣어 파일를 넣어 주세요 (Firebase.Editor.dll 파일를 교체하시면 됩니다.)

    오류 문구

    Unable to find command line tool python required for Firebase Android resource generation.
    python is required to generate the Firebase Android resource file google-services.xml from Assets/Plugins/Android/google-services.json. Without Firebase Android resources, your app will fail to initialize.
    python was distributed with each Firebase Unity SDK plugin, was it deleted?
    System.ComponentModel.Win32Exception (0x80004005): ApplicationName='python',
    

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

    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.