gpt4 book ai didi

ios - SKProductsrequest 在 Swift 中不返回任何内容

转载 作者:搜寻专家 更新时间:2023-10-31 22:15:50 28 4
gpt4 key购买 nike

我已经用谷歌搜索这个问题几个小时了。我尝试过类似的东西:

  1. 确认 Bundle Identifier 和 product id 绝对正确
  2. 在模拟器和真实设备上删除并重新安装应用
  3. 我已经尝试了“productID”和“com.company.project.productID”
  4. iTunes connect 中的 IAP 也应该正确配置

我唯一不确定的是我没有在我的 iTunes 连接中填写银行和税务信息。实际上,我只是填写了银行信息,但需要 24 小时才能更新。

我的代码是这样的

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

// Set IAPS
if(SKPaymentQueue.canMakePayments()) {
println("IAP is enabled, loading")
var productID:NSSet = NSSet(objects: "ProductID")
var request: SKProductsRequest = SKProductsRequest(productIdentifiers: productID as Set<NSObject>)
request.delegate = self
request.start()
} else {
println("please enable IAPS")
}
}

func productsRequest(request: SKProductsRequest!, didReceiveResponse response: SKProductsResponse!) {
println("product request")
var myProduct = response.products

for product in myProduct {
println("product added")
println(product.productIdentifier)
println(product.localizedTitle)
println(product.localizedDescription)
println(product.price)

list.append(product as! SKProduct)
}
}

此代码来自示例,它在我的模拟器中运行良好。但是,当我用自己的产品 ID 替换产品 ID(当然还有 bundleID)时,SKProductsrequest 变得什么都不返回。

我不知道为什么,希望有人能帮助我。谢谢!

最佳答案

我整个星期都遇到这个问题 - 无论我尝试如何明智地编写代码并调整我的构建和配置设置,我都没有得到任何产品。

最终为我修复的是将我的应用程序 xcode 的包 ID 从 company.appname 更改为至 com.company.appname .同时,您想引用格式为 com.company.appname.thingforpurchase1 的应用内购买 ID等等

为了解决这个问题,我重新进行了在项目中设置自动配置和build设置的过程,并且我再次将我的开发者帐户重新添加到 xcode。这样做之后,上面的语法对我有用。请注意,在 iTunes 连接上,我的应用程序的捆绑 ID 仍指定为 company.appname , 但由于某些原因在 xcode 中它需要 com.也在开始。

还有一件事我不得不对 Swift 2.0 和 Swift 1.x 做不同的事情——编译器将不再接受产品 ID 不再是 NSSet。 - 相反,请求似乎希望将标识符作为 Set<String> 给出- 请参阅下面的示例。

请注意,此解决方案是使用 swift 2.0 和 xcode 7 beta 开发并在其中运行的。

例如:

func requestProductInfo() {
print("about to fetch product info")
if SKPaymentQueue.canMakePayments() {
let request = SKProductsRequest(productIdentifiers:
Set(productIDs))

let productIdentifiers: NSSet = NSSet(array: productIDs) // NSset might need to be mutable
let productRequest : SKProductsRequest = SKProductsRequest(productIdentifiers: productIdentifiers as! Set<String>)

//we set our class as its delegate (so we can handle the response)& trigger the request.
productRequest.delegate = self
productRequest.start()
print("Fetching Products");
}
else {
print("can't make purchases")
}
}

关于ios - SKProductsrequest 在 Swift 中不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30028106/

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