Does Your Privacy Policy Have to Be Public for App Store Review?
You're ready to submit your first app. You've built the screens, filled out App Store Connect, and now you're staring at the Privacy Policy URL field wondering: do I really have to make this public? What if someone finds it and rips off my idea before I even launch?
This question comes up in every iOS dev community, every week. The short answer is yes, your privacy policy must be publicly accessible — during review, and forever after. The long answer is that the worry behind the question is almost always misplaced, and there's one legitimate technique to reduce exposure without breaking Apple's rules.
What Apple Actually Requires
The rule lives in Guideline 5.1.1 of the App Store Review Guidelines:
"All apps must include a link to their privacy policy in the App Store Connect metadata field. The privacy policy must clearly and explicitly [...] confirm that any third parties with whom an app shares user data [...] provide the same or equal protection of user data."
App Store Connect enforces this by requiring a valid, working URL in the App Privacy section. Apple's reviewers actually open the link — it's one of the metadata checks they perform before approving the binary. If the URL is:
- Private (a GitHub gist set to "secret", a password-protected page, a link requiring auth)
- 404 (broken, typo'd, or unpublished)
- Gated (behind a cookie wall, age gate, or geo-fenced page)
- Unencrypted (plain HTTP — Apple now expects HTTPS)
...the submission gets Metadata Rejected, usually with a message like "We were unable to view your app's privacy policy at the URL provided." That adds 1–3 days to your timeline for a problem that takes five minutes to fix.
"But Someone Might Steal My Idea"
This is the real fear, and it's worth addressing head-on because it comes up constantly. Let's unpack why it almost never actually happens.
A privacy policy is not a product spec
A privacy policy describes what data you collect, how you store it, and who you share it with. It looks like this:
"We collect your email address to send account notifications. We use Stripe to process payments. We use Firebase Crashlytics to diagnose crashes. We do not sell your data to third parties."
That's it. There is no "how the feature works", no algorithm description, no UX flow. A competitor reading this learns nothing they couldn't learn by installing the app and tapping around for 30 seconds after launch.
Clones aren't built from policy pages
The apps that get clone-farmed (Wordle, Flappy Bird, Threes) were cloned from the shipped app, not from paperwork. Cloners watch the App Store charts, see what's trending, and copy the visible gameplay. They don't scrape privacy policies and reverse-engineer products from them.
The real moat is execution, not secrecy
If a competitor can build your app by reading two paragraphs about what data you store, your moat is not the idea — it's execution, distribution, and users. Those take months or years to build and can't be skipped by reading a legal document.
This isn't just my opinion. In a recent r/iOSProgramming thread where a developer raised the exact same concern, the top responses from experienced devs were blunt: "A privacy policy is there to be read" and "If a pre-release privacy policy puts your project at risk, you may have to rethink your business model." Harsh, but accurate.
You're Also Legally Required to Have One
Even setting Apple aside, you likely have legal obligations to publish a privacy policy regardless of whether Apple asks for one:
- California Consumer Privacy Act (CCPA) — requires a public privacy notice for any business that collects personal information from California residents. Applies to almost every app with US users.
- EU General Data Protection Regulation (GDPR) — Article 13 requires clear, accessible disclosure of data processing activities at the point of collection.
- Apple's App Tracking Transparency framework — if you show the ATT prompt or use IDFA, you're also subject to disclosure rules independent of Apple's policy URL requirement.
Hiding your privacy policy isn't just against Apple's rules — in most jurisdictions with any significant user base, it's against the law.
The Legitimate Middle Ground: Public But Not Indexed
Okay, so the policy has to be reachable. But "reachable by Apple's reviewers" and "indexed on Google" are two different things. Here's the one real workaround if you want to minimize pre-launch visibility:
Host on your own domain
Don't use raw.githubusercontent.com, a public gist, or a free document-hosting service. Those are either crawled constantly, limited by rate caps, or known to Apple as red flags. Use your own domain — even if the rest of the site is a placeholder landing page.
Add noindex to the policy page
In the HTML <head> of your privacy policy page:
<meta name="robots" content="noindex, nofollow">
This tells search engines "please don't index this URL or follow links from it." Google, Bing, and most reputable crawlers obey it. Apple's reviewers don't use search engines to find your URL — App Store Connect hands them the direct link — so they're unaffected.
Back it up with robots.txt
At yourdomain.com/robots.txt:
User-agent: *
Disallow: /privacy
This is belt-and-suspenders: the meta tag tells crawlers not to index, the robots.txt rule tells them not to visit at all.
What this gives you
- Apple sees the full policy when they open the URL → review passes cleanly
- Users who type the URL from the App Store listing after launch see the policy → legal compliance maintained
- Search engines skip the page → it doesn't show up in "privacy policy for [your niche]" queries before launch
- Someone who guesses your domain can still fetch the URL → this is not true secrecy, just reduced discoverability
The last bullet is the important honest caveat: noindex is an obstacle to discovery, not a lock. If you truly cannot tolerate your policy being readable by a motivated visitor, no hosting trick will solve that — only not submitting the app will.
What About Placeholder Content?
Some developers try to publish a minimal placeholder policy during review ("we don't collect anything") and swap in the real one later. This backfires in two ways:
- It mismatches your App Privacy label. App Store Connect's App Privacy section asks you to declare exactly what you collect. If your label says "email, purchase history, usage data" but your linked policy says "nothing", that's an inconsistency Apple's reviewers flag regularly under Guideline 5.1.1.
- It violates Apple's metadata policy. Guideline 5.1.2 specifically says the policy must "clearly and explicitly" describe your actual data practices. A placeholder that doesn't match reality is a rejection waiting to happen on any update, even if it slips through the first review.
Write the real policy before you submit. It doesn't need to be long — a 400-word template covering what data you collect, why, and who you share it with is enough for most indie apps.
Practical Checklist
Before you submit:
- Privacy policy URL is on a domain you control (not a gist or raw repo link)
- URL is HTTPS and returns a 200 status code from any IP, anywhere in the world
- Page is not behind a cookie banner that blocks content
- Content matches your App Privacy declarations in App Store Connect
-
noindexmeta tag androbots.txtrule are in place if you want pre-launch privacy - You've tested the URL in an incognito window with no session cookies
- You plan to keep this URL live for as long as the app is on the store
If all of those are true, you're ready. The 10 minutes you spend setting up a real hosted page will save you a metadata rejection round-trip.
Common Misconceptions
"A private GitHub repo with the raw file link is fine — Apple can still see it." It depends on what "private" means. Secret gists with the raw URL are sometimes reachable, but they can change behavior without warning, get rate-limited, or stop resolving. Apple's reviewers won't retry. Use your own domain.
"I can take the policy down after approval and put it back up later." No. The URL must remain live for the life of the app listing. Pulling it down is grounds for removal from the store, and users who installed earlier versions still have legal reason to expect access.
"If I host on my domain, I have to have a full website." No. A single-page site with just the privacy policy (and maybe a terms page and a contact email) is enough. Many indie apps are hosted on a $5/month VPS or a free static site host with nothing but these three pages.
"Cloudflare's 'Under Attack Mode' or a JS challenge will block idea theft." It will also block Apple's reviewers, who do not run JavaScript challenges or solve CAPTCHAs. Straight to metadata rejection.
Monitor Your Reviews Once You're Live
Getting approved is the first milestone — staying on top of user feedback after launch is the next one. AppStoreReview monitors your app across 175+ countries, sends instant alerts for negative reviews, and lets you set keyword filters so you can respond to issues before they snowball.
Frequently Asked Questions
Can I set my privacy policy URL to private or password-protect it during review?
No. Apple's reviewers will not follow password prompts, private repo links, or gated pages. Any URL that isn't publicly fetchable will cause a Guideline 5.1.1 or metadata rejection. The policy must be reachable by anyone, anywhere, over plain HTTPS.
Does the privacy policy have to stay public after launch?
Yes. Apple's Guideline 5.1.1 and App Store Connect's metadata rules require a persistently accessible URL for as long as your app is listed. Taking the policy offline after launch is grounds for removal. The same URL must also remain reachable for users who installed earlier versions of the app.
Can someone steal my app idea from the privacy policy text?
A privacy policy is a legal document describing what data you collect — not a product spec. It says 'we collect email and purchase history' not 'here is our machine-learning pipeline'. Clones are built from shipped apps and marketing, not policy pages. If your moat is a privacy policy nobody has read yet, the moat isn't real.
How do I keep my policy public but off Google's index before launch?
Host it on your own domain (not a gist or raw GitHub URL) and add a robots meta tag — 'noindex, nofollow' — plus a robots.txt disallow rule. Apple's reviewers still see it; search engines skip it. This is the one legitimate middle ground between 'fully public' and 'invisible'.