【问题标题】:"Cannot connect to iTunes Store" in-app purchases“无法连接到 iTunes Store”应用内购买
【发布时间】:2011-11-16 04:44:53
【问题描述】:

我在测试我的应用内购买时遇到问题。我取回了有效的产品标识符,但在购买时我收到了可怕的“无法连接到 iTunes Store”。有趣的是,恢复购买似乎有效 - iTunes 登录弹出。

我有: - 检查我的应用内购买是否已清除出售 - 检查,重新检查我的源代码以与 Apple 的文档同步 - 添加了合适的测试用户 - 应用 ID 不包含通配符 - 应用内购买链接到应用(应用本身处于开发者拒绝状态,购买准备提交) - 等待 - 重新安装的应用程序,清洁的解决方案,所有的巫术东西

【问题讨论】:

  • +1 表示“所有巫毒教的东西”——这不是事实!
  • 苹果,你干嘛这么复杂!!!

标签: ios cocoa-touch in-app-purchase


【解决方案1】:

确保您已退出设备上的任何生产 iTunes 帐户。

我在使用实际 iTunes 帐户登录的测试手机上收到此错误。您无法使用您的生产 iTunes 帐户测试应用程序,因此会出现错误。我只是希望 Apple 提供一个更好的错误,以避免这种猜测......

【讨论】:

  • 我的错误只是没有设置沙盒用户,我忘记了那一步。并且不要从设备 b/c 的设置 >> iTunes 部分登录它,这会破坏它。等实际测试的时候再做吧。
  • 在使用旧沙盒帐户在另一个应用程序上测试以前的 IAP 时,您也可能会收到此错误(我的场景)。 Apple 确实需要更新我们测试 IAP 的方式,我的电子邮件快用完了:0
  • 我正在模拟器中测试,所以这应该不是问题吧?
  • 从所有 iTunes 帐户中注销。它提示我需要登录,然后横断失败。使用了许多沙盒测试员帐户,但无法正常工作。
  • 对我来说,这也不起作用...尝试创建许多帐户,其中一些具有登录的 iTunes 沙盒用户,另一些没有登录用户,即使没有确认电子邮件,也没有任何作用!跨度>
【解决方案2】:

In-App Purchase FAQ: Cannot connect to iTunes Store

Your app is running in the Simulator, which does not support In-App Purchase

对于应用购买测试,请始终使用真实设备。

【讨论】:

  • 你的应用没有捆绑版本 (CFBundleVersion)。
【解决方案3】:

对于新手,请确保您的应用内购买产品的状态为Ready to Submit,并且没有“缺少元数据”。就我而言,缺少的是订阅组的本地化。

【讨论】:

  • 谢谢!就我而言,它缺少显示名称的本地化。
  • 在我的 IAP 中,它显示“等待上传”。我仍然收到错误
  • 这对我也有用。我也登录了我的活动 iTunes 帐户,所以活动帐户对我来说并不重要
【解决方案4】:

我一直有这个问题,我确信这是一个错误。我已提交错误报告,错误 ID 为 10108270

问题似乎是测试用户被“锁定”并且可能与尝试使用该帐户在已发布的应用中购买应用内购买有关。

我的解决方法是创建一个新的测试用户,但在 Apple 回复我之前,我无法提供任何更好的解决方案。当我收到回复时,我会更新这个答案。

【讨论】:

  • 我创建了一个新的测试用户,但没有帮助。
  • 对不起,我帮不上忙,这是我的解决方法,很遗憾它不适合你。当我得到更多信息时,我会及时更新这个答案。
  • 我创建了一个新的测试帐户,并且应用内购买再次开始工作。谢谢!
  • 创建一个新的测试用户为我解决了这个问题。 (几天前,我在尝试使用我的旧测试用户时收到通知,它已被禁用,所以我不得不重新启用它。不久之后,我开始收到Cannot connect to iTunes store 错误。但是一旦我创建一个新的测试用户,购买又成功了。)
  • 新用户为我工作。在做任何其他事情之前尝试一下。
【解决方案5】:

这个问题在 2016 年仍然存在。难以置信。这是我的解决方案:

添加内部版本号。目标 > 常规 > 身份 > 构建。

【讨论】:

  • 难以置信。这在 2018 年仍然是一个问题。我不在调试模式下使用内部版本号,因为我只为生产版本增加它。感谢您发布此内容。
【解决方案6】:

这是一个与我今天面临的问题有关的旧线程。

就我而言,直到昨天我还能够在我的设备上测试应用内购买,但它今天停止工作。事实证明,Apple 已经推动了一项“付费应用程序修正案”,供我审查并同意。一旦我同意了修正案(当然没有阅读),一切都重新开始了。不必创建新的测试用户或任何其他解决方法。

应用内购买不起作用的原因可能有很多,但请确保您在 itunesconnect 上正确设置,否则您将无法测试应用内购买。

【讨论】:

    【解决方案7】:

    我遇到了同样的问题。对我来说,它发生在这个 secuence 之后:

    • 在通过 iTunes 登录英国帐户的设备上安装应用程序
    • 启动应用并使用在美国设置的测试用户
    • 消息显示帐户仅在美国有效。关闭应用并自动启动 iTunes
    • 再次打开您的应用并重新尝试购买。收到产品但没有其他回调或错误。

    我不知道这是否是 IAP 平台上的问题,但我想在我的代码中以某种方式处理它。

    要继续测试您的 IAP,请尝试以下任一方法:

    1. 删除设置区域中的配置文件,删除应用程序并从设置中的商店注销。然后转到 XCode 并将签名身份更改为“请勿签名”,然后将它们放回原处(我知道这听起来如何 :) 但尝试)或
    2. 硬重置设备上的所有设置(设置 -> 常规...)。显然,您将丢失该设备上的任何设置...
    3. 终止设备上的 iTunes 应用程序(多任务菜单)并在“设置”中从 Store 注销

    如果以上都不起作用,则可能是 IAP 平台的问题,请参阅下面的我的 cmets。

    【讨论】:

    • 谢谢,但方法 1 或 2 都不适合我。仍然无法连接到 iTunes。 :(
    • 其实我自己也试过了,还是不行!我有一种感觉,这是该平台今天/最近的一个问题。但我找不到任何链接来确认它(状态)。啊!我要离开它几个小时,看看是否是这种情况,这对开发人员来说是外部的
    • 是否已尝试在设备上终止 iTunes 应用程序(多任务菜单)并在“设置”中从 Store 中注销?
    • 让我补充一点,游戏中心(至少沙盒)在过去 5 天左右一直不稳定。只有昨晚才开始工作得更好。我之所以提到它,是因为我的 IAP 代码自我的回答以来没有改变,现在它可以工作了。我倾向于认为 Apple IAP 平台存在错误,并且不知何故也与 Game Center 有关。
    【解决方案8】:

    确保系统状态为就绪https://www.apple.com/support/systemstatus/

    我有一部 Iphone,重启它对我有用

    【讨论】:

      【解决方案9】:

      如果您收到此错误“无法连接到 iTunes Store”,请查看详细清单:

      • 确保您在 App Store Connect 中创建了沙盒用户

      • 模拟器不支持应用内购买:在真机上测试

      • 沙盒可能无法访问。检查Apple System Status
      • 检查您的应用是否有捆绑版本 (CFBundleVersion)
      • 检查产品是否有售。您是在 App Store Connect 中创建的吗?

      • 如果是以前的 iOS 12,请退出设备上的任何生产 iTunes 帐户。否则,您只需在开发应用中使用您的沙盒帐户登录即可。

      【讨论】:

        【解决方案10】:

        在使用旧沙盒帐户在另一个应用程序上测试之前的 IAP 时,您也可能会收到此错误(我的场景)。 Apple 真的需要更新我们测试 IAP 的方式,我的电子邮件快用完了:0

        【讨论】:

        • 我也有这个问题。有时创建新用户会有所帮助。此外,您不需要使用真实的电子邮件。我通过 -## 在我的末尾并继续添加新的。
        【解决方案11】:

        我可以在 iPhone 上购买应用内商品,但不能在 iPad(11.0.2) 上购买。我尝试了所有提到的解决方案,但没有任何帮助。在尝试了所有其他可能性之后,我终于能够让它发挥作用。

        当您在 iTunes Connect 中创建测试帐户时,不要验证电子邮件 ID。如果验证通过,iap 会返回“无法连接到 iTunes”错误。它看起来很奇怪,但这对我来说是有效的。在 iPhone 中,无论电子邮件验证如何,我都可以使用测试帐户进行购买。

        【讨论】:

        • 我读过这篇文章,起初听起来很疯狂,但它确实有效。与无法在 iPad 上购买但在 iPhone 上正常工作的测试帐户有完全相同的问题。很奇怪!
        • 是的。这很奇怪。由于这个问题,我们的应用被拒绝了,我不得不向苹果审核团队解释原因并获得批准。
        【解决方案12】:

        当 SKProductsRequest 传递了错误的 NSSet 时,也会发生此错误:

        错误:

        let products = NSSet(objects: ["id1", "id2"])
        

        正确:

        let products = NSSet(objects: "id1", "id2")
        

        【讨论】:

          【解决方案13】:

          就我而言,我只是忘记在transactionState 中处理.failed。特别是SKPaymentQueueue.default().finishTransaction(transaction)

          【讨论】:

            【解决方案14】:

            我遇到了同样的问题,我检查了包括Apple form在内的问题,但找不到解决方案。

            今天检查设备时发现以下内容

            设备设置 -> iTunes & App Store 发现另一个 Apple Id 已登录。 所以我尝试了 signOut 并再次检查了 InApp 购买,它运行良好。所以请检查问题是否与相同。

            感谢和问候, Unnikrishnan.P

            【讨论】:

              【解决方案15】:

              除了此处列出的所有其他方法之外,如果您正在使用订阅,您似乎需要确保您已生成共享密钥:

              “要测试或提供自动续订订阅,您必须拥有主共享密钥或为每个应用使用特定于应用的共享密钥。”

              主共享密钥是从 App Store Connect 的“用户和访问”部分的“共享密钥”选项卡生成的。

              在您管理应用本身的应用内购买的位置生成一个特定于应用的共享密钥。

              【讨论】:

                【解决方案16】:

                我修好了!如果您收到Error Domain=SKErrorDomain Code=2 "Cannot connect to iTunes Store" 错误,请确保插入SKPaymentQueue.default().finishTransaction(transaction)。在我在以下内容中添加SKPaymentQueue.default().finishTransaction(trans) 后,它对我有用:

                func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
                    for trans in transactions{
                        if trans.transactionState == .purchased {
                            print("Successful.")
                            SKPaymentQueue.default().finishTransaction(trans)
                        } else if trans.transactionState == .failed {
                            print("failed!")
                            print(trans.error)
                            SKPaymentQueue.default().finishTransaction(trans)
                        }
                    }
                

                可在 Apple 开发者网站上找到,here

                【讨论】:

                  【解决方案17】:

                  我必须转到“设置”>“iTunes 和 App Store”,然后滚动到底部的“沙盒帐户”字段并从那里注销。现在它正在工作!!!

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2015-09-15
                    • 2017-08-25
                    • 1970-01-01
                    • 1970-01-01
                    • 2018-09-18
                    • 2011-07-25
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多