无效的产品标识符:如何验证 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 上