В песочнице покупки приложения - PullRequest
4 голосов
/ 16 августа 2011

В настоящее время я занимаюсь разработкой приложения для iOS, которое требует In App Purchase.

Как и во многих руководствах (например: http://www.raywenderlich.com/2797/introduction-to-in-app-purchases).), я создал новое приложение в iTunesConnect, загрузил двоичный файл и отклонил его. После этого я добавил несколько продуктов для покупки приложений. На следующем шаге я добавилStorekit для моего проекта Xcode, и после этого я написал этот код в своем UIViewController:

- (void)buyPressed
{
    SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObjects: @"com.mycompany.appliaction_name.levelpack",nil]];
    request.delegate = self;
    [request start];
    NSLog(@"request started");
}

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
    NSArray *products = response.products;
    for (int i=0; i<[products count]; i++) 
    {
        SKProduct *proUpgradeProduct = [products objectAtIndex:i];
        if (proUpgradeProduct)
        {
            NSLog(@"Valid product id: %@" , proUpgradeProduct.price);
            NSLog(@"Product title: %@" , proUpgradeProduct.localizedTitle);
            NSLog(@"Product description: %@" , proUpgradeProduct.localizedDescription);
            NSLog(@"Product price: %@" , proUpgradeProduct.price);
            NSLog(@"Product id: %@" , proUpgradeProduct.productIdentifier);
        }
    }

    for (NSString *invalidProductId in response.invalidProductIdentifiers)
    {
        NSLog(@"Invalid product id: %@" , invalidProductId);
        UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Apple connection error!" message:nil delegate:self cancelButtonTitle:@"CLOSE" otherButtonTitles:nil];
        [myAlertView show];
        [myAlertView release];
    }
}

И я все еще получаю информацию о том, что все мои продукты в приложении имеют недопустимый идентификатор продукта. Сегодня я нашел это: http://developer.apple.com/library/ios/#technotes/tn2259/_index.html

И еще одна важная вещь: «Важно: НЕ загружайте бинарный файл разработки в iTunes Connect до тех пор, пока приложение не будет готово для одобрения обзора приложения. Если бинарный файл присутствует в iTunes Connect и он не полностью функционален, приложениеПрограмма Review рассмотрит бинарный файл и, вероятно, отклонит бинарный файл разработки. Тестирование при покупке приложения не будет выполнено, если вы или App Review отклоните ваш последний бинарный файл в iTunes Connect. Обходным путем в этом случае является загрузка бинарного файла без функций покупки в приложении, которые могут получитьодобрен App Review. После того, как бинарный файл одобрен, возобновите тестированиес функциями покупки в приложении. "

Поэтому мне нужно еще раз создать новое приложение в iTunes, или я должен создать и отправить свое приложение без покупки приложения, а когда приложение появится в iTunes, разработать новую версию с помощью Inпокупка приложения?

Спасибо за ответы!

Ответы [ 2 ]

2 голосов
/ 16 августа 2011

invalidProductIdentifiers (Массив строк идентификатора продукта, которые не были распознаны Apple App Store. (Только для чтения))

Поэтому убедитесь, что вы не используете тот же идентификатор продукта, который был отклонен

Запустите Xcode после отключения устройства и выполните команду Build-> Clean All Targets.

Запустите Xcode-> Empty Caches, а затем выйдите и перезапустите Xcode.

После перезапуска Xcode и перезапуска устройства снова подключите его к компьютеру.

Создайте совершенно новую тестовую учетную запись iTunes на портале iTunesConnect.

Создайте и запустите приложение из XCode на свое устройство с помощью профиля разработки, а затем попытайтесь приобрести продукт с помощью новой тестовой учетной записи iTunes.

Если вы подаете заявку, и бинарный файл по какой-либо причине отклоняется, покупка в приложении может перестать корректно работать в песочнице. Apple утверждает, что единственный способ восстановить это - повторно отправить двоичный файл приложения без функциональности IAP и сначала одобрить его (но не обязательно выпустить).

Посмотрите на мою другую связанную [ ОТВЕТ ]

1 голос
/ 17 апреля 2012

Как раз в этот момент мне помогла другая вещь: внести изменения (любые изменения) в информацию о версии новой версии приложения. Но я также сделал вышеупомянутую очистку кеша / перезапуск устройства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...