主题
Skip to content 
0、Unity 发布谷歌市场
WARNING
由于谷歌要求升级 target 版本到 34 以上,而 unity 的 2021 和 2022 在 3.39 版本之前的版本不支持 target 版本,所以如果 cp 方准备发布谷歌市场,一定要将引擎升级至 3.39 版本或以上。

1、发布区域含有欧盟地区时,必须接入 GDPR
WARNING
判断用户是否为欧盟地区用户
如果是欧盟地区,需要在设置页面新增 GDPR 按钮,并在点击后弹出 GDPR 弹窗
SDK 内部还实现了第一次启动时弹出 GDPR 弹窗,此逻辑为 SDK 内部逻辑,无需接入
是否为欧盟用户,控制是否显示 GDPR 按钮
- false 非欧盟地区,不弹 GDPR,设置界面没有 GDPR 按钮
- true 欧盟地区,弹 GDPR,设置界面出现 GDPR 按钮,点击弹出 GDPR 界面
C#
public virtual bool IsRequestLocationInEeaOrUnknownStatic(){return default;}
展示 GDPR 用户协议
C#
public virtual void ShowGDPRDialogStatic(){}
调用此接口会触发 GDPR 弹框回调ZMYSDKManager.I.ShowGDPRResult
2、游戏内需要有 隐私政策和用户协议按钮
WARNING
在游戏首页或游戏设置页展示 隐私政策和用户协议按钮,并且点击可跳转
用户协议
C#
public virtual void GotoTermsServiceStatic(){}
隐私政策
C#
public virtual void GotoPrivacyPolicyStatic(){}
3、使用了支付模块时,必须使用 GP 动态价格
WARNING
通过接口获取动态价格
在游戏内商品展示动态价格,货币种类也需要展示
在 GP 后台配置商品前,需要一个商品申请审核包,此包不需要处理动态价格逻辑
获取商品信息
c#
ZMYSDKManager.I.GetProductInfo(string productId);
c#
/* {
"sku": "com.test.test.test.pigbank",
"price": "2.99",
"title": "Piggy Bank",
"priceCountryApiType": "US$",
"priceCountryApiCode": "USD",
"description": "Offers up to 3200 coins upon purchasing."*/
public class ProductInfo
{
///商品ID
public string sku;
/// 标题
public string title;
/// 描述
public string description;
/// 价格
public string price;
/// 货币的符号
public string priceCountryApiType;
/// 币种
public string priceCountryApiCode;
/// 货币符号
public string Currency
{
get
{
if (string.IsNullOrEmpty(priceCountryApiType))
{
return priceCountryApiCode;
}
return priceCountryApiType;
}
}
}
4、去掉 GM 工具相关的所有代码
DANGER
如果游戏内含有 GM 工具相关代码,在打包提审前一定要记得去掉!!
5、去掉热更新相关的所有代码
DANGER
如果游戏内含有热更新相关代码,在打包提审前一定要记得去掉!!
6、和内购提审包的区别
DANGER
需要配置正式的支付 id,同时打包时记得将版本号+1,不能和内购提审包一致
7、包体大于 150M 时,需要主动进行资源分发
资源分发模式介绍
安装时分发(install-time)
WARNING
💡 资源包在用户安装应用时分发。这些资源包以拆分 APK(APK 集的一部分)的形式提供。它们也称为“预先”资源包;您可以在应用启动时立即使用这些资源包。这些资源包会增加 Google Play 商店上列出的应用大小。用户无法修改或删除这些资源包
下载大小限制:Asset Pack 的总下载大小上限为 1 GB
集成(install-time)
集成环境
在项目的 build.gradle
文件中将 Android Gradle 插件的版本更新为 4.0.0
或更高版本
工程配置
在项目的顶级目录中,为资源包创建一个目录。此目录名称将用作 Asset Pack 名称。资源包名称必须以字母开头,并且只能包含字母、数字和下划线。
在 Asset Pack 目录中,创建一个
build.gradle
文件并添加以下代码。请务必指定资源包的名称,并且仅指定一种分发类型:
go
// In the asset pack’s build.gradle file:
plugins {
id 'com.android.asset-pack'
}
assetPack {
packName = "asset-pack-name" // Directory name for the asset pack
dynamicDelivery {
deliveryType = "[ install-time ]"
}
}
- 在项目的应用
build.gradle
文件中,添加项目中每个资源包的名称,如下所示:
json
// In the app build.gradle file:
android {
...
assetPacks = [":asset-pack-name", ":asset-pack2-name"]
}
- 在项目的
settings.gradle
文件中,添加项目中的所有资源包,如下所示:
go
// In the settings.gradle file:
include ':app'
include ':asset-pack-name'
include ':asset-pack2-name'
在资源包目录中,创建以下子目录:
src/main/assets
。将资源放置在
src/main/assets
目录中。您也可以在此处创建子目录。应用的目录结构现在应如下所示
bash
build.gradle
settings.gradle
app/
asset-pack-name/build.gradle
asset-pack-name/src/main/assets/your-asset-directories
- 在生成的 app bundle 中,根级目录现在包含以下内容:
asset-pack-name/manifest/AndroidManifest.xml
:配置资源包的标识符和分发模式asset-pack-name/assets/your-asset-directories
:此目录包含作为资源包的一部分分发的所有资产
点我快速对接


