Элемент покупки в приложении iOS не возвращается в продуктах, а только в invalidProductIdentifiers в песочнице. Как отлаживать?

Я добавляю встроенные покупки в свое приложение. Я выполнил все шаги, описанные Apple здесь (http://developer.apple.com/library/ios/#technotes/tn2259/_index.html, особенно см. вопросы и ответы № 6), а также в Руководстве по программированию в приложении.

Проблема в том, что когда я отправляю запрос на продукт во время тестирования на своем тестовом iPod Touch, ответ показывает его как неверный продуктидентифиер, а не действительный продукт.

У моего приложения есть определенный идентификатор приложения без подстановочных знаков.

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

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

Я скопировал и вставил идентификатор элемента в приложении из iTunes Connect и вставил его в свое приложение, чтобы убедиться, что я не написал ничего неправильного.

Я искал в StackOverflow и с помощью Bing и Google подсказки о том, как диагностировать эту проблему, и в основном все ответы сводились к проверке идентификатора приложения, идентификатора элемента, профиля подписи и т. д.

Ошибка не возвращается, и запрос продукта успешно завершается, поэтому объект NSError для запроса отсутствует.

Как можно диагностировать проблему и отладить это?

Спасибо


person chadbag    schedule 23.09.2011    source источник
comment
каким-то образом в ios5 я могу прочитать покупку в песочнице в приложении, и я получу отчеты об ошибках для ios4 :)   -  person    schedule 06.09.2012


Ответы (3)


Одна вещь, которую нужно проверить, о которой вы не упомянули: вы установили сборку, запустив Xcode с вашим устройством, подключенным через USB? Вы не можете подключиться к хранилищу песочницы с помощью специального развертывания.

Если вы еще этого не сделали, взгляните на исчерпывающий список недопустимых продуктов Троя Брандта. Проблемы с идентификатором.

person Christopher Pickslay    schedule 24.09.2011
comment
Спасибо за ссылку. Я взгляну. Да, он устанавливается из команды запуска XCode и через USB и активно отлаживается в gdb (т.е. я вижу свой материал NSLog в консоли gdb и при необходимости могу установить точку останова). - person chadbag; 24.09.2011
comment
Хорошо, ссылка, которую вы дали, дала мне подсказку удалить приложение с моего устройства. Это, кажется, исправило ситуацию. Я не знаю почему, но теперь он работает нормально благодаря информации в вашей ссылке. Спасибо! - person chadbag; 24.09.2011

Удалил приложение. В моем случае сработало мгновенно!

person rjobidon    schedule 03.11.2012

Я только что нашел быстрый способ решить проблему с недопустимым идентификатором продукта, по крайней мере, в моем случае после того, как я попробовал исчерпывающий список проблем с недопустимым идентификатором продукта Троя Брандта, но все еще получаю 2 недействительных идентификатора продукта из 4. Решение состоит в том, чтобы удалить все IAP и перезапустить с другими IAP, с новыми идентификаторами ссылок и идентификаторами продуктов, затем я удалил приложение на тестовом устройстве. После этих все заработало. Apple должно быть стыдно за то, что IAP так сложно внедрить.

person Tony Xu    schedule 14.02.2013