Установка и настройка iOS SDK

SDK Adapty включает два ключевых модуля для бесшовной интеграции в ваше мобильное приложение:

  • Core Adapty: Основной SDK, необходимый для работы Adapty в вашем приложении.
  • AdaptyUI: Опциональный модуль, нужный если вы используете Adapty Paywall Builder — удобный no-code инструмент для создания кросс-платформенных пейволов.

Хотите увидеть реальный пример интеграции Adapty SDK в мобильное приложение? Посмотрите наши примеры приложений — они демонстрируют полную настройку, включая отображение пейволов, совершение покупок и другие базовые функции.

Для полного пошагового руководства по реализации вы также можете посмотреть видео:

Требования

Хотя SDK технически поддерживает iOS 13.0+ для базового модуля, на практике требуется iOS 15.0+, поскольку:

  • Все функции StoreKit 2 требуют iOS 15.0+
  • Модуль AdaptyUI поддерживает только iOS 15.0+

Adapty SDK 3.15.7+ обязателен при сборке с Xcode 26.4 или более поздней версией.

Установка SDK — это шаг 5 настройки Adapty. Прежде чем покупки заработают в вашем приложении, вам также нужно подключить приложение к сторам, а затем создать продукты, пейвол и плейсмент в дашборде Adapty. Гайд по быстрому старту описывает все необходимые шаги.

Установка Adapty SDK

Release

Adapty SDK устанавливается через Swift Package Manager. В Xcode перейдите в File -> Add Package Dependency…. Обратите внимание, что шаги по добавлению зависимостей могут отличаться в разных версиях Xcode — при необходимости обратитесь к документации Xcode.

  1. Введите URL репозитория:
    https://github.com/adaptyteam/AdaptySDK-iOS.git
  2. Выберите версию (рекомендуется последняя стабильная) и нажмите Add Package.
  3. В окне Choose Package Products выберите нужные модули:
    • Adapty (основной модуль)
    • AdaptyUI (опционально — только если планируете использовать Paywall Builder)

    Примечание:

    • Чтобы включить режим Kids, выберите Adapty_KidsMode вместо Adapty.
    • Не выбирайте другие пакеты из списка — они вам не понадобятся.
  4. Нажмите Add Package, чтобы завершить установку.
  5. Проверьте установку: в навигаторе проекта вы должны увидеть «Adapty» (и «AdaptyUI», если он был выбран) в разделе Package Dependencies.

Adapty iOS SDK 4.0 — это пре-релиз. Swift Package Manager не разрешает бета-версии через правило Up to Next Major Version (from:), поэтому необходимо указать точную версию. В Xcode установите Dependency Rule в значение Exact Version и введите 4.0.0-beta.1. В Package.swift используйте .exact("4.0.0-beta.1"). Подробнее: Миграция iOS SDK Adapty на v4.

Активация модуля Adapty в SDK

Активируйте Adapty SDK в коде вашего приложения.

Adapty SDK достаточно активировать один раз.

Чтобы получить Public SDK Key:

  1. Откройте дашборд Adapty и перейдите в App settings → General.
  2. В разделе Api keys скопируйте Public SDK Key (не Secret Key).
  3. Замените "YOUR_PUBLIC_SDK_KEY" в коде на скопированный ключ.
  • Используйте Public SDK key для инициализации Adapty. Secret key предназначен только для серверного API.
  • SDK keys уникальны для каждого приложения, поэтому при наличии нескольких приложений убедитесь, что выбрали правильный ключ.

Дождитесь завершения activate перед вызовом любых других методов Adapty SDK. Полная последовательность описана в разделе Порядок вызовов в iOS SDK.

Теперь настройте пейволы в приложении:

Активация модуля AdaptyUI в составе Adapty SDK

Если вы планируете использовать Paywall Builder и установили модуль AdaptyUI, его также необходимо активировать.

В коде сначала нужно активировать основной модуль Adapty, и только затем — AdaptyUI.

Дополнительная настройка

Логирование

Настройка системы логирования

Adapty записывает ошибки и другую важную информацию, чтобы помочь вам разобраться в происходящем. Доступны следующие уровни логирования:

УровеньОписание
errorБудут логироваться только ошибки
warnБудут логироваться ошибки и сообщения от SDK, которые не вызывают критических ошибок, но заслуживают внимания
infoБудут логироваться ошибки, предупреждения и различные информационные сообщения
verboseБудет логироваться любая дополнительная информация, которая может быть полезна при отладке: вызовы функций, API-запросы и т. д.
 let configurationBuilder = AdaptyConfiguration
         .builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
         .with(logLevel: .verbose) // recommended for development

Перенаправление сообщений системы логирования

Если вам нужно отправлять лог-сообщения Adapty в вашу систему или сохранять их в файл, используйте метод setLogHandler и реализуйте в нём собственную логику логирования. Этот обработчик получает записи логов, содержащие текст сообщения и уровень важности.

Adapty.setLogHandler { record in
    writeToLocalFile("Adapty \(record.level): \(record.message)")
}

Политика работы с данными

Adapty не хранит персональные данные ваших пользователей, если вы явно их не передаёте, но вы можете настроить дополнительные политики безопасности данных в соответствии с требованиями стора или законодательства конкретной страны.

Отключение сбора и передачи IDFA

При активации модуля Adapty установите idfaCollectionDisabled в значение true, чтобы отключить сбор и передачу IDFA. Используйте этот параметр для соблюдения требований App Store Review Guidelines или чтобы не вызывать запрос App Tracking Transparency, если IDFA не нужен вашему приложению. Значение по умолчанию — false. Подробнее о сборе IDFA см. в разделе Интеграция аналитики.

let configurationBuilder =
    AdaptyConfiguration
        .builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
        .with(idfaCollectionDisabled: true)

Отключение сбора и передачи IP-адреса

При активации модуля Adapty установите ipAddressCollectionDisabled в значение true, чтобы отключить сбор и передачу IP-адресов пользователей. Значение по умолчанию — false.

Используйте этот параметр для защиты конфиденциальности пользователей, соблюдения региональных нормативов по защите данных (например, GDPR или CCPA) или сокращения лишнего сбора данных, если функции на основе IP-адресов не нужны вашему приложению.

let configurationBuilder =
    AdaptyConfiguration
        .builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
        .with(ipAddressCollectionDisabled: true)

Конфигурация медиакеша для пейволов в AdaptyUI

Обратите внимание, что конфигурация AdaptyUI необязательна. Вы можете активировать модуль AdaptyUI без конфига. Однако если вы используете конфиг, все параметры обязательны.


// Configure AdaptyUI
        let adaptyUIConfiguration = AdaptyUI.Configuration(
            mediaCacheConfiguration: .init(
                memoryStorageTotalCostLimit: 100 * 1024 * 1024,
                memoryStorageCountLimit: .max,
                diskStorageSizeLimit: 100 * 1024 * 1024
            )
        )

        // Activate AdaptyUI
        AdaptyUI.activate(configuration: adaptyUIConfiguration)

Параметры:

ПараметрНаличиеОписание
memoryStorageTotalCostLimitrequiredОбщий лимит стоимости хранилища в байтах.
memoryStorageCountLimitrequiredЛимит количества элементов в памяти.
diskStorageSizeLimitrequiredЛимит размера файла на диске в байтах. 0 означает отсутствие ограничений.

Поведение завершения транзакций

Эта функция доступна начиная с версии SDK 3.12.0.

По умолчанию Adapty автоматически завершает транзакции после успешной валидации. Однако если вам нужна расширенная валидация транзакций (например, серверная проверка чеков, обнаружение мошенничества или реализация собственной бизнес-логики), вы можете настроить SDK на ручное завершение транзакций.

let configurationBuilder = AdaptyConfiguration
    .builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
    .with(transactionsFinishBehavior: .manual) // .auto is the default

Подробнее о завершении транзакций читайте в гайде.

Очистка данных при восстановлении из резервной копии

Если clearDataOnBackup установлен в true, SDK определяет, когда приложение восстанавливается из резервной копии iCloud, и удаляет все локально сохранённые данные SDK: кешированную информацию о профиле, сведения о продуктах и пейволах. После этого SDK инициализируется с чистого состояния. Значение по умолчанию — false.

Удаляется только локальный кеш SDK. История транзакций в Apple и данные пользователя на серверах Adapty остаются без изменений.

let configurationBuilder = AdaptyConfiguration
    .builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
    .with(clearDataOnBackup: true) // default – false

Устранение неполадок

Ошибка конкурентности Swift 6 при использовании Tuist

При сборке с Tuist могут возникать ошибки строгой проверки конкурентности Swift 6. Типичные симптомы — несоответствия атрибута @Sendable в AdaptyUIBuilderLogic или аналогичные ошибки Sendability между модулями. Это происходит потому, что Tuist генерирует Xcode-проекты из SPM-пакетов, но не сохраняет настройку swift-tools-version: 6.0. В результате некоторые таргеты Adapty (Adapty, AdaptyUI, AdaptyUIBuilder) компилируются по правилам Swift 5, тогда как другие используют Swift 6, что вызывает межмодульные несоответствия @Sendable.

Решение: обновитесь до Adapty SDK 3.15.5 или более поздней версии — это устраняет проблему независимо от смешанных версий Swift.

Обходной путь: если обновиться не получается, явно задайте Swift 6 для всех трёх таргетов Adapty в конфигурации Tuist:

targetSettings: [
  "Adapty": .init().swiftVersion("6"),
  "AdaptyUI": .init().swiftVersion("6"),
  "AdaptyUIBuilder": .init().swiftVersion("6"),
]