iOS in app purchase - no products received

Я пытаюсь добавить встроенную покупку в мое приложение, следуя методам, описанным здесь :

Введение в встроенные покупки в iOS 6 Учебник

Я добавил продукт через itunes connect, у которого есть id, установленный следующим образом:

com.mycompany.myapp.myproduct1

Идентификатор пакета (указанный в списке p-list, а также в магазине приложений) установлен следующим образом:

 com.mycompany.myapp

Я использую класс-помощник из учебника, IAHelper, для обработки функциональности покупки (соответствующий код показан ниже). У него также есть подкласс, который используется для добавления идентификатора продукта (продуктов) в массив идентификаторов продуктов IAHelper.

Чтобы протестировать код, я создал кнопку с надписью "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];

}

(Обратите внимание, что переменные, которым предшествует "_", относятся к фактическим одноименным переменным без подчеркивания в нескольких операторах synthesize)

Наконец, это метод (в 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 connect. Тем не менее, я установил там продукт, и id продукта совпадает с id пакета, плюс идентификатор продукта, т.е.

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

Я проверял это несколько раз.

Я заметил, что в iTunes статус рекламного продукта указан как "готов к отправке". Есть ли дополнительный шаг, который я должен сделать, чтобы сделать его доступным?

В целом, что я делаю неправильно?

15
задан Umair M 28 July 2015 в 05:11
поделиться