Тестирование 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 и жизнь разработчиков благодаря нему должна стать значительно легче.

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 2

      +2

      Как давно мы этого ждали! Особенно управление подписками в Sandbox… это ж просто праздник какой-то! Надеюсь, работать тоже будет это всё стабильнее.

        0
        Судя по анонсу хорошее обновление. Надо пробовать.

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое