StoreKit 不喜欢从 pList 加载的产品标识符

StoreKit doesn't like product identifiers loaded from a pList

过去 2 天我一直在努力让 StoreKit 正常工作。 我通过堆栈溢出发现了许多可能的故障和补救措施。我还没有在任何地方看到这个特殊问题。

第一个代码片段显示了我的项目中的工作原理。它通过适当的委托函数使用硬编码的产品 ID 字符串和 returns SKProduct。它适用于设备和模拟器 (iOS 8.4)。

private var request : SKProductsRequest?
func fetchProducts()
{       
    self.request = SKProductsRequest(productIdentifiers: Set(["TestProductA","Test Product A"]))
    self.request?.delegate = self
    self.request?.start()
}

但是如果我使用从 plist 加载的相同产品 ID,那么它就不再起作用了。我立即得到典型的模糊错误 "cannot connect to store"。为什么这不起作用让我暂时不知所措。

func fetchProducts()
{
    if let productList = NSBundle.mainBundle().URLForResource("Products", withExtension: "plist"),
        let productIdentifiers = NSArray(contentsOfURL: productList) as? [String]
    {
        self.request = SKProductsRequest(productIdentifiers: Set(arrayLiteral: productIdentifiers))
        self.request?.delegate = self
        self.request?.start()
    }
}

找到解决方案。我不得不更改集合的创建方式。

self.request = SKProductsRequest(productIdentifiers: Set<String>(productIdentifiers))