Вопрос по iphone – iPhone StoreKit - недействительные идентификаторы товаров

33

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

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

Created an In App Purchase Test User account under 'Manage Users' in iTunes Connect

Created some in app purchase products under 'Manage Your In App Purchases'. I used numeric values and alpha-numeric values for the Product IDs.

Loaded the app onto the iPhone, went to Settings->Store and logged out of the regular store and into the test account created in step 1

Set a breakpoint in the (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response callback

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

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

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

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

Ахим

В моем случае предыдущий банковский счет больше не действовал. Justin Chapweske

Ваш Ответ

22   ответа
4

который малоизвестен и который в конце концов описывает это. Это также рассеивает некоторые мифы о вещах, которые не помогают (например, отправка двоичного файла).

Технический комментарий 2259 "Добавление покупок из приложений в приложения для iOS и Mac"

2

В моем случае я не заполнил банковскую информацию, информацию о налогах и контактную информацию. Как только я закончу, я смогу получить свой productID, надеюсь, это кому-нибудь поможет.

3

удалить приложение с iphone и напрямую использовать идентификатор продукта запроса без идентификатора пакета.

Хороший вопрос - если это расходный материал, вы должны получить идентификатор продукта без идентификатора комплекта. Это не относится к расходным материалам. Спасибо за это!
2

что предлагалось на форумах Apple и здесь, и все еще не смог заставить его работать. Нашел решение - ваше приложение должно быть передано Xcode для включения песочницы.

Очевидно, верно? Что ж, если вы работаете с обновлением существующего приложения, устройство все равно будет воспринимать его как приложение, установленное в App Store.

Так что удалите приложение с вашего устройства. Затем установите приложение обратно на устройство, используя Build & amp; Запустите устройство, привязанное к вашему Mac. Это должно работать сейчас :)

Запуская Xcode 4.5, вам не нужно беспокоиться ни о чем из этого, пока он не сработает в симуляторе, что и потребуется.
0

почему, но когда я изменил идентификатор продукта запроса с «com.mycompany.myapp.product» к «продукту» это начало работать. Может быть, это из-за того, как я настроил продукт в iTunes Connect.

Попробуйте, может сработает для некоторых из вас ...

Просто идентификатор продукта должен точно соответствовать тому, что вы ввели в iTunes Connect. Идентификатор пакета не вводится автоматически, вы можете включить его или нет при создании покупки в приложении
0

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

0

но попытаетесь удалить приложение, чтобы устранить эту проблему, сначала синхронизируйте устройство. Затем удалите свое приложение и переустановите из Xcode - это исправило проблему для меня. Как только он заработает, вы сможете восстановить устройство из его резервной копии - это займет всего несколько минут, а запросы продукта все еще будут работать после восстановления.

0

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

5

что телефон взломан, вам просто нужно удалить appSync в Cydia, тогда он работает

Спасибо! Это действительно сработало.
6-й раз у меня возникла эта проблема, и 6-й раз этот точный пост помог. На самом деле следует добавить эту страницу в закладки :-)
большое спасибо
1

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

3

что создали новый профиль обеспечения, где-то была строка (не могу вспомнить, где, а не в документах для покупки приложения), в которой говорилось, что вы должны включить покупку приложения в профиле предоставления. Мы не могли сделать это с нашим существующим профилем, поэтому мы создали новый, а затем мы могли бы включить его.

53

я накапливаю контрольный список всех различных причин:

http://troybrant.net/blog/2010/01/invalid-product-ids/

У меня есть вывод, что он НЕ работал при указании всего bundle.productID. Я решил создать список различных версий моей & quot; строки идентификатора продукта & quot; в наборе, чтобы увидеть, что ударит. мои примеры: setWithObjects: @ & quot; com.blah.appname.purchase1 & quot ;, @ & quot; com.blah.appname & quot ;, @ & quot; purchase1 & quot ;, nil ... странно, последний работал! Другие не смогли. (надеюсь, это кому-нибудь поможет)
это сработало и для меня. спасибо за подробный список, Трой!
Это сработало и для меня. Это не произойдет, когда iap жив, верно? В настоящее время он находится в песочнице.
Я хочу добавить кое-что здесь. Трой был просто потрясающим, помогая всем нам решить эту проблему, спасибо, Трой!
Удивительно, но удаление приложения с моего устройства и переустановка устранили проблему. Спасибо Трой!
1

с которой я столкнулся, заключалась в том, что я должен был перейти в Window & gt; Организатор в XCode и удалить мое приложение и профили (и) обеспечения и повторно добавить мой профиль обеспечения разработки. Я перезапустил устройство и xcode в качестве дополнительной меры.

0

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

0

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

с:

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

NSSet *productList = [NSSet setWithObjects:product id]

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

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

2

у кого есть эти проблемы, я настоятельно рекомендую прочитатьэта тема на яблочном форуме.

1

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

0

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

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

7

& quot;Почему идентификаторы моего продукта возвращаются вinvalidProductIdentifiers array?& Quot ;:

You did not complete all the financial requirements (see the "Contracts, Tax, and Banking Information" section of this document). You did not use an explicit App ID. You did not use the Provisioning Profile associated with your explicit App ID. You did not use the correct product identifier in your code. See Technical Q&A, QA1329, 'In App Purchase Product Identifiers' for more information about product identifiers. You did not clear your In App Purchase products for sale in iTunes Connect. You might have modified your products, but these changes are not yet available to all the App Store servers. If you or App Review rejected your most recent binary in iTunes Connect.

Я изменил самую последнюю версию (которая была отклонена) на «Ожидание загрузки». нажав & quot; Готово к загрузке двоичного файла & quot; в iTunes Connect, и проблема была решена примерно через 10 минут.

16

), которые оказались в списке response.invalidProductIdentifiers, а не в response.products. Apple определенно проделала отличную работу по работе со своим магазином. Это запутано, переплетено и сложно.

I did finally resolved it. One very important lesson I learned as indicated by few in the forums: It may take many hours for what you entered on the itunesconnect.apple.com to take affect.

Есть две части: имя приложения и AppID в вашем xcode и то, что вы ввели в itunesconnection, они должны точно совпадать (с учетом регистра). Если вы зарегистрировали или изменили свой AppleID в приложении (я также выполнил все свои контракты и банковскую информацию в соответствии с некоторыми предположениями о том, что действия по покупке не сработают, не выполнив эту часть), вы также можете лечь спать, прежде чем снова протестировать его. потому что в моем случае действительно требуется несколько часов, чтобы повлиять. Я был так расстроен, борясь с этой проблемой, прежде чем мой 9-летний потащил меня к сказке на ночь, а затем удивился, обнаружив, что проблема исчезла, когда я проснулся.

Я нашел предложения от Eddy71 вhttp://www.iphonedevsdk.com/forum/iphone-sdk-development/21035-problems-creating-test-user-app-purchase.html действительно полезно. Прежде чем разрешить его, я сделал все, что мог, в контрольном списке Эдди, и все еще получил ноль продуктов, и я боялся, что без загрузки двоичного кода для завершения регистрации приложения в itunesconnect все будет в порядке (не нужно запускать как учил вhttp://blog.mugunthkumar.com/coding/iphone-tutorial-%E2%80%93-in-app-purchases/). Это действительно хорошо. Убедитесь, что & quot; разрешено к продаже & quot; Это флажок, а значок зеленый (требуется дополнительный шаг для его подтверждения после заполнения формы). Другой опасение заключалось в том, что если я смогу использовать временный разработчик (а не временный дистрибутив) в режиме отладки, это тоже действительно нормально. Я надеюсь, что это может помочь некоторым из вас. Удачи и веры. Это будет работать в конце концов.

Похожие вопросы