If your iOS application is intended for kids, you must follow the policies of Apple. If you’re using the Adapty SDK, a few simple steps will help you configure it to meet these policies and pass app store reviews.
What’s required?
You need to configure the Adapty SDK to disable the collection of:
In addition, we recommend using customer user ID carefully. User ID in format <FirstName.LastName> will be definitely treated as gathering personal data as well as using email. For Kids Mode, a best practice is to use randomized or anonymized identifiers (e.g., hashed IDs or device-generated UUIDs) to ensure compliance.
Enabling Kids Mode
Updates in the Adapty Dashboard
In the Adapty Dashboard, you need to disable the IP address collection. To do this, go to App settings and click Disable IP address collection under Collect users’ IP address.
Updates in your mobile app code
Starting with SDK 4.0, Kids Mode is a Swift package trait named KidsMode. Enabling the trait compiles out IDFA and AdSupport across the whole SDK — you keep the regular Adapty and AdaptyUI modules and the regular import Adapty / import AdaptyUI statements.
The KidsMode trait is available starting from SDK version 4.0. Starting with SDK 4.0, the SDK is installed via Swift Package Manager only — CocoaPods is no longer supported.
In Xcode 26.4 or later, open your project settings, go to the Package Dependencies view, and enable the KidsMode trait for the AdaptySDK-iOS dependency.
Xcode versions earlier than 26.4 can’t enable traits for an Xcode project from the UI. In that case, add a small local Swift package that depends on Adapty with the KidsMode trait enabled (see the Package.swift tab), and make your app target depend on that package.
If you add Adapty as a dependency in Package.swift, enable the trait in the package declaration. Traits require swift-tools-version 6.1 or later.
If your iOS application is intended for kids, you must follow the policies of Apple. If you’re using the Adapty SDK, a few simple steps will help you configure it to meet these policies and pass app store reviews.
What’s required?
You need to configure the Adapty SDK to disable the collection of:
In addition, we recommend using customer user ID carefully. User ID in format <FirstName.LastName> will be definitely treated as gathering personal data as well as using email. For Kids Mode, a best practice is to use randomized or anonymized identifiers (e.g., hashed IDs or device-generated UUIDs) to ensure compliance.
Enabling Kids Mode
Updates in the Adapty Dashboard
In the Adapty Dashboard, you need to disable the IP address collection. To do this, go to App settings and click Disable IP address collection under Collect users’ IP address.
Updates in your mobile app code
In order to comply with policies, disable the collection of the user’s IDFA and IP address.
If you use Swift Package Manager, you can enable Kids Mode by selecting the Adapty_KidsMode module in Xcode when installing the SDK.
In Xcode, go to File -> Add Package Dependency…. Note that the steps to add package dependencies may vary between Xcode versions, so refer to Xcode documentation if needed.
Enter the repository URL:
https://github.com/adaptyteam/AdaptySDK-iOS.git
Select the version (latest stable version is recommended) and click Add Package.
In the Choose Package Products window, select the modules you need:
Adapty_KidsMode (core module)
AdaptyUI_KidsMode (optional - only if you plan to use Paywall Builder)
You won’t need any other packages.
Click Add Package to complete the installation.
In your code, write import Adapty_KidsMode instead of import Adapty, and import AdaptyUI_KidsMode instead of import AdaptyUI:
import Adapty_KidsModeimport AdaptyUI_KidsMode
Update your Podfile:
If you don’t have a post_install section, add the entire code block below.
If you do have a post_install section, merge the highlighted lines into it.
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"?/, '')) endendpost_install do |installer| # ... keep your existing post_install body (Flutter adds one automatically) ... adapty_enable_kids_mode(installer) # <-- enable Adapty Kids Modeend