Хобрук: Ваш путь к мастерству в программировании

Проблема с песочницей для покупок в приложении

в настоящее время я разрабатываю приложение для iOS, которое требует покупки внутри приложения.

Как и во многих руководствах (например, 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, пока приложение не будет готово для утверждения App Review. Если двоичный файл присутствует в iTunes Connect и не является полностью функциональным, App Review проверит двоичный файл и, вероятно, отклонить двоичный файл разработки. Тестирование в покупке приложения завершится неудачно, если вы или App Review отклоните последний двоичный файл в iTunes Connect. Временным решением в этом случае является загрузка двоичного файла без функций In App Purchase, которые могут быть одобрены App Review. двоичный файл одобрен, возобновите тестирование двоичного файла с функциями покупки в приложении ".

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

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


Ответы:


1

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

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

Запустите Xcode после отключения устройства и запустите сборку ›Очистить все целевые объекты.

Запустите Xcode- ›Пустые кеши, а затем выйдите и повторно запустите Xcode.

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

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

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

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

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

16.08.2011
  • Я знаю, что в результате я создал новые продукты с новыми идентификаторами, но никаких изменений нет. 16.08.2011
  • Хорошо, вы пытались удалить приложение, установите его снова, потому что иногда это происходит, когда у вас может быть приложение, установленное из магазина приложений, и оно никогда не будет правильно зарегистрировано в структуре StoreKit, так что может быть причиной неправильного идентификатора продукта происходящий 16.08.2011
  • Да, пробовал. Конечно, я также попробовал зарегистрироваться как новый пользователь (обычный и тестовый пользователь). Я также попытался добавить покупку приложения к моему существующему приложению, и результат был точно таким же, все контракты в itunes connect подписаны правильно. Любая идея? 16.08.2011

  • 2

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

    17.04.2012
    Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..