为啥 SKStoreProductViewController loadProductWithParameters 不会在 iOS 8.0.2 上为 Apple App Testers 调用其 com
Posted
技术标签:
【中文标题】为啥 SKStoreProductViewController loadProductWithParameters 不会在 iOS 8.0.2 上为 Apple App Testers 调用其 completionBlock?【英文标题】:Why would SKStoreProductViewController loadProductWithParameters not call its completionBlock on iOS 8.0.2 for Apple App Testers?为什么 SKStoreProductViewController loadProductWithParameters 不会在 iOS 8.0.2 上为 Apple App Testers 调用其 completionBlock? 【发布时间】:2014-10-27 22:24:22 【问题描述】:Apple 拒绝了我最新的应用更新,因为他们的测试人员表示他们无法使用我的应用购买歌曲。特别是,看起来 SKStoreProductViewController loadProductWithParameters 从未在我的代码中调用它的 completionBlock。在开发过程中,一切对我来说都很好。
我错过了什么:
歌曲 ID 应该正确:我要求测试人员检查他们设备的 iTunes Store 所在的国家/地区是否与我用来从 iTunes API 获取 iTunes 歌曲 ID 的国家/地区相同(均为“美国”),所以 ID 应该可以正常工作 在调用 loadProductWithParameters 之前,我还检查了它们是否已连接到网络还能是什么?
【问题讨论】:
可能只是 ios8 SKStoreProductViewController 是有缺陷的废话。 8.1 大声笑尽管 Apple 测试团队从未明确确认过,但事实证明这个问题很可能是由于连接不良和/或设备内存不足。 【参考方案1】:如果您要查找的音乐项目在您所在国家/地区的 iTunes Store 中不可用,那么在 iOS8 上似乎永远不会调用 [SKStoreProductViewController loadProductWithParameters:completionBlock:]
的完成块。
就我个人而言,我会使用完成处理程序的error
来传达这一点,但我想永远不给你回电话是另一种表达方式。
至少您可以通过使用iTunes Search API 来查找您所在地区可用的商品或在不可用时采取不同的步骤来解决此问题。
【讨论】:
其实,不调用completionBlock应该被认为是苹果的一个bug…… 我同意,我认为 OP 是在讽刺。 我已经向 Applerdar://22127487
提交了错误报告
还没有修复。
我在现有应用程序(我的应用程序)的 appId 中得到了这种行为,但对于另一个(我的另一个应用程序)却没有。非常片状。引发错误的非常奇怪的方式。以上是关于为啥 SKStoreProductViewController loadProductWithParameters 不会在 iOS 8.0.2 上为 Apple App Testers 调用其 com的主要内容,如果未能解决你的问题,请参考以下文章
为啥 DataGridView 上的 DoubleBuffered 属性默认为 false,为啥它受到保护?