Guides
Plan-enterprise-icon
Expo Application Services
API Reference

App Store Best Practices

This guide offers best practices for submitting your app to the app stores. To learn how to generate native binaries for submission, refer to "Creating your first build".
Warning-icon
Disclaimer: Review guidelines and rules are updated frequently, and enforcement of various rules can sometimes be inconsistent. There is no guarantee that your particular project will be accepted by either platform, and you are ultimately responsible for your app's behavior. That said, you can re-submit your app as needed to address feedback from reviews.
Versioning your app

Learn how to configure native runtime versions for your apps.

Arrow-right-icon
App Store presence

Manage your Apple App Store metadata from the command line.

Arrow-right-icon
Permissions

Refine native permissions and system dialog messages.

Arrow-right-icon
App icons

App stores have strict rules for home screen icons.

Arrow-right-icon
Splash screen

Create a seamless loading experience using with the splash screen API.

Arrow-right-icon
Status bar

Configure the native status bar to have high contrast on all screens.

Arrow-right-icon
Localizing your app

Prepare versions of your app for different languages and regions.

Arrow-right-icon
Apple: Review guidelines

Official Apple guide on preparing your app for App Store review.

Arrow-up-right-icon

Responsive design

It's a good idea to test your app on a device or simulator with a small screen (for example, an iPhone SE) and a large screen (for example, an iPhone X). Ensure your components render the way you expect, no buttons are blocked, and all text fields are accessible.
Try your app on tablets in addition to handsets. Even if you have ios.supportsTablet: false configured, your app will still render at phone resolution on iPads and must be usable.
Warning-icon
Apple may reject your app if elements don't render properly on an iPad, even if your app doesn't target the iPad form factor. Be sure and test your app on an iPad (or iPad simulator).

Privacy Policy

  • Starting October 3, 2018, all new iOS apps and app updates will be required to have a privacy policy in order to pass the App Store Review Guidelines.
  • Additionally, a number of developers have reported warnings from Google if their app does not have a privacy policy, since by default all apps built with the classic build service contain code for requesting the Android Advertising ID. Though this code may not be executed depending on which native APIs you use, we still recommend that all apps on the Google Play Store include a privacy policy as well.

App privacy questions

Beginning December 8, 2020, new app submissions and updates are required to provide information about their privacy practices in App Store Connect. See App privacy details on the App Store for more information.
Apple will ask you a series of questions when you submit the app. Depending on which libraries you use, your answers may vary. For example, if you use expo-updates, you will need to say Yes, we collect data from this app and then you will want to select Crash Data.
Triangle-down-icon
Are you using the classic build system? (expo build:[android|ios])
  • Select Yes, we collect data from this app. Click Next.
  • Select Device ID
    • Managed standalone apps using the Classic Build system include the Facebook, Facebook Ads, and Google AdMob SDKs, which still access the IDFA.
  • If you use expo-facebook, select Other Usage Data
  • If you use expo-updates, select Crash Data
    • Errors that occur when launching an update are collected when a new update is requested.
  • If you use Facebook Ads and/or Google AdMob SDKs, select Advertising Data
Info-icon
Supplement the above guidance with additional disclosures based on the data your particular app and the third-party services you use collect.
  • Message-iconAsk a question on the forums
  • Edit-iconEdit this page

Was this doc helpful?