在iOS的应用程序购买testing

我正在使用Xcode 8.0,Swift 3.0和在iPad上购买应用程序进行testing。 我想使用沙箱用户在应用程序购买testing。

设备的设置中没有添加帐户

问题是我没有得到产品列表响应产品请求代码。 请看我的代码:

let PRODUCT_ID_MY_PRODUCT = "com.company.ProjectName.MyProduct" // The ProducID in this code and ProducID on iTunes are the SAME. ✔️ override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) if productID == nil { productID = PRODUCT_ID_MY_PRODUCT } SKPaymentQueue.default().add(self) } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) startPurchases() } func startPurchases() { if (SKPaymentQueue.canMakePayments()) { let productIDs = NSSet(object: self.productID!) let productsRequest:SKProductsRequest = SKProductsRequest(productIdentifiers: productIDs as! Set<String>) productsRequest.delegate = self productsRequest.start() } } // Delegate Methods for SKProductsRequest func productsRequest (_ request: SKProductsRequest, didReceive response: SKProductsResponse) { let count : Int = response.products.count // THE PROBLEM IS HERE.. I AM GETTING COUNT IS ZERO.. MEANS response.products returning null ARRAY if (count>0) { let validProducts = response.products for aProduct in validProducts { print(aProduct.productIdentifier) } } else { DispatchQueue.main.async(execute: { UIAlertView(title: "Purchase !", message: "Product not available", delegate: nil, cancelButtonTitle: "OK").show() return }) } } 

所以…..这就是问题:我得到response.products null(数组中没有数据)所以请帮我find解决scheme。 你可以在代码中看到注释://问题在这里。我得到的计数是零..手段response.products返回null ARRAY

我通过iTunes Connect创build了产品。 你可以看到下面的图片。 所有产品都处于“准备提交”状态。

iTunes上有一些警告

 Your first In-App Purchase must be submitted with a new app version. Select it from the app's In-App Purchases section and click Submit. Once your binary has been uploaded and your first In-App Purchase has been submitted for review, additional In-App Purchases can be submitted using the table below. 

应用内购买iOS iTunes Connect准备提交状态

我还创build了Sendbox用户来testing应用内购买。 看到下面的图片:

Sendbox测试用户的应用程序内购买iOS的iTunes

我错过了什么? 或者是什么错误? 哪里错误? 我想使用沙箱用户在应用程序购买testing

我解决了这个问题 有一些需要注意的地方。 见下文:

  • 确保您的开发者帐户执行了付费应用程序合同。 见下图:
  • 在iTunes Connect上创build产品。
  • 实施应用内购买代码和configuration设置。
  • 创build一个分布式configuration文件。
  • 上传build立在商店。 将构build添加到当前版本。 在iTunes Connect上添加应用程序内购买版本。
  • 然后尝试testing,如果仍然没有提交应用程序一次,然后取消它。 然后尝试在您的设备上进行testing。
  • 确保在使用沙盒用户进行testing时,您需要通过设备设置从已经login的帐户注销,并使用沙盒ID进行login。
  • 一些截图可能会有所帮助。

在这里输入图像说明

在这里输入图像说明

在这里输入图像说明

在这里输入图像说明

请检查这些设置function – >应用程序内购买 – >设置为“开”,并在developer.apple.com – >启用应用程序内购买应用程序ID。

并请在设备上而不是模拟器上testing应用程序。

Xcode中 - >功能

developer.apple.com  - >启用应用内购买