Режим 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
-
Обновите ваш 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 - Если у вас нет секции
-
Примените изменения, выполнив команду
pod install