Chế độ Trẻ em trong Flutter SDK

Nếu ứng dụng Flutter của bạn dành cho trẻ em, bạn phải tuân thủ chính sách của AppleGoogle. Nếu đang sử dụng Adapty SDK, bạn chỉ cần thực hiện vài bước đơn giản để cấu hình SDK đáp ứng các chính sách này và vượt qua quá trình xét duyệt của cửa hàng ứng dụng.

Yêu cầu là gì?

Bạn cần cấu hình Adapty SDK để tắt việc thu thập:

  • IDFA (Identifier for Advertisers) (iOS)
  • Android Advertising ID (AAID/GAID) (Android)
  • Địa chỉ IP Ngoài ra, chúng tôi khuyên bạn nên thận trọng khi sử dụng customer user ID. User ID có định dạng <FirstName.LastName> chắc chắn sẽ bị coi là thu thập dữ liệu cá nhân, tương tự như việc sử dụng email. Đối với Kids Mode, phương pháp tốt nhất là sử dụng các định danh ngẫu nhiên hoặc ẩn danh (ví dụ: hashed ID hoặc UUID do thiết bị tạo ra) để đảm bảo tuân thủ quy định.

Bật Chế độ Trẻ em

Cập nhật trong Adapty Dashboard

Trong Adapty Dashboard, bạn cần tắt tính năng thu thập địa chỉ IP. Để thực hiện, vào App settings và nhấn Disable IP address collection trong phần Collect users’ IP address.

Cập nhật trong mã nguồn ứng dụng di động của bạn

Để tuân thủ chính sách, hãy tắt tính năng thu thập IDFA (cho iOS), GAID/AAID (cho Android) và địa chỉ IP của người dùng.

Android: Cập nhật cấu hình SDK của bạn

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: Bật Chế độ trẻ em trong SDK v4

Trong SDK v4, native iOS SDK được cài đặt qua Swift Package Manager, và Chế độ trẻ em được bật thông qua trait KidsMode của Swift package — trait này sẽ loại bỏ toàn bộ code liên quan đến IDFA, AdSupport và AppTrackingTransparency trong quá trình biên dịch. Yêu cầu Xcode 26 trở lên.

Trong SDK v4, hãy dùng package adapty_flutter_kids thay cho adapty_flutter trong pubspec.yaml. Đây là biến thể Chế độ trẻ em của plugin với cùng public API và cùng phiên bản — điểm khác biệt duy nhất là native iOS SDK của nó được build với trait KidsMode:

dependencies:
  adapty_flutter_kids: 4.0.0

Mã Dart của bạn vẫn giữ nguyên — chỉ cần cập nhật import sang tên package mới:

iOS: Bật Kids Mode bằng CocoaPods (SDK v3)

  1. Cập nhật Podfile của bạn:

    • Nếu bạn chưa có mục post_install, hãy thêm toàn bộ đoạn code bên dưới.
    • Nếu bạn đã có mục post_install, hãy gộp các dòng được highlight vào đó.
    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. Áp dụng các thay đổi bằng cách chạy

    pod install