iPhone StoreKit - недействительные идентификаторы товаров - PullRequest
33 голосов
/ 25 июня 2009

Я пытаюсь проверить In App Purchase в среде песочницы.

Для проверки кода я сделал следующее:

  1. Создание учетной записи тестового пользователя в приложении «Управление пользователями» в iTunes Connect

  2. Создано несколько продуктов для покупок в приложении в разделе «Управление покупками в приложении». Я использовал числовые значения и буквенно-цифровые значения для идентификаторов продукта.

  3. Загрузил приложение на iPhone, зашел в Настройки-> Магазин и вышел из обычного магазина и в тестовую учетную запись, созданную на шаге 1

  4. Установить точку останова в (1019 * * Обратный вызов

Все представленные идентификаторы продуктов находятся в собственности response.invalidProductIdentifiers. При отправке запроса я сначала попробовал точные идентификаторы продуктов, созданные на шаге 2. Я также попытался поставить перед ними префикс Bundle ID:

NSString *id2 = @"com.super.duper.8";
NSSet *productList = [NSSet setWithObjects:id2, @"8", nil];

SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:productList];

Я что-то упускаю из виду? Любая помощь приветствуется.

Ахим

Ответы [ 22 ]

1 голос
/ 17 июля 2009

Здесь вы идете не так, вам нужно это в вашем коде:

NSSet *productList = [NSSet setWithObjects:product id]

Вы можете получить этот идентификатор продукта из iTunes connect.

И вам необходимо убедиться, что вы создали тестового пользователя и вышли из своей первоначальной учетной записи iTunes. Смотрите, не входите в систему с тестовой учетной записью пользователя, независимо от того, что написано в документации Apple, просто используйте ее, когда появится всплывающее окно.

1 голос
/ 29 апреля 2011

Я перепробовал все решения, доступные в интернете, но ничего не получалось, абсолютно ничего. Моя проблема: мое устройство было взломано и на нем была Cydia. Я вернул устройство к заводским настройкам по умолчанию (не взломано), оно сработало в первый раз и вернуло идентификатор продукта.

1 голос
/ 05 ноября 2016

Для меня проблема заключалась в том, что я выбрал «Включить контент-хостинг» при настройке покупки в приложении. Поэтому мне пришлось отключить его, и проблема была решена.

1 голос
/ 21 октября 2009

Зачем это @ 8? Ваш продукт назван com.super.duper.8 верно?

http://blog.mugunthkumar.com/coding/iphone-tutorial-%e2%80%93-in-app-purchases/

1 голос
/ 11 ноября 2010

Другая проблема, с которой я столкнулся, заключалась в том, что мне нужно было перейти в «Окно»> «Органайзер» в XCode, удалить свое приложение и профили предоставления и заново добавить свой профиль обеспечения разработки.Я перезапустил устройство и xcode в качестве дополнительной меры.

0 голосов
/ 17 декабря 2015

Я перепробовал все, о чем все говорят. В итоге я сначала создал гостевую учетную запись, чтобы узнать, можно ли найти идентификатор продукта .... Это было. Итак, я начал все бросать в мониторе активности и обнаружил проблему. Мне пришлось выйти из «магазина» процессов ниже. Внезапно я перестал получать недействительный идентификатор продукта. Надеюсь, это поможет кому-то там.

Quit these if you're getting the invalid product id null error

0 голосов
/ 27 февраля 2015

Еще одна проблема, которая может быть. Если имя вашего проекта xCode написано не на английском языке или содержит другие символы, идентификатор пакета будет иметь «------» там, где должно быть название вашего приложения. Я думал, что это просто соглашение для идентификатора пакета, чтобы иметь это в xCode. Оказывается, это была моя проблема, поэтому назовите свой проект xCode на английском языке) Я знаю, что это не так для большинства, но все равно)

0 голосов
/ 29 мая 2013

заменить:

NSSet *productList = [NSSet setWithObjects:id2, @"8", nil];

с:

NSSet *productList = [NSSet setWithObjects:@"8", nil];
0 голосов
/ 22 октября 2009

Магазину требуется некоторое время, чтобы продукты были доступны для всех серверов (см. Документацию). Таким образом, вы можете столкнуться с задержкой между созданием продукта в iTunes Connect и просмотром идентификатора продукта в качестве действительного при тестировании на устройстве. Для меня это заняло около 12 часов, пока мои продукты не появились.

0 голосов
/ 22 марта 2010

Примечание для других: не используйте NSMutableSet для идентификаторов продукта. Это должен быть NSSet!

...