gpt4 book ai didi

ios - SKProductsRequest 返回 0 个产品

转载 作者:可可西里 更新时间:2023-11-01 03:18:21 26 4
gpt4 key购买 nike

我正在尝试进行 IAP,但出于某种原因,我的 SKProductsRequest 返回 0 个产品。

-测试产品已添加到iTunes连接正常

-填写银行和税务信息

-产品的 bundle id 与 app bundle id 匹配

-我已经等了两天才通过服务器处理它

我使用这个 youtube 教程来构建应用程序: https://www.youtube.com/watch?v=zRrs7O5yjKI

代码如下:

import UIKit
import StoreKit

class ViewController: UIViewController, SKProductsRequestDelegate, SKPaymentTransactionObserver {

@IBOutlet weak var lblAd: UILabel!
@IBOutlet weak var lblCoinAmount: UILabel!

@IBOutlet weak var outRemoveAds: UIButton!
@IBOutlet weak var outAddCoins: UIButton!
@IBOutlet weak var outRestorePurchases: UIButton!



var coins = 50

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
outRemoveAds.isEnabled = false
outAddCoins.isEnabled = false
outRestorePurchases.isEnabled = false

if(SKPaymentQueue.canMakePayments()) {
print("IAP is enabled, loading")
let productID: NSSet = NSSet(objects: "com.IAPTesters.10Dolla", "com.IAPTesters.RemoveAds")
let request: SKProductsRequest = SKProductsRequest(productIdentifiers: productID as! Set<String>)
request.delegate = self
request.start()
} else {
print("please enable IAPS")
}
}
@IBAction func btnRemoveAds(_ sender: Any) {
print("rem ads")
for product in list {
let prodID = product.productIdentifier
if(prodID == "com.IAPTesters.RemoveAds") {
p = product
buyProduct()
}
}
}

@IBAction func btnAddCoins(_ sender: Any) {
for product in list {
let prodID = product.productIdentifier
if(prodID == "com.IAPTesters.10Dolla") {
p = product
buyProduct()
}
}
}

@IBAction func btnRestorePurchases(_ sender: Any) {
SKPaymentQueue.default().add(self)
SKPaymentQueue.default().restoreCompletedTransactions()
}

func buyProduct() {
print("buy " + p.productIdentifier)
let pay = SKPayment(product: p)
SKPaymentQueue.default().add(self)
SKPaymentQueue.default().add(pay as SKPayment)
}

func removeAds() {
lblAd.removeFromSuperview()
}

func addCoins() {
coins += 50
lblCoinAmount.text = "\(coins)"
}

var list = [SKProduct]()
var p = SKProduct()

func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
print("product request")
let myProduct = response.products
for product in myProduct {
print("product added")
print(product.productIdentifier)
print(product.localizedTitle)
print(product.localizedDescription)
print(product.price)

list.append(product)
}

outRemoveAds.isEnabled = true
outAddCoins.isEnabled = true
outRestorePurchases.isEnabled = true
}

func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {
print("transactions restored")
for transaction in queue.transactions {
let t: SKPaymentTransaction = transaction
let prodID = t.payment.productIdentifier as String

switch prodID {
case "com.IAPTesters.RemoveAds":
print("remove ads")
removeAds()
case "com.IAPTesters.10Dolla":
print("add coins to account")
addCoins()
default:
print("IAP not found")
}
}
}

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
print("add payment")

for transaction: AnyObject in transactions {
let trans = transaction as! SKPaymentTransaction
print(trans.error)
switch trans.transactionState {
case .purchased:
print("buy ok, unlock IAP HERE")
print(p.productIdentifier)

let prodID = p.productIdentifier
switch prodID {
case "com.IAPTesters.RemoveAds":
print("remove ads")
removeAds()
case "com.IAPTesters.10Dolla":
print("add coins to account")
addCoins()
default:
print("IAP not found")
}
queue.finishTransaction(trans)
case .failed:
print("buy error")
queue.finishTransaction(trans)
break
default:
print("Default")
break
}
}
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}

当您运行应用程序时,它会打印“IAP is enabled, loading”和“product request”,但不会打印其他内容。

如果我在 productsRequest 函数中打印 response.invalidProductIdentifiers,它将返回我的产品:["com.IAPTesters.RemoveAds", "com.IAPTesters.10Dolla"]

在此先感谢您的帮助

最佳答案

原来我的银行和税务信息填写不正确。我重新装满它,然后我不得不等待大约 30 分钟才能再次工作。现在一切正常!感谢大家的帮助

关于ios - SKProductsRequest 返回 0 个产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48070301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com