You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity游戏内购:StoreKit.Framework是否需签名?IAP初始化失败求助

问题解答:Unity IAP初始化失败(NoProductsAvailable)及StoreKit配置说明

是否需要嵌入并签名StoreKit?

Unity Purchasing(Unity的IAP模块)底层依赖Apple的StoreKit系统框架,但不需要手动嵌入和签名StoreKit——因为StoreKit是iOS系统自带的框架,Unity导出Xcode项目时会自动将其添加到依赖链接中。不过你禁用Embed Swift Standard Libraries的操作可能间接影响了IAP初始化:

  • 如果项目完全没有Swift代码,禁用该选项没问题,但要确认Xcode的Build Phases -> Link Binary With Libraries中,StoreKit.framework已被正确添加(状态为Required/Optional)。
  • 如果项目包含Swift代码(比如自定义IAP逻辑、第三方Swift插件),禁用该选项会导致Swift运行时库缺失,直接引发StoreKit相关的初始化错误,这种情况下必须开启Embed Swift Standard Libraries。

解决IAP初始化失败的步骤

  • 核对商品ID一致性:确保Unity IAP配置中的商品ID和App Store Connect内的完全一致(大小写敏感),且商品状态为Ready to Submit或Approved(未审核的商品无法在测试环境中获取)。
  • 确认内购权限开启:在Unity的Player Settings -> iOS -> Other Settings中勾选In-App Purchase,同时在Xcode的Signing & Capabilities面板中确认该权限已启用。
  • 调整Swift配置(若涉及Swift代码):开启Embed Swift Standard Libraries,并在Build Settings -> Swift Compiler - Code Generation中设置Embedded Content Contains Swift Code为Yes。
  • 排查日志细节:用Xcode连接测试设备,查看StoreKit相关的错误日志,定位是否存在商品ID不匹配、签名权限不足等具体问题。

分发至App Store Connect的正确流程

  1. 确认Xcode项目签名配置正确:使用包含In-App Purchase权限的开发者证书和描述文件。
  2. 若开启了Embed Swift Standard Libraries,确保Build Settings中Always Embed Swift Standard Libraries已设为Yes。
  3. 执行Product -> Archive打包,通过Xcode的Distribute App功能选择App Store Connect,按照向导完成上传即可。

内容的提问来源于stack exchange,提问作者Prograbit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 09:48:19