【问题标题】:I am getting error while requesting products from App Store for IAP从 App Store 请求 IAP 产品时出现错误
【发布时间】:2013-08-15 15:07:27
【问题描述】:

在 IOS6 中,我成功地在我的应用中进行了应用内购买。

我下载了 IOS/ 和 Xcode 5 Beta 并尝试打开同一个项目。

我从应用商店获取产品的代码是:

- (void)requestProductsWithIdentifiers:(NSSet*)identifiers
{
        @synchronized(self)
    {
            DebugLog(@"requesting products with identifiers: %@", identifiers);

            self.productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:identifiers] ;
            self.productsRequest.delegate = self;
            [self.productsRequest start];
    }
}

但是它返回一个错误:

[IAPHelper request:didFailWithError:](114): request did fail with error: <SKProductsRequest: 0xb846a10> / Error Domain=SSErrorDomain Code=2 "Cannot connect to iTunes Store" UserInfo=0xb846b10 {NSLocalizedDescription=Cannot connect to iTunes Store}

问题可能出在哪里?

【问题讨论】:

  • 我在 iOS 7 模拟器上使用 Xcode 5 Beta 时遇到了同样的问题,如果我在 Xcode 4.6.3 和 iOS 6 模拟器上运行项目,一切都很好。
  • 运气好能找到真正的解决方案,而不是 cmets 和“答案”中提到的许多空话吗?我最近向商店提交了一个新版本的应用程序,没有更改代码并得到一个非常相似的问题:StoreKit:取消交易错误:错误域 = SKErrorDomain 代码 = 2“无法连接到 iTunes 商店”用户信息 = 0x1857dde0 {NSLocalizedDescription =无法连接到 iTunes Store},错误代码:2 - 仅在完成购买时 - 其他一切(获取产品列表等)都按预期工作。

标签: in-app-purchase ios7


【解决方案1】:

Apple 阻止测试应用内购买...

这是发行说明的链接 https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW578

参见:iOS 模拟器部分

StoreKit(应用内购买)在模拟器中不起作用。 13962338

很伤心……

【讨论】:

  • 这并不能解释在模拟器中测试应用内购买时出现的问题。这对于一些具体的设备来说不是问题:我已经在许多设备上尝试过应用内购买,但它们都没有在其中任何一个上工作。我什至可以获取产品信息,但我无法在沙盒中进行任何应用内购买。
  • Apple 允许(甚至要求)使用特殊测试用户在设备上测试应用内购买,这里是 documentation 的链接。请参阅测试您的应用内购买部分
  • 谢谢,但我知道。我的意思是,一天一切正常,第二天应用内购买不起作用,第二天一切又恢复正常,我这边没有任何改变。这就是为什么在我的回答中谈到苹果方面的问题之前的一段时间。
  • 太难过我要哭了;___;
  • 我也看到了。无法测试应用内购买。我看到错误代码 109 - 无法连接到 iTunes。一半的开发时间我试图说服我的 iPad 连接到 iTunes。
【解决方案2】:

我最近在安装 xcode 5 和 iOS 7 模拟器后遇到了同样的问题。

以前 SKProductRequests 在模拟器中工作,但现在它们失败并出现错误代码 2。 (它们仍然在设备上工作)。

我不确定是什么原因造成的,但我的解决方案是下载 iOS 6.1 模拟器。 xcode Preferences->Downloads->Components 并选择 iOS 6.1 模拟器。

之后,我不得不选择 iOS 6.1 模拟器作为我的设备目标,从模拟器中删除应用程序,然后再次编译并运行它。现在 SKProductRequests 按预期返回了产品信息。

我尝试切换回 iOS 7 模拟器,但 SKProductRequests 再次开始失败。

【讨论】:

    【解决方案3】:

    更新:在模拟器中测试应用内购买似乎在 Xcode 6 beta 中有效

    【讨论】:

    • 当我在 iOS 7 模拟器中尝试请求产品时遇到错误,它成功地在 iOS 8 模拟器中获取它们。但是,当我登录以恢复购买时,它无法连接并出现相同的“无法连接到 iTunes Store”错误。简而言之:使用物理设备测试 IAP。
    • 我也有类似的问题。模拟器将获得产品,但购买失败。在实际设备上一切正常(5s)
    • 我确认这正是发生在我身上的事情。
    • 这里也一样!我可以获取产品,但无法使用模拟器中的沙盒帐户购买它们。不过它在设备上运行良好!
    • 在 xcode 7.1.1 /simulator 9.1 中也不起作用。可以获取产品但购买失败并显示“无法连接到 iTunes 商店”。这是已知的 developer.apple.com/library/prerelease/ios/technotes/tn2413/…
    【解决方案4】:
    1. 确认您已从 iTunes 和 App Store 退出(设置 -> iTunes 和 App Store -> 触摸 Apple ID -> 退出)

    2. 返回您的应用,再次购买并使用测试用户帐户登录,因为开发版本访问的是沙盒商店而不是生产商店。

    【讨论】:

    • 很遗憾iOS7模拟器无法打开“设置->iTunes & App Store”
    • 这个问题没有说明模拟器,这个答案帮助了我,谢谢:)
    【解决方案5】:

    正如 Arkady 所说,随着 XCode 5 的 GM 版本,您无法在模拟器中测试应用内购买。但是,我能够在运行 iOS 7.0.2 的 iPad 2 上测试应用内购买,方法是从 iTunes 和 App Store 注销(如 Tafkadasoh 所述),然后从 XCode 在设备上运行应用程序。当我进入应用内购买时,系统提示我输入 Apple ID,当我输入测试用户帐户信息(我在 iTunes Connect 中创建的)时,我能够成功运行应用内购买沙盒模式。

    【讨论】:

      【解决方案6】:

      发行说明并没有说他们已经阻止了应用内购买,文字说明存在一个已知错误“StoreKit(应用内购买)将无法在模拟器中运行。13962338”,如果我没看错的话。大概 13962338 是错误编号。请注意,如果是政治家发表的声明,我可能会同意你的观点:-)

      PS 由于他们已经删除了 iTunes 设置,因此进行应用内购买确实有点棘手。

      PPS 也许我们都应该开始提交错误报告。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多