iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 无法让应用内购买工作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
好的,我正在撕裂我的头发.我正在开发一款免费的应用程序(带有广告和一些锁定的功能).应用内购买会移除广告并提供完整功能.

所以我设置了一个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’不再无效,现在看来它正在运行.

@H_404_102@

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: