跳到主要内容

常见问题

Unity

Combo SDK 的 Setup 时机

自初始化,通过使用 Unity 的生命周期 RuntimeInitializeLoadType.AfterSceneLoad

Combo SDK 对 Unity Android Templates 的要求

如果项目有修改 Android Manifest 文件 <application> 节点的内容,需要在 LauncherManifest.xml 模版文件里修改。

LauncherManifest.xml

img

提示

AndroidManifest.xml 只保留 <application> 节点就可以,不需要 填充属性

Android

游戏自定义 Android 的 Application

ComboSDKApplication.java 通过 CLI 生成。

如果游戏需要自定义 Application,则需要继承 ComboSDKApplication

在项目导出的后处理过程中 Combo SDK 进行了哪些操作

为实现 Combo SDK 相关依赖和配置的引入,对生成的 Android 工程进行了以下处理:

相关文件操作描述
相关模板:Main Manifest
目标文件:/launcher/src/main/AndroidManifest.xml
· 设置 activity 为 com.seayoo.sdk.ComboSDKMainActivity(当用户通过模板指定 activity 则跳过)
· 设置 launchModesingleTop
· 当该文件中存在对 application 标签的 android::name 定义时,将自动移除该定义
· 当该文件中存在对 application 标签的 android::icon 定义时,将自动移除该定义
相关模板:Launcher Manifest
目标文件:
/unityLibrary/src/main/AndroidManifest.xml
· 设置 application 标签的 android::name"com.seayoo.sdk.api.ComboSDKApplication"
· 设置 application 标签的 android:icon@mipmap/combosdk_ic_launcher
· 设置 application 标签的 android:allowBackupfalse
· 追加 application 标签的 tools:replace 内容:android:allowBackup;android:icon
相关模板:Launcher Gradle Template
目标文件:/launcher/build.gradle
· 引入 ComboSDK.gradle
· 引入 ComboSDKSigning.gradle
· 设置 buildToolsVersion30.0.2,参考 SDK Build Tools 版本说明
相关模板:Main Gradle Template
目标文件:/unityLibrary/build.gradle
· 引入 ComboSDKDeps.gradle
· 设置 buildToolsVersion30.0.2
相关模板:Base Gradle Template
目标文件:/build.gradle
· 引入 ComboSDKRepo.gradle
· 设置 com.android.tools.build:gradle4.2.2,参考 Android Gradle 插件版本说明
相关模板:Gradle Properties Template
目标文件:/gradle.properties
· 设置 android.useAndroidX=true
· 设置 android.enableJetifier=true

导出 Android 项目时,Unity 提示错误:Defining xxx in UnityLibraryManifest is not allowed

根据 Unity Android App Manifest 规范,请确保在你自定义的 Unity Launcher Manifest 模板 中仅指定 Activity 相关的属性。另外,在你的自定义 Unity Library Manifest 模板 中,只应该设置 Application 相关的属性。

执行 Combo SDK Android Post Build 过程时,会检查 Library Manifest 中是否设置了 Application 的 android::nameandroid::icon 属性。如果这些属性存在,将会触发此错误消息,并自动移除这些属性设置。

在自定义 Launcher Manifest 模板中,能否设置 applicationandroid::allowBackup 属性为 true

受到 Combo SDK 依赖的第三方库限制,应删除 android::allowBackup 定义,或将其设置为 false,否则将会在编译项目时发生 Manifest Merge 冲突。

unityLibrary AndroidManifest.xml 中,为什么启动项变成了 com.seayoo.sdk.api.EulaActivity

根据Android各大应用市场隐私合规指引要求,在调用系统各类权限、设备信息之前,必须进行想用户披露协议内容并由用户同意才能继续,所以将EulaActivity设置为启动项,在Unity启动之前处理隐私指引相关流程

执行 combo android build --distros ... 报错 Execution failed for task ':launcher:checkReleaseAarMetadata'. 怎么办

Combo SDK 使用 compileSdkVersion >= 33,Android SDK 下载地址, 下载到本地后 , 在Unity Preferences -> External Tools -> Android SDK Tools 设置即可。

弹出 Combo SDK 界面时游戏画面会暂停

Android 进程触发 onPause 生命周期事件时(例如弹出登录界面),默认 Unity 会停止渲染。属于正常现象

提示

游戏登录场景中使用了视频组件 Video Player ,请在 Wizard 面板中勾选 Enable Keep Rendering on Pause 选项。

img

构建 APK 时,报 Duplicate class xxx found in modules xxx(guava-xx-android.jar) and jetified-guava-31.1-android(guava-31.1-android.jar) 异常

提示

检查游戏中是否使用 AVPro Video 插件或其他含有 guava 库的插件。

游戏中如果使用含有 guava 库的插件,会与 Combo SDK 中的 guava 库产生重复引用。

游戏侧将插件中的 guava 相关的 jararr 包删除即可。

iOS

Combo 对导出的 Xcode 工程作了哪些自动化处理。

通过 Unity 构建后处理机制 - PostprocessBuild 对导出的 Xcode 工程作了如下配置(游戏可根据需要在导出的 Xcode 工程中对以下配置作二次修改):

  • Runpath Search Paths 配置

img

  • 嵌入 Swift 标准库

    此配置是为防止当 iOS Deployment Target < 12.2 时,启动时崩溃。

img

  • 关闭 BitCode

img

  • 链接配置

img

SDK 崩溃原因排查。

  • 请检查 Unity-iPhone Target 中是否将所引用的动态库 Embed & Sign

  • 若项目集成了ComboSDKTopOnComboSDKTrackingIO,请检查 Info.plist 中是否配置 NSUserTrackingUsageDescription 追踪权限请求键。

  • 若 iOS Deployment Target < 12.2 ,请检查是否嵌入 Swift 标准库

img

IOS PostBuild 做了哪些处理。

  • 装配 ComboSDK.json 文件

    img

  • 集成 XCFrameworks 组件
    在 Target Unity-iPhoneUnityFramework 中集成所需组件。
    在 Target Unity-iPhone 中,嵌入所需组件对应的动态库(把选项 Do Not Embed 改为 Embed & Sign).

    img img

编译报错:framework 'KSAdSDK' not found

提示

使用 Wizard 面板中 iOS PostBuild 功能,可避免手动配置

KSAdSDK.framework 所在目录配置至Unity-iPhoneUnityFramework Target Framework Search Paths中,例如$(PROJECT_DIR)/ComboSDKFrameworks

img img

Windows

项目报错:Packages\com.seayoo.sdk\Combo\Plugins\Windows\ComboSDK\Runtime\Combo\UI\View\WebView.cs(6,7): error xxxx

Combo SDK for Windows 依赖 WebView 插件,请联系世游技术团队获取 WebView 插件,并导入至工程中。