Проверка статуса подписки в iOS SDK

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

В этой статье показано, как читать состояние профиля и принимать решение: показывать пейвол или давать доступ к платным функциям.

Получение статуса подписки

Когда нужно решить, показать пейвол или платный контент, проверяется уровень доступа в профиле пользователя. Есть два варианта:

  • Вызвать getProfile, если нужны актуальные данные прямо сейчас (например, при запуске приложения) или принудительно обновить профиль.
  • Настроить автоматические обновления профиля, чтобы хранить локальную копию, которая автоматически обновляется при изменении статуса подписки.

По умолчанию в Adapty уже существует уровень доступа premium. Если вам не нужно больше одного уровня доступа, можно просто использовать premium.

Получить профиль

Самый простой способ получить статус подписки — вызвать метод getProfile:

Отслеживание обновлений подписки

Чтобы автоматически получать обновления профиля в приложении:

  1. Реализуйте протокол AdaptyDelegate в удобном для вас типе и добавьте метод didLoadLatestProfile — Adapty будет автоматически вызывать его при каждом изменении статуса подписки пользователя. В примере ниже используется тип SubscriptionManager, который берёт на себя работу с подписками и профилем пользователя. Его можно внедрить как зависимость, создать как синглтон в UIKit-приложении или добавить в окружение SwiftUI из главной структуры приложения.
  2. Сохраняйте обновлённые данные профиля при каждом вызове этого метода, чтобы использовать их в приложении без лишних сетевых запросов.
class SubscriptionManager: AdaptyDelegate {

    nonisolated func didLoadLatestProfile(_ profile: AdaptyProfile) {
        let hasAccess = profile.accessLevels["YOUR_ACCESS_LEVEL"]?.isActive ?? false
        // Update UI, unlock content, etc.
    }
}

// Set delegate after Adapty activation
Adapty.delegate = subscriptionManager

Adapty автоматически вызывает didLoadLatestProfile при запуске приложения, предоставляя кешированные данные о подписке даже при отсутствии интернета.

Связь профиля с логикой пейвола

Когда нужно сразу принять решение — показать пейвол или открыть доступ к платным функциям, — можно напрямую проверить профиль пользователя. Этот подход удобен при запуске приложения, входе в разделы с премиум-контентом или перед отображением определённого контента.

Следующие шаги

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

Если у вас нет собственной системы аутентификации — ничего страшного, Adapty сам управляет пользователями. Но вы всё равно можете прочитать гайд, чтобы узнать, как Adapty работает с анонимными пользователями.