从SKProductsRequest initWithProductIdentifiers清空自动续订iOS应用程序内购买

nic*_*las 7 in-app-purchase ios react-native

我已经制作了iOS应用内自动续订订阅,现在我试图让用户在React-Native应用中购买它.

我发现了react-native-in-app-utils,但似乎无法加载我的产品.我在iTunes连接中有3个"产品"(自动续订订阅),但尝试加载它们:

var products = [
  'com.xxxx.app.monthly',
  'com.xxxx.app.6months',
  'com.xxxx.app.year',
];

InAppUtils.loadProducts(products, (error, products) => {
  console.log('products:', products);
});
Run Code Online (Sandbox Code Playgroud)

只记录"产品:[]".

挖得更深一些,我添加了一些额外的记录到Objective-C代码做查询,它看起来像:

NSLog(@"loading products %@", productIdentifiers);
if([SKPaymentQueue canMakePayments]){
    SKProductsRequest *productsRequest = [[SKProductsRequest alloc]
                                          initWithProductIdentifiers:[NSSet setWithArray:productIdentifiers]];
    productsRequest.delegate = self;
    _callbacks[RCTKeyForInstance(productsRequest)] = callback;
    [productsRequest start];
} else {
    callback(@[@"not_available"]);
}
Run Code Online (Sandbox Code Playgroud)

然后在回调中:

NSLog(@"products response %@", response.products);
products = [NSMutableArray arrayWithArray:response.products];
NSMutableArray *productsArrayForJS = [NSMutableArray array];     
for(SKProduct *item in response.products) {
    NSDictionary *product = @{
    ...
Run Code Online (Sandbox Code Playgroud)

这将使用我的产品ID记录"加载产品",如预期的那样.但随后"产品响应()"......空洞的回应.

这些产品在iTunes中列为"准备提交".它们已添加到应用内购买下的应用信息中.是什么赋予了?为什么不出现产品?

nic*_*las 0

看起来这是一个管理问题,而不是技术问题。项目经理尚未签署付费应用程序协议。