无效的产品标识符:如何验证 iOS 沙盒环境

Posted

技术标签:

【中文标题】无效的产品标识符:如何验证 iOS 沙盒环境【英文标题】:Invalid Product Identifier: How do I verify iOS sandbox environment 【发布时间】:2013-10-21 22:32:41 【问题描述】:

试图弄清楚这一点并遵循 Apple 的文档。这是我所做的,希望有人能帮助指出我搞砸的地方。我的应用程序,我们称之为 MyApp,是 v1.1,在应用程序商店中出售。我创建了一个 99 美分的应用内非消耗品购买,第 1 层,产品 ID 我们称为 AdFree。从应用中删除广告的简单选项。

产品 ID:“AdFree”

App Bundle ID:“com.name.MyApp”

我已经为 ios 付费应用程序设置了我的银行/税务信息。

我创建了一个配置文件来测试这一点,使用明确的应用 ID:com.name.MyApp.AdFree - 如果产品 ID 是“AdFree”,我的明确应用 ID 是否应该是“com.name.MyApp.AdFree”还是只是“com.name.AdFree”?

我在我的项目 (Xcode) 中配置了代码签名以使用我创建和下载的新配置文件。

在我的手机上,我退出了 iTunes Store。我运行我的应用并尝试购买 AdFree,但我不断收到“AdFree”作为无效的产品标识符。

希望这里的人能指出我遗漏的东西或提示我一些其他相关问题。

代码方面,我有一个静态 NSString *productID = @"AdFree";设置并在购买无广告选项时执行以下操作:

NSSet *productSet = [NSSet setWithObjects:productID, nil];

SKProductsRequest *request = [[SKProductsRequest alloc]
        initWithProductIdentifiers:productSet];
request.delegate = self;
[request start];

此项目面向 iOS 7。

感谢您的宝贵时间...

【问题讨论】:

【参考方案1】:

好吧,在感到沮丧和旁观之后,我终于又开始工作了。我一直在遵循旧的建议,但最近没有发现任何帮助......直到上周五。我的问题是 iTunes Connect 所说的:

此应用内购买目前无法在沙盒环境中进行测试,因为您已选择通过 Apple 托管您的内容,但尚未交付您的内容。上传您的内容以在沙盒中测试此应用内购买。

所以我的产品请求返回无效。我阅读了有关必须上传应用程序二进制文件然后拒绝它(不要这样做)、添加 IAP 购买屏幕截图(不要这样做)、使用 IAP id 前面的应用程序 id 或只是名称的所有内容IAP 购买,而不是您的产品请求中的完整捆绑式 ID(不要这样做)。

这个post终于解决了我的问题。它只是链接到此guide,用于从 XCode 和 Application Loader 上传 IAP 购买内容。一旦我上传了我在 XCode 中构建的 IAP 内容,我的 IAP 状态就变成了“处理内容”。很多帖子说等待几个小时到一天不等。花了 3 天时间,但我的 IAP 终于转为“等待屏幕截图”,我的沙盒构建现在运行良好。

我的部分问题是尝试遵循 Apple 的文档。几乎每个帖子都链接到Technical Note TN2259,这应该不错。但是,该文档完整跳过了有关在 XCode 中启动新项目以构建您的 IAP 购买内容并在您使用 Apple 托管 IAP 时使用 Application Loader 上传的部分。

【讨论】:

天啊!最后我发现你的问题和我的完全一样!谢谢!但是,我的情况是,实际上,我不小心将“Host content with apple”按钮点击为“YES”,我真的不打算添加内容。只是误操作造成的错误。那么在我的情况下,我怎样才能让我的产品 ID 恢复正常呢?是否可以取消 "host content with apple" 并且不上传任何内容?

以上是关于无效的产品标识符:如何验证 iOS 沙盒环境的主要内容,如果未能解决你的问题,请参考以下文章

StoreKit 返回无效的产品标识符 - 仅在真正的 App Store 上,仅在 iOS7 上

在 xcode 版本 10.2 中为产品类型“应用程序”签署二进制文件时,空标识无效

swift 4 中的应用内购买无效的产品标识符

在应用程序购买“无效的产品标识符”错误消息

IAP 产品标识符无效

在 App Purchase 中,30% 的产品标识符无效,为啥?