gpt4 book ai didi

iOS 应用内购买 - 未收到任何产品

转载 作者:技术小花猫 更新时间:2023-10-29 10:13:26 24 4
gpt4 key购买 nike

我正在尝试按照此处描述的技术将应用内购买添加到我的应用中:

Introduction to In-App Purchases in iOS 6 Tutorial

我已经通过 itunes connect 添加了一个产品,它的 id 设置如下:

com.mycompany.myapp.myproduct1

bundle id(在 p-list 和应用商店中指定)设置如下:

 com.mycompany.myapp

我正在使用教程中的辅助类 IAHelper 来处理购买功能(相关代码如下所示)。它还有一个子类,主要用于将应用内产品的 ID 添加到 IAHelper 的产品 ID 数组中。

为了测试代码,我创建了一个标记为“show products”的按钮,它调用了这个方法:

- (IBAction) showProducts {

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(productsLoaded:) name:kProductsLoadedNotification object:nil];

Reachability *reach = [Reachability reachabilityForInternetConnection];
NetworkStatus netStatus = [reach currentReachabilityStatus];
if (netStatus == NotReachable) {
NSLog(@"No internet connection!");
} else {
if ([InAppMyAppAPHelper sharedHelper].products == nil) {


// here's where it calls the helper class method to request the products
[[InAppMyAppAPHelper sharedHelper] requestProducts];

self.hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];
_hud.labelText = @"Loading vocabulary...";
[self performSelector:@selector(timeout:) withObject:nil afterDelay:30.0];

}
}

}

这是从上面调用的 iTunesConnect 请求产品的方法:

- (void)requestProducts {

self.request = [[[SKProductsRequest alloc] initWithProductIdentifiers:_productIdentifiers] autorelease];
_request.delegate = self;
[_request start];

}

(请注意,以“_”开头的变量是指每个综合语句中没有下划线的同名实际变量)

最后,这是在收到响应时得到通知的方法(在 IAHelper 中):

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {

NSLog(@"IAHelper, received products results...");

self.products = response.products;
self.request = nil;

// Here's the loop to list the products received
for (id product in _products){
NSLog(@"IAHelper, received product is: %@", product);
}


[[NSNotificationCenter defaultCenter] postNotificationName:kProductsLoadedNotification object:_products];
}

在上面,日志语句显示调用了方法,但是打印接收到的产品的循环没有列出任何内容。

所以它看起来好像没有在 iTunes 连接中找到该产品。然而,我在那里设置了一个产品,产品的 id 与 bundle id 相同,加上产品标识符,即

bundle id:  com.mycompany.myapp
product id: com.mycompany.myapp.product1

我已经检查过好几次了。

我注意到 iTunes 将广告产品的状态列为“准备提交”。是否需要额外的步骤才能使其可用?

总的来说,我做错了什么?

最佳答案

我遇到了完全相似的问题。以下是阅读本文后需要处理/检查的一些步骤 technical note来自苹果:

  • 创建唯一的 App ID
  • 为此应用 ID 启用应用内购买
  • 在您的设备上生成并安装新的配置文件
  • 在 Xcode 中更新包 ID 和代码签名配置文件
  • 检查您项目的 .plist Bundle ID 是否与您的 App ID 匹配
  • 完成您的契约(Contract)、税务和银行信息。您需要一份有效的契约(Contract)

正如官方文档所述,不需要提交二进制文件,也不需要提交应用内购买的屏幕截图。我在各种博客上看到了很多关于此的误导性信息。

检查您是否已解决此列表中的每个问题后,删除您的应用并重新安装。

我这边基本上遗漏了两件事:正确设置我的 ios 付费应用契约(Contract),并且我没有在我的设备上安装新的配置文件。可能那是你的问题?

关于iOS 应用内购买 - 未收到任何产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7947805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com