无法连接到 iTunes Store(获取应用内购买列表)

Posted

技术标签:

【中文标题】无法连接到 iTunes Store(获取应用内购买列表)【英文标题】:Cannot connect to iTunes Store (to get in-app purchase listing) 【发布时间】:2014-10-20 16:35:05 【问题描述】:

我正在尝试从我的应用的应用内购买项目商店中获取列表。这是我所做的:

安装了启用应用内购买的新配置文件。 (替换配置文件很棘手,但我认为我的做法是正确的) 已验证税务和银行信息是否正常。 (该应用已在商店出售)。 已创建测试用户 在测试设备上使用测试用户登录 (设备未越狱) 创建了应用内购买项目并将已清除销售设置为是。 (项目处于准备提交状态)。 等了几个小时 在请求中使用完整的产品 ID。

从上一个问题 (Cannot connect to iTunes store error) 的答案中,我唯一不确定的部分是: 3)你项目的 .plist Bundle ID 和你的 App ID 匹配吗?

Bundle ID 列为 N-A.$PRODUCT_NAME:rfc1034identifier,所以我不确定如何扩展它以查看它是否匹配。但是,由于该应用在商店中出售,我不确定它是如何关闭的。

来自商店的错误是代码 0,“无法连接到 iTunes Store”。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

问题原来不是清单上的任何项目,而是由于我对 Swift 缺乏经验而导致的语法错误。同样的问题不太可能发生在其他人身上,但为了完整起见,我在下面提供了解决方案:

func fetchAvailableProducts() 
    // wrong syntax (but able to compile):
    // let productIDs:NSSet = NSSet(objects: ["com.mysite.IAP1MONTH", "com.mysite.IAP6MONTH"])

    // correct syntax:
    let productIDs:NSSet = NSSet(objects: "com.mysite.IAP1MONTH", "com.mysite.IAP6MONTH")
    let productsRequest:SKProductsRequest = SKProductsRequest(productIdentifiers: productIDs);
    productsRequest.delegate = self;
    productsRequest.start();

【讨论】:

我犯了一个非常相似的错误。我在 NSSet objects init 中传递了一个 Array<String>,而不是使用 array init【参考方案2】:

Swift 1.2 引入了一个 Set 类,现在就这样做吧:

let pids: Set<NSObject> = ["com.mysite.thing", "com.mysite.otherThing"]
let productsRequest = SKProductsRequest(productIdentifiers: pids)

【讨论】:

以上是关于无法连接到 iTunes Store(获取应用内购买列表)的主要内容,如果未能解决你的问题,请参考以下文章

SKErrorDomain Code = 0“无法连接到iTunes Store”

如何修复应用内购买错误“交易错误:无法连接到 iTunes Store 代码 0”? [复制]

无法在 SKStoreProductViewController 中连接到 iTunes Store

IAP - 无法连接到iTunes Store - 仅在Apple审核期间

iPhone In-App Purchase Store Kit 错误 -1003“无法连接到 iTunes Store”

错误域=SKErrorDomain 代码=3 UserInfo=0x2a5a00“无法连接到 iTunes Store”