App Store Submission
Submit to the App Store — your privacy policy is one of the required fields.
Both Apple and Google require a privacy policy before your app can go live. Most indie builders skip this and get rejected. Here’s how to set it up in minutes.
Privacy Policy — Mandatory for all apps on both stores, even if your app collects no data. It describes what data your app collects and how it’s used.
Terms & Conditions — Recommended. Limits your liability and defines usage rules. Not strictly required by the stores, but protects you legally.
EULA (End User License Agreement) — Apple provides a standard EULA that’s automatically applied to all App Store apps. Select “Apple’s Standard EULA” in App Store Connect unless you have specific legal needs. You don’t need to write your own.
You don’t need a lawyer. Free tools generate compliant policies in minutes.
Go to a privacy policy generator
Pick one of these — they all produce store-ready output:
Answer questions about your app
The generator asks what data you collect (if any), whether you use analytics, ads, authentication, or third-party services. Be accurate — a policy that doesn’t match your app’s actual behavior can get you rejected or into legal trouble.
Review the generated policy
Read through it. Make sure it accurately describes what your app does. If your app uses Firebase for authentication, the policy should mention Google/Firebase as a third-party service. If you use AdMob, it should mention advertising data collection.
Export and host
Most generators give you a hosted URL automatically. If not, see the hosting options below.
You need a public URL for your privacy policy. Options from easiest to most professional:
/privacy-policy page.You need to provide your privacy policy URL in three places:
In App Store Connect, go to your app → App Information → Privacy Policy URL. Paste your URL there.
You also need to complete Apple’s App Privacy questionnaire in the same section. This generates the privacy “nutrition label” users see on your listing. Answer honestly based on what your app actually collects.
In the Google Play Console, go to your app → Store presence → Store listing → Privacy policy URL. Paste your URL there.
You also need to complete the Data Safety form under Policy → App content → Data safety. This generates the data safety section users see on your listing.
Inside your app: Both stores expect your privacy policy to be accessible from within the app itself. Ask Primio to add it:
“Add a Settings screen with a ‘Privacy Policy’ link that opens [your-url] in the browser when tapped, and a ‘Terms of Service’ link that opens [your-terms-url].”
Use the same generator tool — most bundle privacy policy and terms together. Host them at separate URLs or on the same page with clear sections.
Terms typically cover:
Both stores now require you to declare what data your app collects, even if the answer is “none.” These declarations are separate from your privacy policy — they’re interactive forms you fill out in each store’s console. Getting them wrong can delay or block your submission.
Common data types to consider:
If your app genuinely collects no data (no analytics, no auth, no ads), you can declare that. But most apps collect something, even if it’s just through Firebase.
The Data Safety form is in Google Play Console under Policy → App content → Data safety. It asks a series of questions about what data your app collects, whether it’s shared with third parties, and for what purpose. Here’s how to fill it out based on what your app uses.
Does your app collect or share any of the required user data types?
If your app uses any login system, analytics, or ads — the answer is Yes. Select “Yes” and proceed.
Is all of the user data encrypted in transit?
Select Yes. Flutter apps use HTTPS by default, which encrypts all data in transit.
Do you provide a way for users to request that their data is deleted?
If your app has user accounts, you should provide a delete account option. If your app has no accounts, select “No” — you can’t delete data you don’t store.
Select the data types your app collects
This is the most important step. Use the table below to determine what to select based on your Primio app’s integrations.
Data Safety declarations by integration:
| Integration | Data types to select | Collected or Shared? | Purpose |
|---|---|---|---|
| Firebase Auth | Email address, Name (if collected), User IDs | Collected | Account management |
| Firebase Analytics | App interactions, Device or other IDs | Collected | Analytics |
| AdMob | Device or other IDs, Ad data | Collected AND Shared | Advertising |
| Supabase (with auth) | Email address, User IDs | Collected | Account management |
| Supabase (with storage) | Files, Photos (if applicable) | Collected | App functionality |
| Crash reporting | Crash logs, Diagnostics | Collected | App functionality |
| No integrations | You can declare “No data collected” | — | — |
For each data type you select, Google asks follow-up questions:
Apple’s privacy labels (the “nutrition label” on your App Store listing) are configured in App Store Connect → your app → App Privacy.
Apple asks whether your app collects data in several categories and whether that data is “linked to the user” or “used to track the user.” Here’s how to answer based on your integrations.
Do you or your third-party partners collect data from this app?
If you use any login, analytics, or ads — select Yes. If your app truly has no backend, no analytics, and no ads, you can select No and you’re done.
Select the data categories your app collects
Use the table below to determine which categories to select.
For each category, answer the follow-up questions
Apple asks how each data type is used and whether it’s linked to the user’s identity.
App Privacy declarations by integration:
| Integration | Data categories to select | Linked to user? | Used for tracking? |
|---|---|---|---|
| Firebase Auth | Contact Info (email), Identifiers (user ID) | Yes | No |
| Firebase Analytics | Usage Data (product interaction), Identifiers (device ID) | No (unless you link analytics to user accounts) | No (unless used with ads) |
| AdMob | Identifiers (device ID), Usage Data | No | Yes — this is the key one. AdMob tracks users across apps for ad targeting. |
| Supabase (with auth) | Contact Info (email), Identifiers (user ID) | Yes | No |
| User-generated content | User Content (photos, files, etc.) | Yes | No |
Understanding Apple’s three categories:
Before submitting to either store, verify:
App Store Submission
Submit to the App Store — your privacy policy is one of the required fields.
Google Play Submission
Submit to Google Play — includes the Data Safety form walkthrough.