В приложении Покупка response.products пусто - PullRequest
3 голосов
/ 11 июля 2011

Я знаю, что об этом спрашивали раньше: iPhone в приложении Покупка - response.products все еще пусто?

но я также пытаюсь осуществить покупку в приложении, и мой response.products пуст. Моя ситуация:

Я загрузил и отклонил свой двоичный файл один раз.

Но затем я снова возвращаю статус в ожидание загрузки. (Имеет ли это значение?)

Статус всех моих покупок в приложении: «Готов к отправке».

Мой производственный пользователь вышел из системы. Тестовый пользователь еще не вошел в систему.

-(void) requestProductData{
    SKProductsRequest *productRequest= [[SKProductsRequest alloc] 
                                 initWithProductIdentifiers:[NSSet setWithObjects:
                                                             @"com.mydomain.myapp.Pack1", 
                                                             @"com.mydomain.myapp.Pack2",
                                                             @"com.mydomain.myapp.Pack3",nil]];

productRequest.delegate = self;
[productRequest start];
}

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

NSArray *myProducts = response.products; 

NSLog(@"%d",[myProducts count]);//this prints 0
for(SKProduct * product in myProducts) {
    [products addObject:product];
}
[request autorelease]; 


}

    in my viewdidload:


if([SKPaymentQueue canMakePayments]) {
        NSLog(@"IN-APP:can make payments");
    }
    else {
        NSLog(@"IN-APP:can't make payments");
    }

    /*load transaction history to see if the user already bought some packs*/
    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
    products = [[NSMutableArray alloc] init];
    NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString * path = [documentsDirectory stringByAppendingPathComponent: @"history.plist"];
    self.transactionHistory = [NSMutableArray arrayWithContentsOfFile: path];

    if(!transactionHistory) { 
        NSMutableArray *_transactionHistory = [[NSMutableArray alloc] init]; 
        self.transactionHistory = _transactionHistory;
        [_transactionHistory release];
    } 
    //some other initializations here
    [self requestProductData];

for (NSString *invalidProductId in response.invalidProductIdentifiers)
    {
        NSLog(@"Invalid product id: %@" , invalidProductId);
    }
//this returns 3 of my product id's

1 Ответ

8 голосов
/ 11 июля 2011

У вас есть недопустимая ошибка продукта, поэтому проверьте свою конфигурацию с этим разделом: Недопустимые идентификаторы продукта

  • Включили ли вы покупки внутри приложения для своего идентификатора приложения?
  • Вы проверили разрешение на продажу для своего продукта?
  • Вы отправили (и, возможно, отклонили) бинарный файл приложения?
  • Идентификатор пакета вашего .plist вашего проекта соответствует вашемуИдентификатор приложения?
  • Вы сгенерировали и установили новый профиль обеспечения для нового идентификатора приложения?
  • Вы настроили свой проект для кодирования с использованием этого нового профиля обеспечения?
  • Вы разрабатываете для iPhone OS 3.0 или выше?
  • Используете ли вы полный идентификатор продукта при создании SKProductRequest?
  • Вы ожидали несколько часов с момента добавления вашего продукта в iTunes Connect?
  • Активны ли ваши банковские реквизиты в iTunes Connect?
  • Вы пытались удалить приложение с устройства и переустановить?
  • Является ли ваше устройство взломанным?Если это так, вам нужно отменить джейлбрейк для работы IAP.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...