【发布时间】:2016-11-29 07:27:08
【问题描述】:
我正在使用 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
})
}
}
所以.....这就是问题所在:我得到 response.products null(数组中没有数据)所以请帮助我找到解决方案。您可以在代码中看到 cmets: // 问题在这里.. 我得到的计数为零.. 意味着 response.products 返回 null 数组
我通过 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.
还有
我还创建了 Sendbox 用户用于测试应用内购买。见下图:
我错过了什么吗?或者是什么错误?错误在哪里? 我想使用沙盒用户测试应用内购买
【问题讨论】:
-
你解决了吗?
-
是的@MaximShoustin ...请在下面查看我的答案。如果您面临同样的问题,我认为您缺少一些小部分。
标签: ios in-app-purchase swift3 app-store-connect sandbox