Режим 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 с помощью CocoaPods

  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|
      # ... сохраните существующее тело post_install (Flutter добавляет его автоматически) ...
    
      adapty_enable_kids_mode(installer)   # <-- включить Adapty Kids Mode
    end
  2. Примените изменения, выполнив команду

    pod install