gpt4 book ai didi

ios - SKProductsRequest 在 iOS 11 模拟器中不起作用

转载 作者:可可西里 更新时间:2023-11-01 03:14:04 25 4
gpt4 key购买 nike

在 iOS 模拟器中购买是众所周知的“不,这是不可能的”。但是,通过向用于在 iOS 11 之前工作的 SKProductsRequest 提供产品标识符来检索 SKProduct 信息。

SKProductsRequestDelegate 中,我收到以下错误:Error Domain=SSErrorDomain Code=0 "Cannot connect to iTunes Store"据我所知,当产品标识符错误或 Apple Sandbox 服务器出现故障时,就会发生这种情况。然而,情况并非如此,因为产品在 iOS 10 上加载正常..

我的产品获取实现与 Apple guides 中的几乎相同

还有其他人遇到过这种情况或找到了解决方案吗?

当应用程序在物理设备上运行时,产品加载正常。我正在使用 Xcode 9.0。

最佳答案

这里也一样。如果您在失败时重复请求,请重试。无数次重复后,它最终会退回产品。可能需要重复 10 次、50 次甚至超过 100 次。

这就是我的代码现在的样子:

- (void)inquireProducts {
_availableProducts = [NSMutableArray arrayWithCapacity:0];
NSURL *url = [[NSBundle mainBundle] URLForResource:@"productIds" withExtension:@"plist"];
knownProductIdentifiers = [NSArray arrayWithContentsOfURL:url];
if (knownProductIdentifiers && knownProductIdentifiers.count) {
// Keep a strong reference to the product request
productsRequest = [[SKProductsRequest alloc]initWithProductIdentifiers:[NSSet setWithArray:knownProductIdentifiers]];
productsRequest.delegate = self;
[productsRequest start];
}
}

#pragma mark SKProductsRequestDelegate method

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
for (SKProduct *product in response.products) {
[_availableProducts addObject:product];
}
productsRequest = nil;
[[NSNotificationCenter defaultCenter] postNotificationName:IAPPurchaseNotification object:self];
}

- (void)request:(SKRequest *)request didFailWithError:(NSError *)error {
if (request == productsRequest) {
static int count = 0;
NSLog(@"Request %@ failed on %d. attempt with error: %@", request, ++count, error);
productsRequest = nil;
// try again until we succeed
[self inquireProducts];
}
}

关于ios - SKProductsRequest 在 iOS 11 模拟器中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46303611/

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