Guideline 5.1.1 rejections: privacy policy and account deletion

Guideline 5.1.1 is the rejection for a missing privacy policy link inside the app, or an account that can be created in the app but not deleted from it. Both fixes are web pages your Rails app already has or can add in an afternoon, linked from a screen the native app shows.

#What Apple says

From the App Store Review Guidelines, 5.1.1(i):

All apps must include a link to their privacy policy in the App Store Connect metadata field and within the app in an easily accessible manner.

And 5.1.1(v):

If your app doesn't include significant account-based features, let people use it without a login. If your app supports account creation, you must also offer account deletion within the app.

#What the rejection says

In substance, one of: the app does not include a link to the privacy policy; the privacy policy URL in App Store Connect is missing or does not resolve; the app supports account creation but does not offer account deletion; the deletion flow only deactivates the account or requires emailing support; or the app requires personal information before it can be used.

#Why it happens to Ruby Native apps

The privacy policy link is in the web footer, and the footer has native-hidden on it, so native users never see it. Account deletion exists on the web but is buried in a settings page the app does not link to, or it is a "contact us" form. Apple has required in-app deletion since June 2022, and "in-app" means the user can start it from inside the app; a web page that runs inside the app counts, a link that opens Safari to a support form does not.

#The fix

  1. Put the privacy policy link on a screen native users see. A settings or profile page is the usual place. The page itself is your existing website policy; make sure it mentions the iOS app and push notification device tokens if you send them. App privacy.
  2. Add the same URL in App Store Connect under App Information, Privacy Policy URL.
  3. Add account deletion to the same settings page. A "Delete account" action that removes the account and its personal data, with a confirmation. Your web flow works inside the app with no native code. If deletion has to be delayed for legal reasons, say how long and what happens, and still let the user start it from the app. App Store review.
  4. Let people in without an account when the app does not need one for its core features. If every screen needs a signed-in user, that is fine; say so in the review notes.
  5. Reply once the pages are deployed. No new build is needed; the app loads them from your site.

#When the reviewer is wrong

If the links are there and the reviewer did not find them:

Thank you for the review. The privacy policy is linked from Settings > Privacy policy inside the app and at [URL] in App Store Connect. Account deletion is under Settings > Delete account, which removes the account and its data after a confirmation. Screenshots attached. We'd appreciate a second look under 5.1.1.

From Joe: TODO one line on what actually got an app through 5.1.1.

Rejected on privacy or deletion?

With the launch review, send the rejection to Joe from your dashboard. He replies within two business days with exactly what to change, or the reply to send when the links are already there.

See the launch review