【问题标题】:iOS InApp purchases do not work in Production (okay in testflight)iOS In App 购买在生产环境中不起作用(在 testflight 中可以)
【发布时间】:2021-05-16 12:32:06
【问题描述】:

我在该应用中有 3 个可用的应用内购买。 在生产中的版本上,我转到屏幕选择订阅计划。 当我点击订阅按钮时,没有打开底部表格来确认价格/订阅并要求用户验证。

它在 testflight 中使用完全相同的构建工作正常:

【问题讨论】:

    标签: ios in-app-purchase testflight production


    【解决方案1】:

    问题来自于传递给代码中使用的 validateIosReceipt 函数的错误参数 在生产中,第二个参数应该是 false (isTests),否则会调用错误的收据验证 url

    但这意味着不能将相同的构建用于 TestFlight 和 Production,对于 TestFlight,该参数应该为 true,但在生产中应该为 false

    【讨论】:

      【解决方案2】:

      您可以在 Bundle 上使用此扩展来确定您的 isTests 参数的正确值:

      public extension Bundle {
          var isTests: Bool {
              #if DEBUG
                  return true
              #else
                  return self.appStoreReceiptURL?.lastPathComponent == "sandboxReceipt"
              #endif
          }
      }
      

      对于调试和 TestFlight 构建,这将返回 true,对于生产构建则返回 false

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-20
        • 2011-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多