# Naver游戏SDK开发FAQ

## \[通用] 已输入正确的Client ID，但无法登录SDK。只有特定账号会发生这种问题。

&#x20;出&#x73B0;***“Scope Status Invalid : Authentication failed（认证失败）”***&#x63D0;示语的情况

请“删除”在SDK管理页登记的Client ID后重新登记。（参考下图）然后确认是否出现同一问题。

![](https://1063451423-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MU6QuWI7G-kd5t_nYbd%2F-MX0bfcH0n8qrxethTFk%2F-MX0c0K_yUzduQlaNb-P%2Fmail.navercorp.png?alt=media\&token=603b81e8-ba96-4a4f-a7bb-8c43e40ef5d3)

## \[通用] 尝试登录时出现如下页面，无法登录。&#x20;

在开发过程中，出现过如下无法登录的咨询。

![](https://1063451423-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MU6QuWI7G-kd5t_nYbd%2F-MVUPnCIJRRFKIGidt0D%2F-MVUUJxeFsYZrzfXYLEn%2F02-1.png?alt=media\&token=1bb54e86-18d1-4159-bc51-b447635076d0)

\
相应问题主要是因为&#x5728;**“NAVER开发者中心”输入的Android安装包名称（或者iOS URL Scheme）与实际游戏的Android安装包名称（或者iOS URL Scheme）不一致**。

![](https://1063451423-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MU6QuWI7G-kd5t_nYbd%2F-MVUPnCIJRRFKIGidt0D%2F-MVUVe_OTybhfFIZX2qb%2F2-1.png?alt=media\&token=0c46f01e-0a0a-4446-9291-d014385a9960)

请确保上图的方框内的值与游戏应用程序值一致。

#### \[参考] iOS项目有多个URL Scheme时，需要调用如下API：

```csharp
[[NCSDKLoginManager getSharedInstance] setNaverLoginURLScheme:@"gLinkSample"];
```

## \[通用]\[Android] 应用Proguard设置后，无法运行SDK。

为了实际在应用市场上传安卓项目而创建发布版本时，常需要设置Proguard。这时如果不进行设置，就无法正常启动SDK的库，请参考[指南](https://app.gitbook.com/@navergame/s/naver-game/integration-guide/android#3-proguard)在ProGuard添加要除外的选项。

## \[iOS] 无法在SDK登录NAVER。

#### **1.** iOS 9.无法正常调用canOpenUrl的问题。

NaverGameSDK登录使用NAVER账号登录。安装有NAVER应用程序时，使用“NAVER应用程序快捷登录”，iOS 9及以上版本应登记可调用的应用程序。应在应用程序的plist添加如下项目：

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

具体事项请确认NAVER账号登录开发者指南。\
<https://nid.naver.com/devcenter/docs.nhn?menu=IOS>

#### &#x20;**2.** 未登记NAVER账号登录URL Scheme

使用NAVER账号登录时，若未在Xcode项目登记URL Scheme，则无法正常登录。请在Info -> URL Types项目添加URL Schemes。

![](https://1063451423-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MU6QuWI7G-kd5t_nYbd%2F-MVUPnCIJRRFKIGidt0D%2F-MVUX6BqTnRRqqFLhSiQ%2F04-1.png?alt=media\&token=a97c2845-0eb9-40ca-9356-f84a063580ea)

同时检查如下部分，如果完成上述内容后仍无法登录，那么请在初始化时用\[\[NCSDKLoginManager getSharedInstance] setNaverLoginURLScheme:@"设置的scheme值"];调用界面，或是把NAVER开发者中心记载的iOS URL Scheme调到目录的最上方进行确认。​

## \[Unity]\[Android] 在Unity Android发生Mutidex问题。

添加多个库时经常会发生此类问题，请使用multiDex设置后创建。具体内容请参考下方链接。

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

#### &#x20;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/>\\

如果参考上述内容后仍未能解决问题，请尝试如下方法：不同版本的Unity Android可能有所不同，但有通过下列链接事例成功解决问题的案例，敬请参考。<https://appmediation.com/unity-enable-multidex/> 文件源自示例，将该文件置于下方项目路径可对Gradle进行本地设置。

![](https://1063451423-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MU6QuWI7G-kd5t_nYbd%2F-MVUPnCIJRRFKIGidt0D%2F-MVUY0Vv8J01ShMfVmks%2F05-1.png?alt=media\&token=333a54e3-2993-4da4-9917-bf54b16d1489)

{% file src="<https://1063451423-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MU6QuWI7G-kd5t_nYbd%2F-MVUPnCIJRRFKIGidt0D%2F-MVUYn1tf3fEwhRDg7iq%2FmainTemplate.zip?alt=media&token=924c31db-5507-431d-af7e-9d1b577ec0d0>" %}
mainTemplate.gradle
{% endfile %}

请按照附件设置MultiDex等。对于Unity项目，请将附件置于Assets/Plugins/Android/路径后，确认创建。\\

Build System - Gradle(New) 选择&#x20;

![](https://1063451423-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MU6QuWI7G-kd5t_nYbd%2F-MVUPnCIJRRFKIGidt0D%2F-MVUZ99Spwp3YyZN2oh-%2F05-2.png?alt=media\&token=e5a337f9-b507-48a6-85e9-185e0c129660)

\
将附件放入下方路径后，Gradle可本地使用。请复制附件后使用。

![](https://1063451423-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MU6QuWI7G-kd5t_nYbd%2F-MVUPnCIJRRFKIGidt0D%2F-MVUZNvGcYZbYpKjlGn9%2F05-3.png?alt=media\&token=772d8394-e02d-4e87-ab49-1b0399d6b2e3)

附件采用以下结构，multiDex及创建相关内容如下所示：

请将如下部分正确置于当前项目结构后进行确认。

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

```

![](https://1063451423-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MU6QuWI7G-kd5t_nYbd%2F-MVUPnCIJRRFKIGidt0D%2F-MVUZcp5u0H6VWav5Diz%2F05-4.png?alt=media\&token=ce0ed507-8da8-47d2-b1a5-ee2b16ae57df)

## \[Unity]\[Android] 出现class duplication exception。

Unity Package内包含的NaverGame Android SDK为了项目内部便捷，aar文件包含SDK使用的Android library。但是，如果贵公司在开发项目过程中追加使用的library与SDK使用中的library相同，那么会导致**对相同的库参考两次**，从而发生错误。

* 有与Plugins/Android文件夹内的[SDK使用的library](https://navergame.gitbook.io/naver-game/integration-guide/android#3-dependency)相同的.jar、.aar文件时
* Plugins/Android文件夹内的mainTemplate.gradle内dependencies块内与[SDK使用的library](https://navergame.gitbook.io/naver-game/integration-guide/android#3-dependency)相同的library成为implementation or compile声明时

\
这种情况下，可参考排除SDK使用的library后创建的[Android平台应用指南](https://navergame.gitbook.io/naver-game/integration-guide/android#3-dependency)，解决问题。请按如下步骤进行：

1. 删除Unity Package包含的Plugins/Android内的NaverGame SDK（navergame-sdk-x.x.x.aar）。
2. 下载Android平台应用指南包含的gradle用库。
3. 将下载的库（navergame-sdk-gradle-x.x.x.aar）移动至Unity项目内的Plugins/Android。
4. 在Plugins/Android/mainTemlate.gradle的dependencies块内声明SDK使用的library后，统一重复库的版本。
5. 创建Unity项目。

\
更多问题请通过Naver游戏电子邮箱进行咨询。

## \[通用] 输入的账号无法登录。

出现“游戏正处于开放状态”提示语且如下所示无法登录时，**请在“NAVER开发者中心”确认有关应用程序的开发状态值**。NAVER账号登录检验批准后，只有在“**应用服务**”状态下方可正常应用。&#x20;

![](https://1063451423-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MU6QuWI7G-kd5t_nYbd%2F-MVUPnCIJRRFKIGidt0D%2F-MVU_2Ezm5q9R8kIbbNs%2F06-2.png?alt=media\&token=7b17cc7c-a694-4d74-a3d3-7dac5c787069)

![](https://1063451423-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MU6QuWI7G-kd5t_nYbd%2F-MVUPnCIJRRFKIGidt0D%2F-MVU_ucwc67Kcs3PhaF0%2F07.png?alt=media\&token=7f9abce5-24aa-40c4-9395-c354258110cc)

## \[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选项。
