在iOS中的应用购买测试中

Gau*_*ami 3 itunesconnect sandbox in-app-purchase ios swift3

我正在使用Xcode 8.0,Swift 3.0并在我的iPad上测试应用程序.我想使用沙盒用户测试应用内购买.

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

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

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
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

所以.....那就是问题:我得到了响应.产品为null(数组中没有数据)所以请帮我找到解决方案.您可以在代码中看到注释://问题就在这里..我的计数是零.意味着response.products返回null ARRAY

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

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.
Run Code Online (Sandbox Code Playgroud)

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

我还创建了Sendbox用户来测试应用程序内购买.见下图:

用于应用内购买iOS itunes的Sendbox测试用户

我错过了什么?或者错误是什么?错误在哪里?我想使用沙盒用户测试应用内购买

Gau*_*ami 7

我修好了.有一点需要注意.见下文:

  • 确保您的开发者帐户执行了付费应用程序合同.见下图:
  • 在iTunes Connect上创建产品.
  • 实施应用内购买代码和配置设置.
  • 使用Distribution配置文件创建一个版本.
  • 在商店上传构建.将构建添加到当前版本.将应用程序内购买添加到iTunes Connect上的版本.
  • 然后尝试测试,如果仍然没有然后提交应用程序然后取消它.然后尝试在您的设备上测试.
  • 确保在使用沙盒用户进行测试时,您需要从设备设置中注册已登录的帐户,然后使用沙箱ID登录.
  • 一些截图可能会有所帮助.

在此输入图像描述

在此输入图像描述

在此输入图像描述

在此输入图像描述