๐ A. Required URLs
These URLs must be live before you submit to any store. Use Firebase Hosting, Cloudflare Pages, or any web host.
Marketing URL
https://aifilter.app
Your landing page โ required by both stores.
Privacy Policy URL
https://aifilter.app/privacy
Must be publicly accessible. Used in App Store Connect and Play Console.
Terms of Service URL
https://aifilter.app/terms
Required for apps with subscriptions or IAP.
Support URL
https://aifilter.app/support
Or use mailto:support@aifilter.app โ required by both stores.
Delete Account URL
https://aifilter.app/delete-account
Required by Apple (App Review Guideline 5.1.1) and Google (for apps with accounts).
app-ads.txt
https://aifilter.app/app-ads.txt
Required by AdMob / IAB to authenticate your publisher ID. Prevents ad fraud.
app-ads.txt content:
google.com, pub-XXXXXXXXXXXXXXXX, DIRECT, f08c47fec0942fa0
Replace pub-XXXXXXXXXXXXXXXX with your AdMob Publisher ID from admob.google.com.
๐ B. Apple App Store โ Required Declarations
B1. App Information (App Store Connect)
Subtitle
100+ AI Filters & Effects
Category (Primary)
Photo & Video
Category (Secondary)
Entertainment
Age Rating
4+ (no objectionable content)
Content Rights
Does not contain, show, or access third-party content
Encryption
Yes โ uses standard HTTPS (qualifies for EAR exemption)
Answer "Yes" to encryption, then "Yes" to "Uses only exempt encryption". No export certificate needed.
Advertising Identifier (IDFA)
Yes โ for serving ads via AdMob
Tick: "Serve advertisements within the app"
B2. Apple Privacy Nutrition Label (Required)
Complete this in App Store Connect โ App Privacy. Declare ALL data types your app collects.
| Data Category | Data Type | Collected? | Linked to User? | Used for Tracking? | Purpose |
| Contact Info | Email Address | YES | YES | NO | Account, App Functionality |
| Contact Info | Name | YES | YES | NO | Account, App Functionality |
| Contact Info | Phone Number | OPTIONAL | YES | NO | App Functionality |
| User Content | Photos or Videos | NO โ on-device only | NO | NO | App Functionality (local only) |
| Identifiers | User ID | YES | YES | NO | Analytics, App Functionality |
| Identifiers | Device ID / Ad ID | YES | NO (AdMob uses for ads) | YES (AdMob) | Advertising |
| Purchases | Purchase History | YES | YES | NO | App Functionality, Analytics |
| Usage Data | Product Interaction | YES | NO (anonymised) | NO | Analytics, Product Personalisation |
| Diagnostics | Crash Data | YES | NO | NO | App Functionality (bug fixing) |
| Diagnostics | Performance Data | YES | NO | NO | App Functionality |
| Other Data | Age, Gender, Country | YES | YES | NO | App Functionality, Analytics |
B3. App Capabilities (Xcode โ Signing & Capabilities)
๐
Sign In with Apple
Required when Google Sign-In is offered โ App Store Guideline 4.8
REQUIRED
๐ฌ
Push Notifications
FCM push notifications โ streak reminders
REQUIRED
๐ณ
In-App Purchase
Pro subscriptions via RevenueCat
REQUIRED
B4. App Store Review Notes
Include these notes in the "Notes for App Review" field:
โข All AI processing is fully on-device. Photos are never uploaded to any server.
โข Camera permission is needed to take photos for editing. Photo library permission is needed to import and export images.
โข The app shows rewarded video ads (AdMob). Users must complete watching to earn coins โ no forced autoplay.
โข Delete Account is available at Settings โ Delete Account. It permanently removes all user data.
โข Pro features are gated behind a subscription or coin system. A free tier exists with 70+ filters.
โข ATT prompt appears on first launch before any personalised ads are shown.
๐ค C. Google Play Store โ Required Declarations
C1. App Information (Play Console)
Short Description
100+ AI filters: cartoon, anime, sketch, beauty & more โ fully offline
Content Rating
Everyone (PEGI 3 / ESRB Everyone)
Complete the content rating questionnaire in Play Console.
Target Age Group
13 and older
Target SDK
API 35 (Android 15)
Required by Google Play as of August 2025.
C2. Google Play Data Safety Form (Required)
Complete in Play Console โ App Content โ Data Safety. Your answers must match your Privacy Policy.
| Section | Data Type | Collected? | Shared? | Required? | Purpose |
| Personal info | Name | YES | NO | Required | Account management |
| Personal info | Email address | YES | NO | Required | Account management |
| Personal info | User IDs | YES | Analytics providers | Required | App functionality, analytics |
| Financial info | Purchase history | YES | RevenueCat | Required | App functionality |
| Photos & videos | Photos | NO โ on-device only | NO | Optional | App functionality (local) |
| App activity | App interactions | YES | Firebase Analytics | Required | Analytics |
| App info & performance | Crash logs | YES | Firebase Crashlytics | Required | Bug fixes |
| Device or other IDs | Device or other IDs | YES | AdMob | Required | Advertising |
Advertising ID declaration: Answer YES to "Does your app collect or share advertising IDs?" AdMob requires this. Select purpose: "Advertising or marketing".
C3. Sensitive Permissions Declaration
In Play Console โ App Content, you must explain the purpose of each sensitive permission:
๐ท
CAMERA
Take photos and videos for editing with AI filters. All processing is on-device.
REQUIRED
๐ผ๏ธ
READ_MEDIA_IMAGES / READ_EXTERNAL_STORAGE
Import images from the photo library for editing. Required to apply AI filters to existing photos.
REQUIRED
๐พ
WRITE_EXTERNAL_STORAGE
Save edited photos to the device gallery. Android 9 and below only (maxSdkVersion=29).
REQUIRED
๐
POST_NOTIFICATIONS
Send streak reminder and promotional push notifications via Firebase Cloud Messaging.
OPTIONAL
๐ถ
INTERNET
Required for Firebase services (auth, Firestore sync, analytics), AdMob ads, RevenueCat, and one-time AI model download.
REQUIRED
๐ณ
VIBRATE
Haptic feedback on coin earn and export completion.
OPTIONAL
๐ฆ D. Third-Party SDKs & Open-Source Licenses
All SDKs used in the app, their purposes, and licenses. Declare these in both stores when prompted about third-party code.
Google Firebase Suite
firebase_core, firebase_auth, cloud_firestore, firebase_storage, firebase_analytics, firebase_crashlytics, firebase_messaging, firebase_remote_config
Authentication, database, file storage, analytics, crash reporting, push notifications, feature flags
Apache 2.0
Google AdMob
google_mobile_ads ^5.1.0
Rewarded video, banner, and interstitial advertising. Users earn coins for watching rewarded ads.
Google APIs ToS
RevenueCat
purchases_flutter ^6.29.1
In-app subscription and purchase management. Tracks entitlements across iOS and Android.
MIT
Google ML Kit โ Text Recognition
google_mlkit_text_recognition ^0.13.0
On-device OCR for 4 scripts (Latin, Hindi, Japanese, Chinese). No data leaves the device.
Apache 2.0
Google ML Kit โ Face Detection
google_mlkit_face_detection ^0.11.0
On-device face landmark detection for beauty filters. No data leaves the device.
Apache 2.0
TensorFlow Lite
tflite_flutter ^0.10.4
On-device AI inference for DeepLab background segmentation (background blur, sky replace). Model downloaded once from TF Hub.
Apache 2.0
Flutter Riverpod
flutter_riverpod ^2.5.1
State management framework for the app.
MIT
GoRouter
go_router ^13.2.0
Navigation and deep link routing.
BSD 3-Clause
Google Sign-In
google_sign_in ^6.2.1
Optional sign-in method using a Google account.
Apache 2.0
Sign In with Apple
sign_in_with_apple ^6.1.0
Optional iOS sign-in method using an Apple ID.
MIT
Hive (local database)
hive_flutter ^1.1.0
Local offline storage for settings, coin balance, filter cache, and language preference.
Apache 2.0
photo_manager
photo_manager ^3.3.0
Access device photo library for import and export of images.
Apache 2.0
Live camera preview with capture, zoom, focus, and flash controls.
BSD 3-Clause
HTTP client for one-time AI model download from TensorFlow Hub CDN.
MIT
share_plus
share_plus ^9.0.0
System share sheet for sharing edited photos to external apps.
BSD 3-Clause
image_cropper
image_cropper ^7.0.1
Native crop and rotate tool.
Apache 2.0
connectivity_plus
connectivity_plus ^6.0.3
Monitor internet connectivity to queue AI model downloads and resume automatically.
BSD 3-Clause
Flutter (framework)
SDK 3.19+
Cross-platform mobile framework. Powers all UI and native bridges.
BSD 3-Clause
โก E. GPU Shaders & AI Model Licenses
15 Custom GLSL GPU Fragment Shaders
All 15 GPU shaders (cartoon.frag, comic.frag, painting.frag, cinematic.frag, retro.frag, beauty.frag, distortion.frag, color_effects.frag, manga.frag, pop_art.frag, sketch.frag, halftone.frag, swirl.frag, fisheye.frag, crt.frag) are original works created for this app. No third-party shader libraries were used. You own full copyright over these shaders.
DeepLab v3 Segmentation Model
Source: TensorFlow Hub (storage.googleapis.com/download.tensorflow.org). License: Apache 2.0. The model is downloaded on-device and used locally. No data is sent to Google during inference. Attribution: Google LLC, TensorFlow Authors.
Portrait Enhance Model
Source: MediaPipe / TF Hub. License: Apache 2.0. On-device inference only. Attribution: Google LLC, MediaPipe Authors.
Declaration for App Stores: "This app uses machine learning models from TensorFlow Hub (Apache 2.0 license) for on-device image segmentation. All inference is performed locally on the user's device. No images are transmitted to any external server."
๐๏ธ F. Delete Account โ Required Declaration
Apple App Store Guideline 5.1.1(v) and Google Play Account Deletion Policy both require that apps with accounts must provide a way to delete accounts both within the app and via a web URL.
In-App Delete Account (Already Implemented)
Settings โ Delete Account โ Confirmation dialog โ Permanent deletion of:
- Firebase Authentication account
- Firestore user profile (users/{uid})
- Firestore referral record (referrals/{uid})
- Firebase Storage profile image (profile_images/{uid})
- Local Hive cache
Web Delete Account URL (Required)
Host a web page at https://aifilter.app/delete-account that allows users to request account deletion without opening the app. This page is also included in the HTML files delivered with this project.
๐ฃ G. App Store Listing Content
Suggested App Description (Short โ 80 chars)
100+ AI filters: cartoon, anime, sketch, beauty & more โ fully offline
Suggested App Description (Full)
Transform your photos with 100+ AI-powered filters โ all working offline, right on your device.
AI Photo Editor brings Hollywood-grade effects, portrait beauty tools, background removal, and anime-style art to your fingertips โ with no internet required after setup.
โข 90+ filters: cartoon, anime, manga, sketch, oil painting, cinematic LUT grades, VHS retro, bokeh, and more
โข AI background removal and sky replacement powered by DeepLab
โข Beauty filters: skin smoothing, face brighten, slim face, teeth whitening
โข 7 adjustment sliders: brightness, contrast, saturation, temperature, vignette, sharpness, hue
โข Collage maker with 5 layouts
โข Text scanner (OCR) in 4 scripts: Latin, Hindi, Japanese, Chinese
โข Earn coins by watching ads, sharing, and daily streaks โ unlock Pro with coins
โข Available in 15 languages including Hindi, Arabic, Urdu, Japanese, Korean
Keywords (App Store)
photo editor, AI filters, cartoon filter, anime filter, background remover, portrait beauty, sketch effect, cinematic, vintage, photo effects, offline photo editor, AI art
What's New (Version 1.0.0)
๐ Welcome to AI Photo Editor! Our first release brings you 90+ AI-powered filters, portrait beauty tools, background removal, OCR text scanner, a collage maker, and a coin reward system โ all working offline on your device.