主题
Skip to content 
0、Unity 发布谷歌市场
WARNING
由于谷歌要求升级 target 版本到 34 以上,而 unity 的 2021 和 2022 在 3.39 版本之前的版本不支持 target 版本,所以如果计划发布谷歌市场,一定要将引擎升级至 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
TypeScript
//监听 是否为欧盟地区 如果true 可以展示欧盟弹窗
//false 非欧盟地区,不弹 GDPR,设置界面没有 GDPR 按钮
//true 欧盟地区,弹 GDPR,设置界面出现 GDPR 按钮,点击弹出 GDPR 界面
public inEeaForGDPRListen(callback : (inEea : boolean) => void) {}
// 移除 监听
public inEeaForGDPRRemove() {}
//state: 0-欧盟弹窗关闭 1-欧盟弹窗展示 (注,如果回调了1,那么后续会有0)
public showGDPRDialogStatic(callback :(status : number) => void) {}
2、游戏内需要有 隐私政策和用户协议按钮
WARNING
在游戏首页或游戏设置页展示 隐私政策和用户协议按钮,并且点击可跳转
用户协议
C#
public virtual void GotoTermsServiceStatic(){}
隐私政策
C#
public virtual void GotoPrivacyPolicyStatic(){}
隐私政策
TypeScript
//10. 跳转到隐私界面
public gotoPrivacyPolicyStatic() {}
用户协议
TypeScript
//11. 跳转到用户协议
public gotoTermsServiceStatic() {}
3、使用了支付模块时,必须使用 GP 动态价格
WARNING
在 GP 市场申请谷歌支付商品 ID 前,需要给出一个内购提审包,此包要符合 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;
}
}
}
开始加载商品信息
注意 此方法只是开始加载 获取结果使用 getProductInfo 方法,可在首页调用一次就好
TypeScript
// 1.启动时查询想要查询的id,可以多个。(也可以启动时不查询,展示商品界面前查询,这里不做任何限制,游戏怎么方便怎么来。)
// 2.展示商品界面时获取某个id的详细信息,游戏自行显示界面数据。注:可能不一定成功,如果获取为空,那么游戏需要显示默认的。
loadProductInfo(productIds : Array<string>) {}
获取商品信息(查询动态价格)
注意 先使用 loadProductInfo 加载后才能获取,加载失败或未完成时 返回 空
TypeScript
// 获取产品信息 可能会返回null 需要在此之前(首页 或者其他页面)调用loadProductInfo 加载(loadProductInfo内部是一个异步请求)
// 获取产品信息,查询不到返回"",返回值是json
// * demo: {"description":"RemoveAds","price":"0.99","priceCountryCode":"USD","sku":"com.hduo.color.stacking.removeads1","title":"RemoveAds1 (Stacolor: 3D Color Hoop Sort)"}
getProductInfo(productId : string) : ProductInfo | null
4、去掉 GM 工具相关的所有代码
DANGER
如果游戏内含有 GM 工具相关代码,在打包提审前一定要记得去掉!!
5、去掉热更新相关的所有代码
DANGER
如果游戏内含有热更新相关代码,在打包提审前一定要记得去掉!!
6、和内购提审包的区别
DANGER
需要配置正式的支付 id,同时打包时记得将版本号+1,不能和内购提审包一致
7、包体大于 250M 时,需要主动进行资源分发
安装时分发(install-time)
WARNING
💡 资源包在用户安装应用时分发。这些资源包以拆分 APK(APK 集的一部分)的形式提供。它们也称为“预先”资源包;您可以在应用启动时立即使用这些资源包。这些资源包会增加 Google Play 商店上列出的应用大小。用户无法修改或删除这些资源包
下载大小限制:Asset Pack 的总下载大小上限为 1 GB
集成环境
在项目的 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
:此目录包含作为资源包的一部分分发的所有资产
点我快速对接


