如果有托管内容,IAP 会失败,但如果被视为正常的非消耗品,则可以正常工作
Posted
技术标签:
【中文标题】如果有托管内容,IAP 会失败,但如果被视为正常的非消耗品,则可以正常工作【英文标题】:IAP fails if has hosted content but works fine if treated as normal non-consumable 【发布时间】:2013-06-24 05:08:58 【问题描述】:我正在尝试在 ios 6.0 上实现托管内容的 IAP。
没有贴一堆代码,我的代码来源于raywenderlich教程http://www.raywenderlich.com/21081/introduction-to-in-app-purchases-in-ios-6-tutorial 和http://xinsight.ca/blog/iap-content-download-in-ios6/。此代码适用于购买普通的非消耗品。
我创建了一个包含托管内容的新 IAP 项目,并通过 xcode 上传了它(使用上面第二个链接中描述的方法)。
当我去购买该物品时,它会显示警报,然后我点击购买。此后不久,我的交易失败了,下面调用了 SKPaymentTransactionStateFailed 案例:
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
for (SKPaymentTransaction * transaction in transactions)
switch (transaction.transactionState)
case SKPaymentTransactionStatePurchased:
if (transaction.downloads)
[[SKPaymentQueue defaultQueue] startDownloads:transaction.downloads];
else
// unlock features
//[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
[self completeTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
if (transaction.downloads)
NSLog(@"transaction failed... but found downloads");
[self failedTransaction:transaction];
break;
case SKPaymentTransactionStateRestored:
if (transaction.downloads)
[[SKPaymentQueue defaultQueue] startDownloads:transaction.downloads];
else
// unlock features
//[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
[self restoreTransaction:transaction];
break;
default:
break;
transaction.error.code 似乎是 SKErrorPaymentCancelled。
如果我在 iTunesConnect 中将此 IAP 项目的性质更改为没有托管内容,那么购买就可以完成。我不知道是什么原因造成的。
任何对 IAP 托管内容有经验的人都知道我应该注意的任何陷阱吗?可能与我创建托管内容包的方式有关吗?创建包时,我只是将所有内容都放在了 xcode 中的 Supporting Files 组中 - 在 finder 中检查存档包显示内容为:
/dSYMs
/Info.plist
/Products/Library/InAppPurchaseContent/ProductIDName/Contents/#content here#
/Products/Library/InAppPurchaseContent/ProductIDName/ContentInfo.plist
这是正确的吗?上传后显示“等待截图”,我理解这是正确的。
【问题讨论】:
【参考方案1】:我也遇到了同样的问题,对于托管在 Apple 服务器上的所有 IAP 内容,我也收到了 SKErrorPaymentCancelled 错误。 这个问题似乎来自目前正在处理它的 Apple。
查看那里了解更多更新:
https://devforums.apple.com/message/839428#839428
iPhone storekit sandbox stopped working
【讨论】:
即将来到这里并用同一个帖子结束问题。看来他们现在已经修好了。干杯。以上是关于如果有托管内容,IAP 会失败,但如果被视为正常的非消耗品,则可以正常工作的主要内容,如果未能解决你的问题,请参考以下文章