iOS订阅无法显示:Xcode14升级后真机报SKproduct无价格错误求助
iOS16+Xcode14真机内购订阅不显示(报错
SKproduct skipping product because no price was available)解决方案 排查步骤按优先级来:
先搞定App Store Connect的价格配置
别以为本地测试就不用管后台,iOS16真机现在会硬校验这个。登录App Store Connect找到你的内购项目,给至少一个地区(比如中国区)设好价格,状态改成“准备提交”就行(未发布的App不用等审核)。检查StoreKit配置文件的环境和价格
打开你的.storekit文件,顶部的Environment选Sandbox,别选Local Only;如果用本地配置,每个订阅产品的Price必须填,而且要和你真机的App Store地区对应上(比如你手机是中国区,就填人民币价格)。重置真机的沙箱账号
- 真机设置→App Store,退出当前ID;
- 登录专门的沙箱测试账号(普通ID不行);
- 重启App再拉内购列表试试。
核对产品ID的拼写
代码里请求的产品ID、.storekit里的ID、App Store Connect里的ID,三个必须完全一致,大小写、连字符都不能错,别犯低级拼写错误。清理Xcode缓存并检查编译配置
- Xcode里按
Command+Shift+K清缓存,再Command+B重新编译; - 去Build Settings里搜
StoreKit Configuration,确认Debug和Release都关联对了你的.storekit文件。
- Xcode里按
检查iOS16的权限限制
- 确认Info.plist里加了网络权限(要么开NSAllowsArbitraryLoads,要么配App Store的域名白名单);
- 检查真机有没有开“限制App内购买”:设置→屏幕使用时间→内容和隐私访问限制→iTunes Store与App Store购买项目,确保允许App内购买。
终极验证
如果上面都没用,试试:
- 新建个空项目,只加内购代码和.storekit文件,真机跑一遍,看是不是项目本身的问题;
- 换另一台iOS16真机测试,排除设备故障。
内容的提问来源于stack exchange,提问作者Djirro
相关产品推荐
相关产品推荐

