Xcode中StoreKit订阅测试对话框仅含取消按钮,如何完成测试购买?
macOS应用内订阅测试购买异常解决方案
检查测试环境配置
- 用沙箱测试账号登录Mac的App Store:打开系统设置→App Store→点击当前登录账号→切换到沙箱测试账号(无账号需在App Store Connect创建)。
- 确认Xcode项目的签名与功能:打开项目设置→目标→签名与功能→确保已添加「In-App Purchase」功能,且团队选择正确的开发者账号。
验证产品ID与后台配置
- 核对代码中的
product_id与App Store Connect内创建的订阅产品ID完全一致(注意大小写、特殊字符)。 - 确认订阅产品在App Store Connect中已开启沙箱测试:进入App Store Connect→你的应用→功能→内购项目→找到对应订阅,状态需为「准备提交」或「已批准」(沙箱测试无需正式上架)。
- 核对代码中的
适配Xcode 16.1的操作
- 重启Xcode和Mac,清除项目Derived Data:Xcode→设置→Locations→点击Derived Data旁的箭头,删除对应项目的文件夹。
- 确保Mac系统版本为Sonoma 14.4及以上,与Xcode 16.1兼容。
补充代码错误排查逻辑
原触发代码没问题,但可以补充购买结果处理,方便定位错误:switch result { case .success(let verificationResult): switch verificationResult { case .unverified(let transaction, let error): print("交易验证失败: \(error.localizedDescription)") await transaction.finish() case .verified(let transaction): await transaction.finish() print("购买成功") } case .userCancelled: print("用户取消购买") case .pending: print("购买待处理") default: break }
内容的提问来源于stack exchange,提问作者zino




