Тестирование StoreKit в Xcode 12 и iOS 14

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Привет, Хабр!


Меня зовут Сэм, я разработчик в сервисе Qonversion. В этой статье описаны новые возможности для тестирования подписок, представленные Apple во время сессии Introducing StoreKit Testing in Xcode на WWDC 2020.


Рынок подписок в мобильных приложениях быстро растет, но набор инструментов тестирования до iOS 14 был скудным. Вдобавок всё усложнялось нестабильностью песочницы Apple.
Нововведения в Xcode 12 и iOS 14 сильно меняют ситуацию.


image


Что нового


  1. StoreKit Configuration File – позволяет настраивать продукты для тестирования прямо в Xcode без необходимости создавать их в App Store Connect;
  2. StoreKit Transaction Manager – менеджер транзакций в Xcode, позволяет видеть все локальные покупки и изменять статус по ним;
  3. StoreKitTest Framework – новый фреймворк для тестов в Xcode, даёт полный контроль над процессом тестирования;
  4. Управление Sandbox подписками на девайсе.

StoreKit Configuration File


Конфигурационный файл для StoreKit позволяет настроить локальное окружение разработчика для тестирования покупок без необходимости создавать подписки и инапы в App Store Connect.


image


Доступно три варианта продуктов:


  • Consumable In-App Purchase (многоразовые покупки, например, монетки в играх)
  • Non-Consumable In-App Purchase (покупается один раз, например, пожизненный доступ к приложению)
  • Auto-Renewable Subscription (авто-возобновляемая подписка)

Для тестирования авто-возобновляемых продуктов появилась возможность сократить время подписки с помощью Time Rate конфигурации:


image


StoreKit Transaction Manager


image


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


StoreKit Transaction Manager позволяет:


  • Отменять подписку
  • Совершать рефанд
  • Сбросить подписку
  • Установить состояние billing retry

Для доступа к StoreKit Transaction Manager необходимо выбрать ранее созданный конфигурационный файл и нажать на пиктограмму в Debugging Area.


StoreKitTest Framework


image


Новый фреймворк StoreKitTest работает в связке с конфигурационным файлом StoreKit и позволяет писать Unit и UI тесты. Таким образом можно автоматизировать процесс тестирования кода, который реализовывает бизнес-логику работы с покупками. Управление состояниями происходит с помощью объекта SKTestSession:


Что можно тестировать:


  • Успешное совершение покупки
  • Ошибки покупки
  • Отмененный процесс
  • Внешние транзакции
  • Продление подписки

Управление Sandbox подписками


Sandbox подписки можно отменить на девайсе, а также произвести переход на другую подписку в рамках Subscription Group. Также появилась специальная настройка Reset Eligibility, которая позволяет сбросить introductory offer. Последнее избавляет от необходимости каждый раз создавать новый Sandbox Account для тестирования.


image


Заключение


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


На моей памяти это самое масштабное обновление инструментов дебаггинга в Xcode для StoreKit и жизнь разработчиков благодаря нему должна стать значительно легче.

Источник: https://habr.com/ru/post/508016/


Интересные статьи

Интересные статьи

Данная концепция была придумана автором во время подготовки к собеседованию. Как нечто простое, понятное всем и позволяющее ответить на вопрос в чем отличия между QA, QC ...
Полгода назад я уже начинал рассказывать об обновлении линейки СХД компании Huawei – Dorado V6. На самом деле, мне удалось познакомиться с ними еще до официального анонса, и логично, что тогда ...
Сравнивать CRM системы – дело неблагодарное. Очень уж сильно они отличаются в целях создания, реализации, в деталях.
Приветствую вас (лично вас, а не всех кто это читает)! Сегодня мы: Создадим приложение (навык) Алисы с использованием нового (октябрь 2019) сервиса Yandex Cloud Functions. Настроим н...
Тема статьи навеяна результатами наблюдений за методикой создания шаблонов различными разработчиками, чьи проекты попадали мне на поддержку. Порой разобраться в, казалось бы, такой простой сущности ка...