Режим Kids Mode во Flutter SDK

Если ваше Flutter-приложение предназначено для детей, необходимо соблюдать политики Apple и Google. Если вы используете Adapty SDK, несколько простых шагов помогут настроить его в соответствии с этими требованиями и успешно пройти проверку в стор.

Что нужно настроить?

Необходимо настроить SDK, чтобы отключить сбор следующих данных:

  • IDFA (Identifier for Advertisers) (iOS)
  • Android Advertising ID (AAID/GAID) (Android)
  • IP-адрес Кроме того, рекомендуем осторожно подходить к выбору customer user ID. Идентификатор в формате <FirstName.LastName> однозначно будет расценён как сбор персональных данных — так же, как и использование email. Для Kids Mode лучшей практикой является использование случайных или анонимизированных идентификаторов (например, хешированных ID или UUID, сгенерированных на устройстве) для обеспечения соответствия требованиям.

Включение Kids Mode

Настройки в дашборде Adapty

В дашборде Adapty необходимо отключить сбор IP-адресов. Для этого перейдите в App settings и нажмите Disable IP address collection в разделе Collect users’ IP address.

Обновления в коде вашего мобильного приложения

В соответствии с требованиями политик отключите сбор IDFA пользователя (для iOS), GAID/AAID (для Android) и IP-адреса.

Android: Обновите конфигурацию SDK

try {
    await Adapty().activate(
        configuration: AdaptyConfiguration(apiKey: 'YOUR_API_KEY')
          ..withGoogleAdvertisingIdCollectionDisabled(true)  // set to `true`
          ..withIpAddressCollectionDisabled(true),  // set to `true`
    );
} catch (e) {
    // handle the error
}

iOS: включение Kids Mode в SDK v4

В SDK v4 нативный iOS SDK устанавливается через Swift Package Manager, а Kids Mode включается через трейт KidsMode Swift Package, который исключает из компиляции весь код IDFA, AdSupport и AppTrackingTransparency. Для этого требуется Xcode 26 или выше.

В SDK v4 используйте пакет adapty_flutter_kids вместо adapty_flutter в файле pubspec.yaml. Это вариант плагина с Kids Mode — с тем же публичным API и той же версией; единственное отличие в том, что его нативный iOS SDK собран с трейтом KidsMode:

dependencies:
  adapty_flutter_kids: 4.0.0

Ваш код на Dart остаётся прежним — нужно лишь обновить импорт на новое имя пакета:

iOS: включение Kids Mode через CocoaPods (SDK v3)

  1. Обновите Podfile:

    • Если у вас нет секции post_install — добавьте весь блок кода ниже целиком.
    • Если секция post_install есть — добавьте в неё выделенные строки.
    def adapty_enable_kids_mode(installer)
      installer.pods_project.targets.each do |target|
        next unless target.name == 'Adapty'
        target.build_configurations.each do |config|
          flags = config.build_settings['OTHER_SWIFT_FLAGS'] || '$(inherited)'
          flags = flags.join(' ') if flags.is_a?(Array)
          config.build_settings['OTHER_SWIFT_FLAGS'] = "#{flags} -DADAPTY_KIDS_MODE"
        end
        target.frameworks_build_phase.files.dup.each do |bf|
          target.frameworks_build_phase.remove_build_file(bf) if bf.display_name.to_s.include?('AdSupport')
        end
      end
      installer.pods_project.save
      Dir.glob(File.join(installer.sandbox.root, 'Target Support Files', '**', '*.xcconfig')).each do |xc|
        File.write(xc, File.read(xc).gsub(/\s*-framework\s+"?AdSupport"?/, ''))
      end
    end
    
    post_install do |installer|
      # ... keep your existing post_install body (Flutter adds one automatically) ...
    
      adapty_enable_kids_mode(installer)   # <-- enable Adapty Kids Mode
    end
  2. Примените изменения, выполнив команду

    pod install