> For the complete documentation index, see [llms.txt](https://navergame.gitbook.io/naver-game/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navergame.gitbook.io/naver-game/naver-game-sdk-faq-1.md).

# Naver Game SDK 개발 FAQ

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

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

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

![](/files/-MX0c0K_yUzduQlaNb-P)

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

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

![](/files/YIb0dU1OWP5l8cD2rZvn)

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

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

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

![](/files/-MVUUJxeFsYZrzfXYLEn)

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

![](/files/-MVUVe_OTybhfFIZX2qb)

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

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

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

안드로이드 프로젝트를 실재 마켓에 업로드하기 위한 릴리즈 빌드를 만들 때 Proguard를 설정하는 경우가 많이 있습니다. 이때 아무런 설정을 하지 않으면 SDK의 라이브러리가 정상동작 하지 않으므로 [가이드](https://navergame.gitbook.io/naver-game/integration-guide/android#4.-proguard)를 참고하여 프로가드에서 제외할 옵션을 추가해 주시기 바랍니다.

## \[iOS] SDK에서 네이버 로그인이 되지 않아요.&#x20;

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

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

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

![](/files/-MVUX6BqTnRRqqFLhSiQ)

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

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

많은 라이브러리를 추가 하다 보면 종종 발생하는 문제로,  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-game><https://www.reddit.com/r/Unity3D/comments/3zv91o/android_build_dex_issues_please_help_xpost_unity2d/><br>

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

![](/files/-MVUY0Vv8J01ShMfVmks)

{% file src="/files/-MVUYn1tf3fEwhRDg7iq" %}
mainTemplate.gradle
{% endfile %}

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

Build System - Gradle(New) 선택&#x20;

![](/files/-MVUZ99Spwp3YyZN2oh-)

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

![](/files/-MVUZNvGcYZbYpKjlGn9)

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

```markup
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'
    }

```

![](/files/-MVUZcp5u0H6VWav5Diz)

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

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

* Plugins/Android 폴더 내의 [SDK에서 사용하는 library](https://navergame.gitbook.io/naver-game/integration-guide/android#2-gradle)와 동일한 .jar, .aar 파일들이 있을경우
* Plugins/Android 폴더 내의 mainTemplate.gradle 내 dependencies 블럭안에 [SDK에서 사용하는 library](https://navergame.gitbook.io/naver-game/integration-guide/android#2-gradle)와 동일한 library가 implementation  or compile 선언이 되어있을경우

\
이 경우에는 SDK에서 사용하는 library를 미포함시켜서 만든 [Android 플랫폼 적용가이드](https://navergame.gitbook.io/naver-game/integration-guide/android)를 참고하여 해결할 수 있습니다. 아래와 같은 스탭으로 진행하여 주시기를 바랍니다.

1. Unity Package의 포함되었던 Plugins/Android내의 NaverGame SDK(navergame-sdk-x.x.x.aar)를 삭제한다.
2. [Android 플랫폼 적용가이드](https://navergame.gitbook.io/naver-game/integration-guide/android)에 포함된 gradle용 라이브러리를 [다운로드](https://github.com/naver/navergame-sdk-android/releases) 한다.
3. 다운로드받은 라이브러리(navergame-sdk-gradle-x.x.x.aar)를 유니티프로젝트 내의 Plugins/Android로 이동한다.&#x20;
   1. Plugins/Android/mainTemlate.gradle의 dependencies 블럭안에 [SDK에서 사용하는 library](https://navergame.gitbook.io/naver-game/integration-guide/android#2-gradle)를 선언해준뒤 중복된 라이브러리의 버전을 통일시킨다. (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
      }
      ```

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

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

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

![](/files/RneBllcwUxBBsi1DF4Le)

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

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

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

![](/files/-MVU_2Ezm5q9R8kIbbNs)

![](/files/-MVU_ucwc67Kcs3PhaF0)

## \[Android] minSDK 버전이 낮아 컴파일이 되지 않습니다.&#x20;

현재 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>) 로 문의해주시면 답변 드리겠습니다. &#x20;

1. 게임사명 :
2. 라운지주소 :
3. 적용 중인 SDK의 버전(1.1.0) :
4. 게임 엔진(ex. Unity, Cocos2dx, Unreal) :
5. 엔진 버전 :
6. 기타정보 :

* iOS URL Scheme :
* Android Package Name :
* client id :
* secret id :

&#x20;7\. 문의 사항 (Log 및 캡쳐화면첨부):

## &#x20;   &#x20;
