我想使用服务器端验证我的应用内购买。所以我使用以下代码:
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
for (SKPaymentTransaction * transaction in transactions) {
switch (transaction.transactionState)
{
case SKPaymentTransactionStatePurchased:
{
NSData *reciptData = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]];
if(reciptData) {
NSDictionary *parameters = @{@"receipt_data" : [reciptData base64EncodedStringWithOptions:0]};//App crashes here -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]
}
}
break;
default:
break;
}
};
}
最奇怪的是,应用程序在一台装有 iOS 8.0.2 的 iPad 上崩溃,而在另一台装有相同 iOS 版本的 iPad 上却没有崩溃。
最糟糕的是,我无法访问应用程序崩溃的设备。
据我了解- base64EncodedStringWithOptions:
退货nil
,但我不知道为什么。
谁能帮我?