ios – 无法让应用内购买工作

ios – 无法让应用内购买工作,第1张

概述好的,我正在撕裂我的头发.我正在开发一款免费的应用程序(带有广告和一些锁定的功能).应用内购买会移除广告并提供完整功能. 所以我设置了一个SKProductsRequest,将它传递给我的产品ID(com.mydomain.Myapp.fullversion)并执行’start’.这不会失败并继续调用productsRequest:didReceiveResponse:,其中NSLog显示resp 好的,我正在撕裂我的头发.我正在开发一款免费的应用程序(带有广告和一些锁定的功能).应用内购买会移除广告并提供完整功能.

所以我设置了一个SKProductsRequest,将它传递给我的产品ID(com.mydomain.Myapp.fullversion)并执行’start’.这不会失败并继续调用productsRequest:dIDReceiveResponse:,其中NSLog显示response.products.count等于零 – 所以问题!

所以,首先是愚蠢的问题.

Q1.在我的测试设备上通过Xcode运行我的应用程序时,测试设备是否需要连接到Internet(例如,无线开启),或者运行Xcode的Mac是否足以连接到Internet? (已回答:您需要在测试设备上建立连接).

问2.如何让这个工作

我检查了以下所有内容:

您是否为应用程序ID启用了应用内购买?:在应用程序ID下的配置门户中,我启用了“bundle_seed_ID.com.mydomain.Myapp”和“应用程序内购买”.

你有没有为你的产品检查过Cleared for Sale?:在iTunes Connect中我创建了我的应用程序内购买’com.mydomain.Myapp.fullversion’,它已被清除出售.

您的项目的.pList捆绑ID是否与您的App ID匹配?:是的,它设置为’com.mydomain.Myapp’.

您是否为新的App ID生成并安装了新的配置文件?:是的我已经为’com.mydomain.Myapp’创建并安装了PP.

您是否已使用此新配置文件将项目配置为代码签名?:我只在“代码签名身份”(而不是CS权利,CS资源规则路径和其他CS标志)下有条目.它已由自动配置文件选择器设置> IPhone Developer并将自己与Myapp匹配,并设置为DeBUG>任何SDK和版本>任何iOS SDK.

您在制作SKProductRequest时是否使用完整的产品ID?:是的,我正在使用’com.mydomain.Myapp.fullversion’.

自从将产品添加到iTunes Connect后,您有几个小时的时间吗?:是的,我等了24个小时.

您的银行详细信息是否在iTunes Connect上有效?:是的.

您是否尝试从设备中删除应用并重新安装?:很多次.

观察:在测试设备上,我没有登录到iTunes& App Stores’当我在测试设备上从Xcode运行应用程序时,它没有让我登录(我在iTunes Connect中设置了测试用户并准备使用).所以我的应用程序运行,调用从SKProductRequest开始,但从未提示我登录到’iTunes& App Stores’.

提前谢谢了.我希望有人可以帮助我让应用内购买工作.拜伦.

更新1:这里有一些代码虽然我不知道有多少会有所帮助,正如我上面说的那样,它在productsRequest失败了:dIDReceiveResponse:没有返回任何产品.

首先我打电话:

[[MyappIAPHelper sharedInstance] requestProductsWithCompletionHandler:^(BOol success,NSArray *products)     {         if (success)         {             NSLog(@"SUCCESS - WE HAVE PRODUCTS");             _products = products;             NSLog(@"_products.count = %d",_products.count);         }         else         {             if(products == nil)             {                 NSLog(@"Failed - WE HAVE NO PRODUCTS");             }         }     }];

代码如下:

- (voID)requestProductsWithCompletionHandler:(RequestProductsCompletionHandler)completionHandler{    _completionHandler = [completionHandler copy];    NSLog(@"IAPHelper,requestProductsWithCompletionHandler{},_productIDentifIErs = %@",[_productIDentifIErs anyObject]);    _productsRequest = [[SKProductsRequest alloc] initWithProductIDentifIErs:_productIDentifIErs];    _productsRequest.delegate = self;    [_productsRequest start];}

‘start’不会失败并继续调用productsRequest:dIDReceiveResponse:

- (voID)productsRequest:(SKProductsRequest *)request dIDReceiveResponse:(SKProductsResponse *)response

{

NSLog(@"Loading List of products...");NSLog(@"iAPHelper,productRequest:dIDRecIEveResponse{},Products count = %d",response.products.count);

一旦你进入这个函数,它就失败了,因为response.products.count等于零.

我刚刚将以下调试代码添加到productRequest:dIDRecIEveResponse {}

for (Nsstring *invalIDProductID in response.invalIDProductIDentifIErs){    NSLog(@"InvalID product ID: %@",invalIDProductID);}

并且它声明’com.mydomain.Myapp.fullversion’无效.

更新2:现在这已经不是一个笑话 – 仍然无法正常工作!

我完全按照http://developer.apple.com/library/ios/#technotes/tn2259/_index.html.我认为问题可能是在创建我的应用内购买时我上传了一个屏幕截图 – 但我通过删除应用内购买进行了纠正,重新创建它以确保它处于’等待屏幕截图’的状态根据文件.我现在已经等了12个多小时才能重新创建应用内购买,以便通过Apple的服务器进行过滤.我从测试设备中删除了该应用.检查我是否在测试设备上退出了商店.重新启动我的测试设备.在Xcode中执行’Clean’并重新启动Xcode.从Xcode跑出应用并猜猜是什么?无效的产品标识!!!!帮助,请任何人,我失去理智!!!!!

解决方法 问题解决了

在提出TSI之后,Apple代表终于找到了我的问题.

在iTunes Connect中查看我的应用程序,它声明它的捆绑ID为“Myapp”.供应门户中启用了应用内购买的应用ID是’bundle_seed_ID.com.mydomain.Myapp’.不明显的,或者至少对我来说,这个App ID由一个Bundle ID组成,它必须与iTunes Connect中应用程序的Bundle ID相匹配.

我在Provisioning Portal中创建的第一个App ID是一个通配符.当您完成创建新应用程序的过程时,它希望您输入从下拉列表中选择的Bundle ID,该下拉列表从Provisioning Portal中的App ID填充.如果您选择具有通配符的Bundle ID,则会请求Bundle ID后缀,这是我输入“Myapp”的位置,然后“Myapp”最终成为您的Bundle ID.有点奇怪,因为我认为这只是一个后缀.

后来(几个月后),当我决定实施应用程序内购买时,我会发现通配符App ID不能与推送通知或应用程序内购买一起使用.因此,我会在Provisioning Portal中创建一个新的App ID,按照提示声明“建议的做法是对App ID的Bundle IDentifIEr部分使用反向域名样式字符串” – 因此我输入了’ com.mydomain.Myapp”.我不知道我为App ID创建的Bundle ID必须与之前在iTunes Connect中创建的应用程序的Bundle ID相匹配.

我现在在Provisioning Portal中创建了一个新的应用程序ID“bundle_seed_ID.Myapp”,瞧,我的产品ID’com.mydomain.Myapp.fullversion’不再无效,现在看来它正在运行.

总结

以上是内存溢出为你收集整理的ios – 无法让应用内购买工作全部内容,希望文章能够帮你解决ios – 无法让应用内购买工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1056627.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存