跳到正文

← 全部工具

给 iOS 和 Mac 开发者的免费工具

StoreKit 配置文件查看与检查

拖入 Xcode 项目里的 .storekit 文件,就能看到其中每个商品:消耗型、非消耗型、非续期订阅以及订阅群组,每个都列出商品 ID、参考名称、价格、家人共享,以及各语言的显示名称和描述。订阅还会显示级别、续期周期、推介促销优惠、促销优惠、优惠代码和赢回优惠。检查功能会找出重复 ID、空名称、缺失的语言、同级的方案、零价格以及超出 App Store Connect 限制的文字。可以下载 CSV,或复制文字摘要。不会上传任何内容。

你的 StoreKit 配置文件

把 .storekit 文件拖到这里、打开它,或粘贴它的内容。文件只在本页读取,不会上传。

拖入、打开或粘贴一个 .storekit 文件,即可查看商品和检查结果。

它是怎么工作的

  • •.storekit 文件是 JSON。Xcode 把一次性商品放在 “products”,非续期订阅放在 “nonRenewingSubscriptions”,订阅放在 “subscriptionGroups” 里,另有 “settings” 保存测试用的店面、语言区域、时间倍率和模拟错误。本页读取这些键,文件里其他内容按原样显示,不会藏起来。
  • •我们参考了两百多个真实配置文件(格式版本 2.0 到 4.0)来了解格式,并把键名与 macOS 的 StoreKit 测试服务读取的键名做了核对。
  • •字数限制来自 Apple 的 App Store Connect 帮助页面 “In-App Purchase information”:显示名称 2 到 30 个字符,描述最多 45 个,参考名称最多 64 个,商品 ID 最多 100 个字母、数字、连字符、句点和下划线。Apple 没有公布订阅显示名称的长度限制,所以本页不自己编一个。
  • •“缺少本地化”指一个商品缺少同一文件里其他商品有的语言。语言区域按原文比较,所以 en_US 和 en 算不同。
  • •同一级别的两个订阅,周期不同时只是提示(Apple 允许同一服务的不同时长放在同一级别),周期也相同时才是警告。
  • •不是反向域名格式的商品 ID 只给出警告。Apple 并不要求这种格式。

它做不到的事

  • •它不连接 App Store Connect,无法判断你的商品在那边是否存在、是否已获批准,或 ID 和价格是否一致。
  • •它不测试购买。请用 Xcode 的 StoreKit 测试(在 scheme 的 Run 选项里选中这个文件)或沙盒环境。
  • •它不编辑也不保存文件。请在 Xcode 的 StoreKit 编辑器里修改。
  • •文件里的价格只是测试用的占位值,不是 App Store 的价格档位,本页也不会和 Apple 的价格表比对。
  • •它不检查文字里是否有 App 审核可能拒绝的用词或符号,也不检查订阅显示名称的长度,因为 Apple 没有公布这项限制。

常见问题

什么是 StoreKit 配置文件?
Xcode 项目里的 .storekit 文件,用来在本地测试时描述你的 App 内购买项目和订阅。在 scheme 的 Run 选项里选中它之后,StoreKit 就用它代替 App Store,不需要网络,也不需要先在 App Store Connect 里设置,就能购买、续期和退款。它不会随 App 一起上传。
为什么检查说我的商品放在 StoreKit 不读取的键下?
Xcode 把一次性商品写在 “products”,非续期订阅写在 “nonRenewingSubscriptions”,订阅写在 “subscriptionGroups”。手写或用其他工具生成的文件有时会用 “nonConsumableProducts”、“consumableProducts” 之类的名字。这些键不在 StoreKit 测试服务读取的列表里,测试时商品可能载入不了。稳妥的做法是在 Xcode 的编辑器里重新添加。
同一群组里的两个订阅可以是同一级别吗?
可以。Apple 说内容相同、时长不同的订阅(比如月度和年度)可以放在同一级别,两者之间切换叫“跨级”。内容更多的方案应设为更高级别(级别 1 最高)。级别相同、周期也相同的两个方案会被标出,因为那通常是写错了。
App 内购买项目的名称和描述最多多长?
App Store Connect 的 “In-App Purchase information” 页面写明:显示名称 2 到 30 个字符,描述最多 45 个。顾客看不到的参考名称最多 64 个字符,商品 ID 最多 100 个。检查对消耗型、非消耗型和非续期订阅使用这些数字。
商品 ID 一定要写成 com.example.app.pro 这样吗?
不用。App Store Connect 只要求使用字母、数字、连字符、句点和下划线,最多 100 个字符,并在你的 App 里唯一。反向域名格式只是让 ID 更易读的习惯,所以本页只给警告,不算错误。
我的文件会被上传吗?
不会。文件由本页的 JavaScript 读取,从不发送到服务器。页面加载后断开网络,它照样能用。

相关工具