Тестирование в песочнице
Когда вы настроили всё в дашборде Adapty и своём мобильном приложении, пора приступать к тестированию встроенных покупок.
Примечание: ни один из инструментов тестирования не снимает деньги с пользователей при тестовой покупке продукта. App Store не отправляет письма о покупках или возвратах, совершённых в тестовых средах.
Перед тестированием встроенных покупок убедитесь, что:
- Вы прошли гайды quickstart по интеграции стора, добавлению продуктов и интеграции Adapty SDK.
- Ваш продукт отмечен как Ready to submit в App Store Connect.
Тестирование в песочнице
Мы рекомендуем тестировать встроенные покупки на реальном устройстве. Хотя покупки в песочнице можно запускать на симуляторах, для полноценного тестирования всех сценариев — включая диалоги оплаты и биометрические подтверждения — нужно реальное устройство.
Есть два основных способа тестирования встроенных покупок:
- Сборка в Xcode и запуск на тестовом устройстве: удобно для разработчиков и QA-инженеров.
- Использование тестового аккаунта песочницы вместе с TestFlight: подходит для всех остальных.
Оба варианта описаны в гайде ниже.
Шаг 1. Создайте тестовый аккаунт Sandbox в App Store Connect
Создайте новый тестовый аккаунт Sandbox, чтобы история покупок была чистой. Если вы используете существующий аккаунт, ранее купленные продукты останутся доступными, и протестировать их повторную покупку не получится.
Создать новый тестовый аккаунт Sandbox можно за несколько кликов:
- Перейдите в Users and Access > Sandbox > Test Accounts в App Store Connect и нажмите +.
- Введите данные тестового пользователя. Обязательно укажите Country or Region, которую планируете тестировать — это влияет на доступность продуктов в регионе и валюту покупки.
- Если вы используете Gmail или iCloud, можно переиспользовать существующий адрес электронной почты с помощью субадресации через плюс.
- Можно использовать произвольный адрес электронной почты, который даже не существует, но при входе на тестовом устройстве убедитесь, что отклонили двухфакторную аутентификацию (2FA).
- Нажмите Create.
Шаг 2. Включите режим разработчика
Пропустите этот шаг, если режим разработчика уже включён на вашем тестовом устройстве или если у вас нет Mac.
Вам понадобится Mac с установленным Xcode и кабель для подключения тестового устройства:
- Откройте Xcode на Mac. Если вы собираетесь тестировать встроенные покупки через TestFlight, достаточно просто иметь установленный Xcode — приложение в нём открывать не нужно.
- Подключите тестовое устройство к Mac с помощью кабеля.
- На тестовом устройстве перейдите в Settings > Privacy & Security > Developer Mode и включите Developer Mode.
Шаг 3. Загрузите приложение из TestFlight
Этот шаг актуален только при тестировании через TestFlight. Если вы собираете приложение в Xcode, пропустите его.
Подробнее о том, как отправить приложение в TestFlight, читайте в документации Apple.
Перед загрузкой TestFlight убедитесь, что на тестовом устройстве выполнен вход с вашим рабочим Apple Account. Затем загрузите тестируемое приложение из TestFlight.
Не открывайте приложение сразу после загрузки. Просто перейдите к следующим шагам. Если вы случайно открыли его — удалите с тестового устройства и загрузите заново. Иначе история покупок может оказаться непустой, и тестирование встроенных покупок приведёт к ошибкам.
Шаг 4. Переключитесь на тестовый аккаунт Sandbox
Работаете не на Mac? Вот альтернативный способ
Если вы не работаете на macOS, переключиться на аккаунт песочницы через Xcode не получится. Однако это можно сделать прямо на тестовом устройстве:
- На тестовом устройстве перейдите в Settings > Your Apple Account > Media & Purchases.
- Выберите Sign Out во всплывающем меню.
- Откройте приложение, загруженное из TestFlight, и попробуйте купить продукт.
- Когда появится запрос на вход, введите данные аккаунта песочницы, чтобы переключиться в среду песочницы.
Чтобы переключиться на аккаунт песочницы:
- На тестовом устройстве перейдите в Settings > Your Apple Account > Media & Purchases.
- Выберите Sign Out во всплывающем меню.
- Перейдите в Settings > Developer. Если пункт Developer недоступен, убедитесь, что вы включили его на шаге 2.
- Прокрутите до раздела Sandbox Apple Account и нажмите Sign In.
- Войдите с данными вашего Sandbox Apple Account.
Шаг 5. Очистите историю покупок
Если вы только что создали новый тестовый аккаунт Sandbox и переключились на него, этот шаг можно пропустить — он актуален только при повторном тестировании с тем же аккаунтом Sandbox.
- На тестовом устройстве перейдите в Settings > Developer > Sandbox Apple Account.
- Выберите Manage во всплывающем меню.
- Перейдите в Account Settings и нажмите Clear Purchase History.
Этот шаг обязателен каждый раз, когда вы повторяете тестирование с тем же тестовым аккаунтом Sandbox. В этом случае также нужно выйти из тестового аккаунта Sandbox и войти снова, чтобы очистить кэш истории покупок на тестовом устройстве.
Шаг 6. Соберите приложение в Xcode и запустите
Этот шаг актуален только при тестировании со сборкой в Xcode. Если вы используете TestFlight, пропустите его.
- Подключите тестовое устройство к Mac.
- Откройте Xcode.
- Нажмите Run на панели инструментов или выберите Product > Run, чтобы собрать и запустить приложение на подключённом устройстве.
При успешной сборке Xcode запустит приложение на устройстве и откроет сессию отладки в области отладки.
Приложение готово к тестированию на устройстве.
Шаг 7. Совершите тестовую покупку
Откройте приложение и совершите тестовую покупку через пейвол.
После этого перейдите к статье проверки тестовых покупок, чтобы проверить результаты.
Шаг 8. Продолжайте тестирование
Теперь тестовая среда полностью настроена. Если хотите протестировать ещё раз, очистите историю покупок аккаунта песочницы.
Проблемы при тестировании
Ниже описаны распространённые проблемы, которые могут возникнуть при тестировании приложения.
Проблемы с TestFlight
Если вы используете TestFlight без тестового аккаунта Sandbox, очистить историю покупок не получится, что приводит к разным ошибкам и недостоверным результатам тестирования.
Если вы случайно забыли переключиться на тестовый аккаунт Sandbox и хотя бы раз открыли приложение, TestFlight привяжет историю покупок к вашему рабочему Apple Account, что вызовет непредвиденные проблемы.
Чтобы исправить это, выполните следующие шаги:
- Удалите приложение с тестового устройства.
- Следуйте шагам тестирования в песочнице.
Важно не просто переустановить приложение, но и переключиться на тестовый аккаунт Sandbox, очистить историю покупок и запустить приложение под этим аккаунтом.
Проблемы с общими уровнями доступа
При повторном тестировании с тем же тестовым аккаунтом Sandbox у тестового пользователя может возникнуть непредвиденное поведение с общими уровнями доступа.
Чтобы проверить, есть ли у пользователя унаследованный уровень доступа, перейдите в Profiles & Segments из дашборда Adapty и откройте профиль пользователя.
Если у пользователя есть унаследованный уровень доступа, выполните следующие шаги для получения точных результатов тестирования:
- Удалите родительский профиль.
- Удалите приложение с тестового устройства.
- Загрузите приложение из TestFlight.
- Переключитесь на тестовый аккаунт Sandbox.
- Очистите историю покупок.
- Откройте приложение и совершите тестовую покупку.
Обновление приложения в TestFlight
Если приложение в TestFlight было обновлено:
- Удалите приложение с тестового устройства.
- Загрузите приложение из TestFlight.
- Переключитесь на тестовый аккаунт Sandbox.
- Очистите историю покупок.
- Откройте приложение и совершите тестовую покупку.
Авторизация в процессе покупки
Если вы загрузили приложение из TestFlight и не вошли в аккаунт песочницы через настройки устройства, войти в него в процессе покупки не получится. Для успешного совершения покупки необходимо войти в аккаунт песочницы через настройки устройства до начала покупки.
Тестовые подписки
При тестировании приложения с тестовым аккаунтом Sandbox можно настроить скорость обновления подписки для каждого тестировщика в песочнице. Подробнее об изменении скорости обновления подписок читайте в официальной документации Apple.
По умолчанию подписки обновляются не более 12 раз, после чего останавливаются, согласно следующему расписанию:
| Длительность подписки | 1 неделя | 1 месяц | 2 месяца | 3 месяца | 6 месяцев | 1 год |
|---|---|---|---|---|---|---|
| Скорость обновления подписки | 3 минуты | 5 минут | 10 минут | 15 минут | 30 минут | 1 час |
| Длительность повторных попыток оплаты | 10 минут | 10 минут | 10 минут | 10 минут | 10 минут | 10 минут |
| Длительность льготного периода оплаты | 3 минуты | 5 минут | 5 минут | 5 минут | 5 минут | 5 минут |
Учтите, что тестовые транзакции появляются в Event feed с задержкой до 10 минут.
Тестирование офферов
Для корректной проверки условий предоставления офферов все чеки пользователя должны быть удалены.
Наиболее надёжный способ тестирования офферов — использование полностью нового тестового аккаунта Sandbox. Повторное тестирование с тем же аккаунтом Sandbox может привести к непредвиденному поведению.
Если вы повторяете тестирование с тем же тестовым аккаунтом Sandbox, обязательно очистите историю покупок, чтобы избежать проблем с условиями предоставления офферов.