2012-05-23 2 views
9

У меня есть тестовая учетная запись пользователя, которая отлично работает для тестирования при покупке приложений.Удаление покупки в тесте на покупку приложений Учетная запись пользователя

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

Могу ли я удалить покупку из учетной записи Test User, чтобы я мог тестировать одну и ту же покупку несколько раз. Мне бы очень хотелось, чтобы каждый раз, когда я хотел проверить покупку, мне приходилось создавать нового тестового пользователя.

EDIT: каждый раз, когда я пытаюсь приобрести, я получаю диалог с «Вы уже купили это. Нажмите« ОК », чтобы загрузить его снова бесплатно».

+0

Могу ли я уточнить еще раз: 1) Это покупка в приложении или покупка в магазине приложений? 2) Если это покупка в приложении, как приложение знает, что вы приобрели этот товар? Государство должно быть где-то сохранено. – nhahtdh

+0

Помогает ли этот вопрос: http://stackoverflow.com/questions/7604578/how-can-i-reset-sandboxed-in-app-purchases-on-ios-for-testing? – borrrden

+0

Я знаю только 3 способа хранения данных: iCloud, на устройстве и на собственном сервере приложения. – nhahtdh

ответ

8

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

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

Альтернативной идеей было бы удалить покупку приложения из iTunes Connect и создать новый.

+3

** [...] «Перезагрузка покупки в приложении - это почти идентичный поток кода». [...] ** Просто хотел перезвонить и упомянуть, что хотя это утверждение верно для данного обработчика транзакции. . это не обязательно верно для самого кода приложения, поскольку первоначальная покупка может быть обработана существенно иначе, чем восстановление старой покупки. – Questor

+1

Как насчет подтверждения чека? Вам необходимо протестировать сценарии, в которых нет продукта и наоборот, с проверкой получения кода. –

+0

@theReverend Это может быть что-то, что вам нужно высмеять (т. Е. Для целей тестирования, есть метод, который возвращает YES каждый раз и тот, который возвращает NO каждый раз). – borrrden

1

Если тип вашей покупки в приложении составляет расходный материал, вы можете просто переустановить приложение. Если ваша покупка в приложении составляет non-cosumable, тогда вам нужно будет создать дополнительных пользователей тестирования.

+0

Можем ли мы изменить тип IAP с 'consumable' на' non-consumable' перед выпуском в Appstore? Это было бы решением для тестирования. – brigadir

+0

Мы не можем изменить тип IAP в iTunesConnect после того, как мы их создадим, мы просто можем создать дополнительные «расходные» IAP для тестирования. –

Смежные вопросы