创建 Remote Catalog
定义商品目录并将其上传到 Remote Catalog 服务。
阅读时间7 分钟最后更新于 1 天前
配置商品目录并将其上传到 Remote Catalog 服务,以便用户可以访问应用程序的最新商品,而无需安装新版本。 如果将商品目录上传到 Remote Catalog,Unity IAP SDK 可以从
RemoteCatalogProvider- 您可以确保实时分发产品和定价,而无需用户更新其应用程序。
- 不必在多个支付提供商之间配置产品信息。
产品和目录列表
Unity IAP 使用两个相关概念表示目录:- 商品是您授予用户的商品。每个商品都有一个 SKU,也称为 。
productId - 目录列表是由标识的商品的可购买版本。一个商品可以有多个目录列表,因此可以用多种方法销售同一商品。
catalogListingId
catalogListingIdproductIdcatalogListingId定义商品目录
您可以使用以下方法在远程产品目录中定义有关产品的信息: 还可以直接在 Unity Cloud Dashboard(Unity 云后台)的 In-App Purchases(应用内购)> Catalog(目录 下创作目录。 如果使用 Unity Editor 添加商品,Unity 应用内购 (IAP) 会自动处理购买履行过程所需的一些后端逻辑。尤其是在选择通过后端 API 实现购买时。在 Unity Editor 中创建商品目录
如果在 Unity Editor 中定义商品,则 Editor 会将商品配置存储在文件中,以便您可以使用按代码配置工作流程来管理它们。 要在 Unity Editor 中创建商品,请执行以下步骤:- 要创建目录项,请在目录中右键单击,然后选择 Create > Services > IAP Catalog item。
- 为目录项命名。这将创建一个目录项资源,并在 Inspector 窗口中打开该资源。
- 输入目录项的详细信息。有关更多信息,请参阅 Catalog Item asset Inspector 参考。
- 选择 Apply(应用)。

Catalog Item Asset Inspector 参考
请参阅以下属性来定义 IAP 目录项:属性 | 描述 |
|---|---|
| --script | 默认填充。 |
| Catalog Listing ID | 默认填充(使用文件路径)。在开始购买时用于定向投放此列表的标识符。 |
| SKU | 默认填充(使用文件名)。 |
| 商品类型 | 选择 IAP 商品的类型。 |
| 商品详细信息 | 输入有关商品的信息,包括:
|
| 定价详细信息 | 输入商品价格信息,包括:
|
| 图像 URL | 输入图像 URL 可指定要为商品显示的图像。 |
| 商店 ID 覆盖 | 可选。将列表映射到 App Store 和 Google Play,它们具有不同的命名要求。仅当 SKU 不符合商店要求时才使用这些字段:
|
导入现有目录
如果已在 App Store 或 Google Play 中配置了目录,则可以将其导入 Unity Editor,而不是重新创建商品。- 在 Unity Editor 中,选择 Services > In-App Purchasing > Import Catalog。
- 选择要导入的商店的 App Store 或 Google Play Store 选项卡。
- 根据步骤 1:获取目录数据,输入您的商店凭据,然后选择 Fetch Catalog:
- 密钥
- 秘密范围
- 根据步骤 2:Import 或 Export,为生成的目录项设置 Import New 目标路径,然后选择 Apply。
导入目录后,将其上传到 Remote Catalog 服务。
使用 API 创建商品目录
如果希望通过 Editor 脚本而不是使用 Unity Editor UI 来管理商品目录,请使用此方法。 首先,必须创建一个.asmdef.asmdef然后,可以使用{ "name": "MyIAPProject.Authoring", "rootNamespace":"MyIAPProject.Authoring", "references": [ "Unity.Services.Core", "Unity.Services.Core.Editor", "Unity.Services.Core.Internal", "Unity.Services.DeploymentApi", "Unity.Services.Core.Environments.Editor", "UnityEditor.Purchasing.Authoring", "UnityEditor.Purchasing.Editor.Authoring.Core", "Unity.Purchasing.Editor.Shared", "Unity.Purchasing" ], "includePlatforms": [ “Editor” ]}
ILiveContentConfigClient- 通过 获取相关服务:
PurchasingAuthoringServiceProviderILiveContentConfigClientIEnvironmentsApiPurchasingAuthoringServiceProvider.GetService<ILiveContentConfigClient>()
- 使用所需信息初始化 接口。
ILiveContentConfigClient - 进行读取/更新目录的调用(这些调用是使用当前登录的用户权限进行的)。
请参阅以下代码示例:
[MenuItem("IAP/Deployment/Get and print the catalog")]public static async void Select(){ var lcc = PurchasingAuthoringServiceProvider.GetService<ILiveContentConfigClient>(); var env = PurchasingAuthoringServiceProvider.GetService<IEnvironmentsApi>(); await lcc.Initialize( env.ActiveEnvironmentId.ToString(), CloudProjectSettings.projectId, CancellationToken.None); var items = await lcc.List(CancellationToken.None); Debug.Log(string.Join("\n", items.Select(i => $"{i.uSku} - {i.ProductDetails[0].Description}")));}
使用自定义 Deployment 窗口集成来创建商品目录
您可以使用 Deployment 窗口来托管自定义集成,因此您可以创建简单的自定义部署(例如 CSV)或直接在 Remote Catalog 中进行 excel。 有关如何创建简单 Deployment 窗口的信息,请参阅部署包文档。将商品目录上传到 Remote Catalog 服务
使用 Deployment 窗口可将商品上传到 Remote Catalog:- 在 Unity Editor 中,选择 Services > Deployment 以打开 Deployment 窗口。
- 选择要添加到 Remote Catalog 的商品,然后选择 Deploy Selected。

从远程目录中删除商品
可通过多种方法在 Unity Editor 中删除远程目录中的项:- 在 Inspector 窗口中打开目录项,然后选择 Delete Remote。
- 打开 Deployment 窗口,右键单击目录项,然后选择 Delete Remote。