Тестирование в песочнице
Когда вы настроили всё необходимое в дашборде Adapty и мобильном приложении, пора протестировать встроенные покупки. Примечание: ни один из инструментов тестирования не списывает деньги с пользователей при тестовых покупках. App Store не отправляет письма о покупках или возвратах в тестовых средах.
Транзакции из песочницы не отображаются в аналитических графиках. Они по-прежнему видны на страницах отдельных профилей и в ленте событий.
Перед тестированием встроенных покупок убедитесь, что:
- Вы выполнили гайды по быстрому старту: настройке интеграции со стором, добавлению продуктов и интеграции Adapty SDK.
- Ваш продукт имеет статус Ready to submit в App Store Connect.
Тестирование в песочнице
Мы рекомендуем тестировать встроенные покупки на реальном устройстве. Хотя покупки в песочнице можно запускать на симуляторах, для полного тестирования всех сценариев — включая платёжные диалоги и биометрические запросы — нужно реальное устройство.
У вас есть два основных способа тестировать встроенные покупки:
- Сборка в Xcode и запуск на тестовом устройстве: удобно для разработчиков и QA-инженеров.
- Использование тестового аккаунта песочницы с TestFlight: подходит для всех остальных.
Оба варианта описаны в гайде ниже.
Шаг 1. Создайте тестовый аккаунт в песочнице App Store Connect
Создайте новый тестовый аккаунт для песочницы, чтобы история покупок была чистой. Если использовать существующий аккаунт, ранее купленные продукты останутся доступными, и протестировать их повторную покупку не получится.
Создать новый тестовый аккаунт для песочницы можно в несколько кликов:
- Перейдите в Users and Access > Sandbox > Test Accounts в App Store Connect и нажмите +.
- Введите данные тестового пользователя. Обязательно укажите Country or Region, в которой планируете проводить тестирование — это влияет на доступность продуктов в регионе и валюту покупок.
- Если вы используете Gmail или iCloud, можно воспользоваться существующим адресом с plus-адресацией.
- Можно указать произвольный несуществующий адрес электронной почты, но тогда при входе на тестовом устройстве откажитесь от двухфакторной аутентификации (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. Переключитесь на тестовый аккаунт песочницы
Работаете не на 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. Очистка истории покупок
Если вы только что создали новый аккаунт для тестирования в песочнице и переключились на него, этот шаг можно пропустить — он актуален только при повторном тестировании с тем же аккаунтом.
- Перейдите в 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, что вызовет непредвиденные проблемы.
Чтобы исправить это, выполните следующие шаги:
- Удалите приложение с тестового устройства.
- Следуйте инструкциям по тестированию в Sandbox.
Важно не только переустановить приложение, но и переключиться на тестовый аккаунт Sandbox, очистить историю покупок и запустить приложение под тестовым аккаунтом Sandbox.
Проблемы с общими уровнями доступа
Если вы повторно тестируете с тем же Sandbox-аккаунтом, у тестового пользователя может возникнуть неожиданное поведение, связанное с общими уровнями доступа.
Чтобы проверить, унаследован ли уровень доступа пользователя, откройте Profiles & Segments в дашборде Adapty и перейдите в профиль этого пользователя.
Если у пользователя унаследованный уровень доступа, выполните следующие шаги для получения точных результатов тестирования:
- Удалите родительский профиль.
- Удалите приложение с тестового устройства.
- Скачайте приложение из TestFlight.
- Переключитесь на тестовый аккаунт песочницы.
- Очистите историю покупок.
- Откройте приложение и совершите тестовую покупку.
Обновление приложения в TestFlight
Если приложение в TestFlight было обновлено:
- Удалите приложение с тестового устройства.
- Загрузите приложение из TestFlight.
- Переключитесь на тестовый аккаунт Sandbox.
- Очистите историю покупок.
- Откройте приложение и совершите тестовую покупку.
Авторизация в процессе покупки
Если вы загрузили приложение из TestFlight и не вошли в аккаунт песочницы через настройки устройства, войти в него в процессе покупки не получится. Для успешного совершения покупки необходимо войти в аккаунт песочницы через настройки устройства до начала покупки.
Тестовые подписки
При тестировании приложения с помощью песочницы вы можете настроить частоту обновления подписки для каждого тестировщика. Подробнее об изменении частоты обновления подписок читайте в официальной документации 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, обязательно очистите историю покупок, чтобы избежать проблем с условиями предоставления офферов.