调用请求时清除字符串集:Swift应用内购买

调用请求时清除字符串集:Swift应用内购买,swift,Swift,我试图在游戏中实现应用内购买,但当我将可用产品集发送到我的产品请求功能时,该集被清除 这是用于禁用ads的小额购买。启动请求的按钮起作用,fetchAvailableProducts中的ProductIdentifier包含正确的产品,但productsRequest中的集合为空 func fetchAvailableProducts(){ // Put here your IAP Products ID's let productIdentifiers = N

我试图在游戏中实现应用内购买,但当我将可用产品集发送到我的产品请求功能时,该集被清除

这是用于禁用ads的小额购买。启动请求的按钮起作用,fetchAvailableProducts中的ProductIdentifier包含正确的产品,但productsRequest中的集合为空

func fetchAvailableProducts(){

        // Put here your IAP Products ID's
        let productIdentifiers = NSSet(objects: NON_CONSUMABLE_PURCHASE_PRODUCT_ID)

        print(productIdentifiers as! Set<String>)

        productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers as! Set<String>)
        productsRequest.delegate = self
        productsRequest.start()    
}


extension IAPHandler: SKProductsRequestDelegate, SKPaymentTransactionObserver{
    // MARK: - REQUEST IAP PRODUCTS
    func productsRequest (_ request:SKProductsRequest, didReceive response:SKProductsResponse) {

        if (response.products.count > 0) {
            iapProducts = response.products
            for product in iapProducts{
                let numberFormatter = NumberFormatter()
                numberFormatter.formatterBehavior = .behavior10_4
                numberFormatter.numberStyle = .currency
                numberFormatter.locale = product.priceLocale
                let price1Str = numberFormatter.string(from: product.price)
                print(product.localizedDescription + "\nfor just \(price1Str!)")
            }
        } else {
            print("products list is empty")
        }
    }
func fetchAvailableProducts(){
//把你的IAP产品ID放在这里
让productIdentifiers=NSSet(对象:非消耗品\采购\产品\ ID)
打印(产品标识符为!集)
productsRequest=SKProductsRequest(productIdentifiers:productIdentifiers as!Set)
productsRequest.delegate=self
productsRequest.start()
}
扩展IAPHandler:SKProductsRequestDelegate,SKPaymentTransactionObserver{
//马克:-申请IAP产品
func productsRequest(uRequest:SKProductsRequest,didReceive response:SKProductsResponse){
如果(response.products.count>0){
iapProducts=response.products
对于iapProducts中的产品{
设numberFormatter=numberFormatter()
numberFormatter.formatterBehavior=.behavior10\u 4
numberFormatter.numberStyle=.currency
numberFormatter.locale=product.priceLocale
让price1Str=numberFormatter.string(from:product.price)
打印(product.localizedDescription+“\n仅适用于\(price1Str!)”)
}
}否则{
打印(“产品列表为空”)
}
}
控制台输出为:
[“com.me.myapp.noAds”]
产品列表为空

我已检查协议,在我的应用中打开应用内购买,并将应用内购买添加到app store connect:


请检查您是否已完成以下所有操作

  • 在App Store Connect中创建应用内购买产品
    应用商店连接->功能->应用内购买
  • 项目配置
    项目->选择目标->功能选项卡->打开应用内购买
  • 在apple开发者控制台中检查协议

  • 你在app store connect中添加了任何产品吗?你确定产品ID正确吗?app store似乎不知道你的产品。是的,我刚刚添加了app store connect的屏幕截图。我已经完成了这些步骤中的每一步。我将在问题中添加每个步骤的屏幕截图。仍然无效。我必须完成它他同意了,现在可以了,谢谢