【问题标题】:Cannot connect to iTunes Store (to get in-app purchase listing)无法连接到 iTunes Store(获取应用内购买列表)
【发布时间】: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”。

感谢您的帮助!

【问题讨论】:

    标签: ios in-app-purchase 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)
    

    【讨论】:

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