跳到主要内容

常见问题

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 则跳过)
· 设置 launchMode 为 singleTop
· 当该文件中存在对 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:allowBackup 为 false
· 追加 application 标签的 tools:replace 内容:android:allowBackup;android:icon
相关模板:Launcher Gradle Template
目标文件:/launcher/build.gradle
· 引入 ComboSDK.gradle
· 引入 ComboSDKSigning.gradle
· 设置 buildToolsVersion 为 30.0.2,参考 SDK Build Tools 版本说明
相关模板:Main Gradle Template
目标文件:/unityLibrary/build.gradle
· 引入 ComboSDKDeps.gradle
· 设置 buildToolsVersion 为 30.0.2
相关模板:Base Gradle Template
目标文件:/build.gradle
· 引入 ComboSDKRepo.gradle
· 设置 com.android.tools.build:gradle 为 4.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::name 和 android::icon 属性。如果这些属性存在,将会触发此错误消息,并自动移除这些属性设置。

在自定义 Launcher Manifest 模板中,能否设置 application 的 android::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 相关的 jar 或 arr 包删除即可。

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。

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

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

img

IOS PostBuild 做了哪些处理。​

编译报错:framework 'KSAdSDK' not found​

提示

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

将KSAdSDK.framework 所在目录配置至Unity-iPhone 与 UnityFramework Target Framework Search Paths中,例如$(PROJECT_DIR)/ComboSDK。

img img

编译报错:Sentry/PrivateSentrySDKOnly.h not found​

提示

使用 Wizard 面板中 iOS PostBuild 功能进行装配时,请确保在 Combo SDK Dir 目录中添加了 ComboSDKSentry 组件。

请检查 Unity-iPhone 和 UnityFramework Target 中是否集成 ComboSDKSentry 组件,且在 Target Unity-iPhone 中嵌入 Sentry.xcframework 与 ComboSDKSentry.xcframework 库。

img

使用 Combo SDK iOS PostBuild 装配 SDK 产物失败(Unity-iPhone 和 UnityFramework Target 中未能找到 Combo SDK for iOS 相关库)。​

Combo SDK 1.15.0 or later 版本中优化了 PostBuild 装配方式,详情请参考。

iOS 工程语言设置。​

可根据发行需求在 iOS 工程中完成语言设置,国内发行请选择 简体中文。

参考链接:

iOS 工程 ProductName 设置。​

建议将 ProductName 设置为项目名称,以确保编译出的二进制文件和 App 名符合预期。

参考链接:https://developer.apple.com/documentation/xcode/creating-an-xcode-project-for-an-app

使用 CLI Xcode 自动配置功能时等待时间过长​

当 CLI 执行到 Installing Ruby dependencies... 或 Fetching source index from https://rubygems.orgs... 阶段长时间卡住时,通常是本机 Bundler 版本不兼容导致。解决方案如下:

  1. 查看当前 Bundler 版本:
gem list bundler
  1. 若存在 1.x.x 版本的 Bundler,请先卸载:
sudo gem uninstall bundler -v 1.x.x
  1. 安装指定的 Bundler 版本:
sudo gem install bundler -v 2.4.19
  1. 安装完成后,重新执行 CLI 的 Xcode 自动配置流程。

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 插件,并导入至工程中。

WebGL​

微信小游戏在 iOS 平台进行虚拟支付失败,提示“购买失败(701001)”​

该错误通常表示当前环境不满足支付要求,请检查以下项:

  1. 操作系统要求:使用 iPhone 或者 iPad,iOS 15及以上版本
  2. 基础库版本要求:3.10.3 及以上
  3. 客户端版本要求:8.0.68 及以上
  4. 苹果支付不支持使用沙箱环境,仅支持使用现网环境(该项联系世游技术团队检查)

微信小游戏虚拟支付失败,提示“购买失败(2860)”​

该错误通常表示支付道具未完成发布。

请检查:

  • 支付道具是否已在后台完成配置
  • 道具是否已成功发布

注意:未发布的道具无法在现网环境完成支付。