---
title: "Тестирование StoreKit в Xcode"
description: "Тестируйте покупки в среде песочницы для обеспечения корректных транзакций."
---

Тестирование StoreKit в Xcode позволяет проверять встроенные покупки локально без настройки аккаунта в песочнице.

Для этого вида тестирования нужно:

1. [Создать продукт в Adapty](quickstart-products) и назначить ему **App Store product ID**.
2. В Xcode создать локальный [файл конфигурации StoreKit](https://developer.apple.com/documentation/xcode/setting-up-storekit-testing-in-xcode) и добавить в него продукт. Идентификатор продукта должен совпадать с **App Store product ID** в Adapty.
3. Добавить файл конфигурации StoreKit в схему сборки и собрать приложение. Запустить его на эмуляторе или на устройстве.

## Стоит ли использовать тестирование StoreKit в Xcode? \{#should-i-use-storekit-testing-in-xcode\}

Этот способ тестирования наиболее удобен, если вы разработчик, который хочет проверить сборку на ходу или протестировать различные сценарии покупок с помощью инструментов Xcode.

Однако важно помнить, что этот вид тестирования выполняется локально, поэтому никакие изменения не отобразятся в дашборде Adapty. Перед выпуском приложения в продакшн мы рекомендуем протестировать [работу с профилями](ios-quickstart-identify) в [среде песочницы](test-purchases-in-sandbox).

Тестирование StoreKit **стоит** использовать, если нужно:
- Протестировать логику покупок
- Воспроизвести различные сценарии покупок с помощью инструментов Xcode (например, отменённый платёж или возврат средств)
- Протестировать на эмуляторе

Тестирование StoreKit **не стоит** использовать, если нужно:
- Протестировать логику, связанную с профилями
- Убедиться, что действия в приложении отображаются в дашборде Adapty
- Передать приложение команде, не занимающейся разработкой, для тестирования

## Шаг 1. Создайте файл конфигурации StoreKit \{#step-1-create-a-storekit-configuration-file\}

Чтобы создать файл конфигурации StoreKit в Xcode:

1. Нажмите **File > New > File from template**. Затем выберите **StoreKit Configuration File** и нажмите **Next**.

2. Задайте имя. Затем, в зависимости от того, есть ли у вас уже продукты в App Store Connect:
   - Выберите **Sync this file with an app in App Store Connect**: чтобы создать файл конфигурации со всеми вашими продуктами из App Store Connect для локального тестирования.
   - Не выбирайте **Sync this file with an app in App Store Connect**: чтобы создать пустой файл конфигурации, в который нужно будет добавить продукты вручную.
   
   Нажмите **Next**.

3. Не добавляйте приложение в качестве таргета. Просто продолжите. Если вы работаете с продуктами, синхронизированными из App Store Connect, перейдите к [Шагу 2](#step-2-add-the-configuration-file-to-the-build-scheme).
4. Если продукты не синхронизированы из App Store Connect, нажмите **+** в левом нижнем углу и выберите тип продукта.

5. Введите название группы подписок и нажмите **Next**.

6. Введите имя для ссылки. В поле **Product ID** укажите **App Store product ID** вашего продукта в Adapty.

7. Настройте цену, предложение и другие параметры продукта в файле конфигурации. При необходимости добавьте больше продуктов.

## Шаг 2. Добавьте файл конфигурации в схему сборки \{#step-2-add-the-configuration-file-to-the-build-scheme\}

Чтобы собрать приложение с использованием этого файла конфигурации, нужно добавить его в схему сборки. Рекомендуется разделять схемы для тестирования и продакшна, поэтому предлагаем создать отдельную схему для тестирования:

1. Вверху нажмите на имя приложения и выберите **New scheme**.

2. Введите имя схемы и нажмите **OK**.

3. Снова нажмите на имя приложения и выберите **Edit scheme**. В поле **StoreKit configuration** выберите ваш локальный файл конфигурации, чтобы он использовался при сборке.

## Шаг 3. Соберите и протестируйте \{#step-3-build--test\}

Теперь можно собрать приложение и тестировать встроенные покупки без подключения к бэкенду App Store. Вы можете совершать покупки и получать уровни доступа локально. Эти изменения не будут отражены в дашборде Adapty, но вы сможете проверить разблокировку платных функций локально.

[Подробнее](https://developer.apple.com/documentation/xcode/testing-in-app-purchases-with-storekit-transaction-manager-in-code) о других возможностях тестирования StoreKit в Xcode.