Naver Game SDK 개발 FAQ

네이버 게임 SDK 개발 관련 자주 묻는 질문입니다.

[공통] Client ID를 제대로 입력했는데, SDK에서 로그인이 되지 않습니다. 이런 현상이 특정 계정만 발생합니다.

" Scope Status Invalid : Authentication failed (인증에 실패했습니다) " 또는 " Scopes are Empty : Authentication failed (인증에 실패했습니다) " 문구가 뜨는 경우

위와 같은 Scope(인증) 문제는 SDK 관리 페이지에 등록해둔 Client ID 를 '삭제' 후 다시 등록해주시면 대부분 해결됩니다. (아래 이미지 참고)

Client ID 입력란 하단의 '호출테스트' 를 통해 인증 문제 여부를 미리 점검하실 수 있습니다.

호출 실패가 뜬다면 첫번째 가이드를 따라 Client ID를 삭제후 재등록해주세요.

그 다음에도 같은 문제가 발생하는지 확인해주세요.

[공통] 로그인 시도 시에 아래와 같은 화면이 나오면서 로그인 되지 않아요.

개발중에 아래와 같이 로그인이 안되는 문의를 주시는 경우가 있습니다.

해당 문제는 '네이버 개발자 센터' 에 입력한 Android 패키지 이름(또는 iOS URL Scheme)이 실제 게임의 Android 패키지 이름(또는 iOS URL Scheme)과 일치하지 않을 경우 발생합니다.

위 이미지의 박스친 영역 내 값을 게임 애플리케이션 값과 동일하게 적용해주세요.

[참고] iOS 프로젝트의 경우 authSettingDescription 프로퍼티를 로그를 통해 확인하고 조치할 수 있습니다. authSetting 프로퍼티는 디버그 용도의 문자열로 Client ID, Client Secret, 앱 이름, 앱 스킴이 포함되어 있습니다. 각 값이 두 번씩 출력되는데, 괄호 없이 출력되는 내용은 실제 인증에 사용된 값이며 괄호로 싸인 내용은 SDK에서 캐시하고 있는 값입니다. 실제 인증에 사용된 값, SDK에 캐시된 값, 그리고 네이버 아이디로 로그인 개발자 센터에 등록된 값이 모두 일치해야 합니다. 각 값을 재설정하는 방법은 각 플랫폼 별 가이드를 참고하시기 바랍니다.

[공통][Android] Proguard 설정을 적용 했더니 SDK 가 실행되지 않아요

안드로이드 프로젝트를 실재 마켓에 업로드하기 위한 릴리즈 빌드를 만들 때 Proguard를 설정하는 경우가 많이 있습니다. 이때 아무런 설정을 하지 않으면 SDK의 라이브러리가 정상동작 하지 않으므로 가이드를 참고하여 프로가드에서 제외할 옵션을 추가해 주시기 바랍니다.

[iOS] SDK에서 네이버 로그인이 되지 않아요.

1. iOS 9. canOpenUrl 이 정상적으로 호출되지 않는 이슈. NaverGameSDK 로그인은 네아로(네이버 아이디로 로그인)를 사용합니다. 네이버 앱이 설치되어 있을 경우 '네이버 앱의 간편 로그인'을 사용하게 되는데, iOS 9부터는 호출할 수 있는 앱을 등록해 줘야 합니다. 랩의 plist 에서 다음과 같은 항목을 추가해야합니다.

<key>LSApplicationQueriesSchemes</key>
<array>  
    <string>naversearchapp</string>  
    <string>naversearchthirdlogin</string>
</array>

2. 네아로 URL Scheme 미등록 네아로 등록시 설정하였던 URL Scheme 을 Xcode 프로젝트에 등록하지 않았을 경우, 로그인이 제대로 작동하지 않습니다. Info -> URL Types 항목에서 URL Schemes 를 추가합니다.

아래 부분도 체크하시고 위 항목까지 하였는데 로그인이 되지 않는다면 초기화시 ​[[NCSDKLoginManager getSharedInstance] setNaverLoginURLScheme:@"설정된 스킴값"];​이 인터페이스를 호출하거나, 네이버 개발자센터에 기재한 iOS URL Scheme 을 목록의 최상단으로 올려서 확인 부탁 드립니다. ​

[Unity][Android] 유니티 안드로이드에서 Mutidex 문제가 발생합니다.

많은 라이브러리를 추가 하다 보면 종종 발생하는 문제로, multiDex로 설정을 하여 빌드를 시도해주세요. 자세한 내용은 아래 링크를 참고해주시기 바랍니다.

https://developer.android.com/studio/build/multidex.html

unity multi dex 참고 사이트

http://developers.kongregate.com/blog/dealing-with-the-64k-method-limit-in-your-unity3d-gamehttps://www.reddit.com/r/Unity3D/comments/3zv91o/android_build_dex_issues_please_help_xpost_unity2d/

만약 위 사항을 참고해도 해결이 되지 않는다면 아래 방법을 시도해주세요. 사용하는 유니티 버전에 따라 다를 수 있지만 아래 링크 사례를 통해 해결된 케이스가 있어 안내드립니다. https://appmediation.com/unity-enable-multidex/ 파일은 샘플에서 뽑은 것인데 이 파일은 밑의 프로젝트 경로에 넣으면 Gradle 을 로컬 설정할 수 있습니다.

첨부 파일과 같이 MultiDex 등을 설정해주세요. 유니티 프로젝트에 Assets/Plugins/Android/ 경로에 첨부 파일을 넣으신 후 빌드를 확인해주세요.

Build System - Gradle(New) 선택

아래 경로에 첨부 파일을 넣으면 Gradle 이 로컬의 것 사용하게 되어 있습니다. 첨부의 파일을 복사하여 확인 해주세요.

첨부 파일은 아래와 같은 구조이며, 멀티 덱스 및 빌드 관련된 내용은 아래와 같습니다. 아래 부분을 현재 프로젝트 구조에 맞게 넣으신 후 확인해주세요.

compile 'com.android.support:multidex:1.0.1'

multiDexEnabled true

packagingOptions {
        exclude 'AndroidManifest.xml'
        exclude 'META-INF/maven/com.nhncorp.nelo2.android/nelo2-android-sdk/pom.xml'
        exclude 'META-INF/maven/com.nhncorp.nelo2.android/nelo2-android-sdk/pom.properties'
    }

[Unity][Android] class duplication exception 이 일어납니다.

Unity Package내의 포함되어있는 NaverGame Android SDK는 프로젝트 내의 편의를 위하여 SDK에서 사용하는 Android library들을 aar파일안에 포함하고 있습니다. 하지만 귀사에서 프로젝트개발을 위해 추가적으로 사용하는 library들이 SDK에서 사용중인 library와 같다면 동일한 라이브러리를 두번 참조하게 되어 에러가 발생할 수 있습니다.

이 경우에는 SDK에서 사용하는 library를 미포함시켜서 만든 Android 플랫폼 적용가이드를 참고하여 해결할 수 있습니다. 아래와 같은 스탭으로 진행하여 주시기를 바랍니다.

  1. Unity Package의 포함되었던 Plugins/Android내의 NaverGame SDK(navergame-sdk-x.x.x.aar)를 삭제한다.

  2. Android 플랫폼 적용가이드에 포함된 gradle용 라이브러리를 다운로드 한다.

  3. 다운로드받은 라이브러리(navergame-sdk-gradle-x.x.x.aar)를 유니티프로젝트 내의 Plugins/Android로 이동한다.

    1. Plugins/Android/mainTemlate.gradle의 dependencies 블럭안에 SDK에서 사용하는 library를 선언해준뒤 중복된 라이브러리의 버전을 통일시킨다. (Unity의 Assets폴더 안에 navergame-sdk-gradle-x.x.x.aar 파일을 추가한경우 자동으로 fileTree(dir: 'libs', include: ['*.jar'])구문으로 인해 포함됩니다. )

    2. mainTemplate.gradle

      apply plugin: 'com.android.library'
      **APPLY_PLUGINS**
      
      dependencies {
          implementation fileTree(dir: 'libs', include: ['*.jar'])
      //Start NaverGameSDK Library
          implementation "org.jetbrains.kotlin:kotlin-stdlib:1.3.72"      // Kotlin
          implementation "androidx.viewpager2:viewpager2:1.0.0"           // Viewpager2
          implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"   //swiperefreshlayout
          implementation "com.github.bumptech.glide:glide:3.7.0"          // Glide
          implementation "com.squareup.retrofit2:retrofit:2.7.2"          // Retrofit2
          implementation "com.squareup.retrofit2:converter-gson:2.7.2"
      //End NaverGameSDK Library
      
      **DEPS**}
    3. 빌드중 아래와 같은 빌드에러가 발생한다면 aar선언하는 코드를 제거해줍니다. (유니티프로젝트에서 버전에 따라 aar파일을 자동으로 implementation 시켜 줄 수 있습니다..)

      Execution failed for task ':launcher:checkReleaseDuplicateClasses'.

      1 exception was raised by workers: java.lang.RuntimeException: java.lang.RuntimeException: Duplicate class a.a.a.a.a found in modules classes.jar (:navergame-sdk-gradle-1.1.2:) and classes.jar (navergame-sdk-gradle-1.1.2.aar)

      dependencies {
          implementation "org.jetbrains.kotlin:kotlin-stdlib:1.3.72"            // Kotlin
          implementation "androidx.viewpager2:viewpager2:1.0.0"
          implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" 
          implementation "com.github.bumptech.glide:glide:3.7.0"                // Glide
          implementation "com.squareup.retrofit2:retrofit:2.7.2"                // Retrofit, Gson
          implementation "com.squareup.retrofit2:converter-gson:2.7.2"          // Retrofit, Gson
      }

더 문의 사항이 있으시면 네이버 게임 메일로 문의 부탁드립니다

[Unity][iOS] SDK 를 적용한 iOS 앱 실행 시, Unity Framework 진입에 실패 합니다.

Unity 2019/2020 에서 Unity Framework 연결 시 발생하는 버그 입니다. 이 버그는 Unity Framework 를 지웠다가 다시 넣는 방식으로 해결 가능 합니다.

Xcode > Unity-iPhone Targets > General > Frameworks, Libraries, and Embedded Content 항목에 추가되어 있는 UnityFramework.framework 를 지웠다가 다시 추가해줍니다.

[공통] 입력하신 아이디로 로그인할 수 없습니다.

게임이 개발 중인 상태라고 뜨며, 아래처럼 로그인을 할 수 없을 경우엔, '네이버 개발자 센터' 에서 해당 애플리케이션의 개발 상태 값을 확인해주세요. 네아로 검수 승인 후 '서비스 적용' 인 상태여야 정상 적용하실 수 있습니다.

[Android] minSDK 버전이 낮아 컴파일이 되지 않습니다.

현재 SDK를 적용하기 위하여, 19이전을 지원하는 게임은 아래 절차로 진행해주세요. 1) aar 파일의 확장자를 zip으로 변경한 후 압축을 풀어 AndroidManifest.xml 파일의 minSdkVersion을 수정합니다.

2) 다시 zip으로 압축한 후 파일확장자를 aar로 변경합니다.

3) 19이상인 버전만 SDK에 진입할 수 있도록 분기처리를 합니다.

[iOS] AFNetworking 관련 크래쉬가 발생합니다.

AFNetworking 관련 라이브러리에서 발생하는 EXC_BAD_ACCESS 저희 서비스는 ARC를 사용하여 개발되었습니다. ARC를 사용하지 않는 프로젝트에서는라이브러리 모든 파일에 -fobjc-arc 옵션을 추가해 주셔야 합니다.

이 외에 발생하는 문제는...

아래의 필수 내용을 포함하여 네이버 게임 SDK 전용 문의채널 (dl_navergame_sdk@navercorp.com) 로 문의해주시면 답변 드리겠습니다.

  1. 게임사명 :

  2. 라운지주소 :

  3. 적용 중인 SDK의 버전(1.1.0) :

  4. 게임 엔진(ex. Unity, Cocos2dx, Unreal) :

  5. 엔진 버전 :

  6. 기타정보 :

  • iOS URL Scheme :

  • Android Package Name :

  • client id :

  • secret id :

7. 문의 사항 (Log 및 캡쳐화면첨부):

Last updated