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

Unity游戏项目集成Apple Pay遇阻求助:无产品返回错误

解决Unity IAP Apple Pay“无产品返回”问题的排查步骤
  • 检查App Store Connect核心配置

    • 确认内购产品已在App Store Connect创建完成,状态为「准备提交」或「已批准」——未审核通过的产品无法被Unity IAP获取
    • 产品的SKU必须和Unity IAP配置的完全一致,包括大小写、特殊字符,哪怕一个字母错了都不行
    • 确保你的Apple开发者账号已开启内购权限,且对应App ID的「In-App Purchase」选项已勾选
  • Unity IAP基础配置验证

    • 打开Unity菜单 Window > Services > In-App Purchasing,确认服务已启用,且关联了正确的App Store Connect账号
    • 核对Codeless Integration的产品列表:Unity IAP面板中添加的产品SKU,要和App Store Connect里的完全匹配,别犯拼写错误
    • 升级Unity IAP包到最新版本,旧版本可能存在iOS兼容性问题
  • 代码层面的基础确认(Codeless模式也需检查)

    • 检查支付按钮的绑定:按钮的OnClick事件是否正确关联了Unity IAP的PurchaseProduct方法,传入的参数是否是正确的产品SKU
    • 确认IAP初始化正常:可以手动添加一个初始化脚本确保启动时完成初始化,示例代码如下:
      using UnityEngine.Purchasing;
      
      public class IAPInit : MonoBehaviour, IStoreListener
      {
          private static IStoreController _storeController;
          private static IExtensionProvider _storeExtensions;
      
          void Start()
          {
              if (_storeController == null)
              {
                  InitPurchasing();
              }
          }
      
          void InitPurchasing()
          {
              if (IsInitialized()) return;
      
              var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
              // 替换成你的产品SKU,比如builder.AddProduct("gold_100", ProductType.Consumable);
              builder.AddProduct("your_product_sku", ProductType.Consumable);
              UnityPurchasing.Initialize(this, builder);
          }
      
          bool IsInitialized()
          {
              return _storeController != null && _storeExtensions != null;
          }
      
          // 实现IStoreListener接口的必要方法(空实现即可,Codeless会处理核心逻辑)
          public void OnInitialized(IStoreController controller, IExtensionProvider extensions) {}
          public void OnInitializeFailed(InitializationFailureReason error) {}
          public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason) {}
          public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args) { return PurchaseProcessingResult.Complete; }
      }
      
    • 查看Unity控制台日志:运行时过滤「IAP」相关日志,找初始化失败、产品获取失败的具体错误信息,比如网络问题、账号权限不足等
  • iOS构建与测试环境检查

    • 构建iOS包时,Player Settings里的Bundle Identifier必须和App Store Connect中的App ID完全一致
    • 必须用iOS真机测试,且登录的是App Store Connect中创建的沙箱测试账号,普通Apple ID无法测试内购
    • Xcode构建时,确保已在Signing & Capabilities中添加「In-App Purchase」能力
  • 新手易踩的坑

    • 不要在Unity编辑器里测试Apple Pay/内购,必须用真机
    • 沙箱测试账号需要单独创建,不能用开发者账号直接登录测试
    • 新创建的内购产品需要等待一段时间(几分钟到几小时)才能被Unity IAP获取,刚创建就测试大概率会失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:10:49