无法将消耗型In-App Purchases(IAP)关联至App Store Connect
无法将消耗型In-App Purchases(IAP)关联至App Store Connect
我正在使用StoreKit开发一款支持消耗型IAP的应用,已在ProductList.plist和Product.storekit中定义了产品,但无法关联到App Store Connect,具体情况如下:
已配置的产品
ProductList.plist中的产品:Bolet Evento Vip:com.cover.boleto.vipBoleto Evento Básico:com.cover.boleto.basico
Product.storekit中已设置产品价格及基础配置,但无法与App Store Connect同步。
已执行操作
- 在Xcode中开启了IAP模拟功能
- 尝试在App Store Connect中手动注册产品
遇到的问题
- 配置完成后产品未出现在App Store Connect中
- 应用无法从App Store Connect获取消耗型产品
代码片段
import StoreKit func fetchProducts() { let request = SKProductsRequest(productIdentifiers: ["com.cover.boleto.vip", "com.cover.boleto.basico"]) request.delegate = self request.start() } func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) { for product in response.products { print("Product available: \(product.localizedTitle)") } }
解决步骤
核对App Store Connect应用配置
- 确保App Store Connect中已为应用开启In-App Purchases功能:进入应用「功能」标签,确认IAP已启用。
- 检查应用Bundle ID与Xcode项目中的Bundle ID完全一致,包括大小写和后缀。
同步Product.storekit到App Store Connect
- 在Xcode中打开
Product.storekit文件,点击右上角「Sync with App Store Connect」按钮。 - 同步前确认产品标识符与App Store Connect中注册的完全匹配,无拼写错误。
- 首次同步需确保你的Apple ID拥有App Store Connect的「开发者」或「管理员」权限。
- 在Xcode中打开
检查产品注册状态
- 在App Store Connect进入「功能」→「In-App Purchases」,查看产品是否处于「准备提交」或「已批准」状态。未完成必填信息(名称、价格层级等)的产品无法被应用获取。
- 消耗型产品无需审核通过即可在沙箱测试,但必须完成注册流程。
沙箱环境测试优化
- 关闭Xcode的IAP模拟功能,改用沙箱测试账号:在设备「设置」→「App Store」中登录沙箱账号,禁止使用真实Apple ID。
- 补充打印无效产品标识符,排查拼写问题:
func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) { if !response.invalidProductIdentifiers.isEmpty { print("无效产品标识符: \(response.invalidProductIdentifiers)") } for product in response.products { print("可用产品: \(product.localizedTitle)") } }
清理缓存与重新同步
- 用
Shift + Command + K清理Xcode项目缓存,再Command + B重新构建。 - 重启Xcode和设备,确保网络稳定,避免同步时出现网络异常。
- 用
内容的提问来源于stack exchange,提问作者Joel castelan
相关产品推荐
相关产品推荐

