{"id":7574,"date":"2025-07-25T12:14:16","date_gmt":"2025-07-25T10:14:16","guid":{"rendered":"https:\/\/pagepro.co\/blog\/?p=7574"},"modified":"2026-03-05T12:13:07","modified_gmt":"2026-03-05T11:13:07","slug":"publishing-expo-react-native-app-to-ios-and-android","status":"publish","type":"post","link":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/","title":{"rendered":"Publishing Expo Apps to App Store and Google Play Store: 2026 Guide"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"tldr\">TL;DR<\/h2>\n\n\n\n<p>\u2022 Expo simplifies the process of building and deploying cross-platform mobile applications for both iOS and Android.<\/p>\n\n\n\n<p>\u2022 Publishing an Expo app requires preparing the project configuration, including app metadata, bundle identifiers, and platform-specific settings.<\/p>\n\n\n\n<p>\u2022 Developers typically build production-ready binaries using Expo\u2019s build services before submitting the app to distribution platforms.<\/p>\n\n\n\n<p>\u2022 Apps must be submitted separately to the Apple App Store and Google Play, each with its own review process and publishing requirements.<\/p>\n\n\n\n<p>\u2022 Proper testing, version management, and store configuration are important to ensure successful submission and approval.<\/p>\n\n\n\n<p>\u2022 Following the correct publishing workflow helps teams release Expo applications efficiently while maintaining compliance with app store guidelines.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"introduction\"><strong>Getting Your Expo Application to the App Stores<\/strong><\/h2>\n\n\n\n<p>Publishing Expo app is <strong>the most important, and often most painful<\/strong>, part of mobile app development. But worry not! We\u2019ve got you covered.<\/p>\n\n\n\n<p>The article I&#8217;ve prepared will guide you through the entire process, step by step. <strong>We&#8217;ll go through the initial app setup and up until the moment users can download your app from the stores.<\/strong><\/p>\n\n\n\n<p>While explaining the mobile app publishing process, I&#8217;ll go over some essentials:<\/p>\n\n\n\n<ul>\n<li>How to build standalone apps<\/li>\n\n\n\n<li>What are the requirements and app signings<\/li>\n\n\n\n<li>And other important things that will make the publishing process easier.<\/li>\n<\/ul>\n\n\n\n<p>Have problems with publishing or coding your app? Consider outsourcing <a href=\"https:\/\/pagepro.co\/services\/react-native-development\"><strong>React Native development<\/strong><\/a> to an experienced agency like Pagepro.<\/p>\n\n\n\n<p>I&#8217;ll start with frequently asked questions and the requirements your <a href=\"https:\/\/pagepro.co\/blog\/expo-apps\/\"><strong>Expo app<\/strong><\/a> needs to fulfill.<\/p>\n\n\n<div class=\"c-newsletter-sendgrid-wrapper js-newsletter-sendgrid-wrapper ga-filedownload-viewed\">\n    <div class=\"c-newsletter-sendgrid\">\n                    <p class=\"c-newsletter-sendgrid__title\">\n                Get Your Essential Checklist for Publishing Expo React Native Apps            <\/p>\n        \n         \n            <p class=\"c-newsletter-sendgrid__description\">\n                A step-by-step guide to deploying apps with confidence and ease.            <\/p>\n        \n        <form action=\"\" class=\"c-newsletter-sendgrid__form f-form js-newsletter-sendgrid\" data-key=\"b59fc663-b9b3-465f-8d97-58e1b3636234\">\n            <div class=\"c-newsletter-sendgrid__form-mail\">\n                <label class=\"c-label\" for=\"newsletter_email\">Company E-mail address<\/label>\n                <input class=\"c-input js-newsletter-sendgrid-email\" type=\"email\" id=\"newsletter_email\" required>\n                <input class=\"c-newsletter-sendgrid__button ga-cta-filedownload\" type=\"submit\" value=\"Download Now\">\n            <\/div>\n            <div class=\"c-newsletter-sendgrid__form-consent\">\n                                                        <input class=\"c-checkbox js-newsletter-consent\" type=\"checkbox\" name=\"newsletter_consent\" id=\"newsletter_consent_1\" required>\n                    <label class=\"c-label\" for=\"newsletter_consent_1\">By providing your e-mail address, you agree to our Privacy Policy. We will not send you any spam \u2013 only link for downloading the e-book and probably some more useful resources in the future.<\/label>\n                            <\/div>\n        <\/form>\n\n        <div class=\"c-newsletter-sendgrid__cover-container\">\n                            <img decoding=\"async\" class=\"c-newsletter-sendgrid__cover-1\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2023\/08\/Ebook-Expo-React-Native.png\" alt=\"Cover image with red and black geometric shapes, the Pagepro logo, and white text: Publishing Expo App React Native\u2014Your Essential Checklist.\" >\n                                                    <span class=\"c-newsletter-sendgrid__type\">PDF<\/span>\n                    <\/div>\n\n        <div class=\"c-newsletter-sendgrid__popup-wrapper js-newsletter-sendgrid-popup is-hidden\">\n            <div class=\"c-newsletter-sendgrid__popup\">\n                <div class=\"c-newsletter-sendgrid__popup-icon\">\n                    <svg width=\"140\" height=\"140\" viewBox=\"0 0 140 140\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <g clip-path=\"url(#clip0_6621_2135)\">\n                    <path d=\"M65.625 100.625C65.625 109.908 69.3125 118.81 75.8763 125.374C82.44 131.938 91.3424 135.625 100.625 135.625C109.908 135.625 118.81 131.938 125.374 125.374C131.938 118.81 135.625 109.908 135.625 100.625C135.625 91.3424 131.938 82.44 125.374 75.8763C118.81 69.3125 109.908 65.625 100.625 65.625C91.3424 65.625 82.44 69.3125 75.8763 75.8763C69.3125 82.44 65.625 91.3424 65.625 100.625Z\" stroke=\"#0A2B3D\" stroke-width=\"8.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <path d=\"M116.223 90.4517L99.2774 113.044C98.9005 113.545 98.4206 113.959 97.8701 114.259C97.3196 114.558 96.7113 114.737 96.0862 114.781C95.461 114.826 94.8335 114.736 94.246 114.518C93.6584 114.3 93.1244 113.959 92.6799 113.517L83.9299 104.767\" stroke=\"#0A2B3D\" stroke-width=\"8.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <path d=\"M48.125 91.875H13.125C10.8044 91.875 8.57876 90.9531 6.93782 89.3122C5.29687 87.6712 4.375 85.4456 4.375 83.125V13.125C4.375 10.8044 5.29687 8.57876 6.93782 6.93782C8.57876 5.29687 10.8044 4.375 13.125 4.375H118.125C120.446 4.375 122.671 5.29687 124.312 6.93782C125.953 8.57876 126.875 10.8044 126.875 13.125V52.5\" stroke=\"#0A2B3D\" stroke-width=\"8.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <path d=\"M124.898 7.5835L77.3909 44.1235C74.0176 46.7185 69.881 48.1255 65.625 48.1255C61.3691 48.1255 57.2325 46.7185 53.8592 44.1235L6.35254 7.5835\" stroke=\"#0A2B3D\" stroke-width=\"8.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <\/g>\n                    <defs>\n                    <clipPath id=\"clip0_6621_2135\">\n                    <rect width=\"140\" height=\"140\" fill=\"white\"\/>\n                    <\/clipPath>\n                    <\/defs>\n                    <\/svg>\n                <\/div>\n                                    <p class=\"c-newsletter-sendgrid__popup-text\">\n                        Check your inbox for free materials                    <\/p>\n                                <div class=\"c-newsletter-sendgrid__popup-action\">\n                    <button class=\"c-newsletter-sendgrid__button c-newsletter-sendgrid__button--full-width js-newsletter-sendgrid-popup-close\">Close<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-do-you-need-to-publish-an-expo-app\">What Do You Need to Publish an Expo App?<\/h2>\n\n\n\n<ul>\n<li><strong>Expo Account:<\/strong> You will need an account on the <a href=\"http:\/\/expo.dev\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>expo.dev<\/strong><\/a> to use their services, such as EAS Build and EAS Submit.<\/li>\n\n\n\n<li><strong>Installed EAS CLI: <\/strong>The <a href=\"https:\/\/github.com\/expo\/eas-cli\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>eas-cli<\/strong><\/a> is a tool that will allow you to interact with EAS services from the command line. You need to install and configure it according to the Expo documentation.<\/li>\n\n\n\n<li><strong>Apple Developer Account. <\/strong>To release apps for the Apple App Store, you need a dev account with<strong> $99 USD<\/strong> <a href=\"https:\/\/developer.apple.com\/programs\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>Apple Developer Program<\/strong><\/a> subscription.<\/li>\n\n\n\n<li>Google Play Console Account. You can&#8217;t upload apps to the Google Play Store unless you have a <strong><a href=\"https:\/\/play.google.com\/console\/about\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">membership<\/a><\/strong>, which costs <strong>a one-time fee of $25 USD<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p>If you have all these, you can proceed to the next step: <strong>project configuration<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"configure-your-mobile-app-project\"><span class=\"underline-accent\">Configure Your Mobile App Project<\/span><\/h3>\n\n\n\n<p>Before publishing the Expo app, y<strong>ou have to add the build information to the <code>app.json<\/code> file<\/strong>.<br><br>The app configuration files (<code>app.json<\/code>, <code>app.config.js<\/code>, <code>app.config.ts<\/code>) are utilized for setting up Expo Prebuild generation, determining how a project loads in Expo Go, and managing the <a href=\"https:\/\/pagepro.co\/blog\/ota-updates-with-expo\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>OTA update<\/strong><\/a> manifest.<\/p>\n\n\n\n<p>It\u2019s a little like prepping ingredients for a dinner. What you need is:<\/p>\n\n\n\n<ul>\n<li><strong>Name: <\/strong>Your app\u2019s name, clear and simple.<\/li>\n\n\n\n<li><strong>Icon:<\/strong> The visual symbol that represents your app.<\/li>\n\n\n\n<li><strong>Version:<\/strong> The version number of your app. Typically, devs start with 1.0, or 0.1.0, and go from there.<\/li>\n\n\n\n<li><strong>Bundle Identifier and Build Number (iOS):<\/strong> These are iOS-specific details for recognition.<\/li>\n\n\n\n<li><strong>Package Name and Version Code (Android):<\/strong> Android\u2019s version of the same details.<\/li>\n\n\n\n<li><strong>Slug:<\/strong> An Expo-specific touch for a clean URL.<\/li>\n<\/ul>\n\n\n\n<p>It should look like this example:<\/p>\n\n\n\n<pre class=\"wp-block-code-mind-code c-code\"><code class=\"json\">{\n \"expo\": {\n   \"name\": \"test-publish-app\",\n   \"slug\": \"test-publish-app\",\n   \"version\": \"1.0.0\",\n   \"orientation\": \"portrait\",\n   \"icon\": \".\/assets\/icon.png\",\n   \"ios\": {\n     \"supportsTablet\": true,\n     \"bundleIdentifier\": \"com.pagepro.testpublishapp\",\n     \"buildNumber\": \"1.0.0\"\n   },\n   \"android\": {\n     \"adaptiveIcon\": {\n       \"foregroundImage\": \".\/assets\/adaptive-icon.png\",\n       \"backgroundColor\": \"#FFFFFF\"\n     },\n     \"package\": \"com.pagepro.testpublishapp\",\n     \"versionCode\": 1\n   },\n }\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"build-app\"><span class=\"underline-accent\"><strong>Build App with EAS<\/strong><\/span><\/h3>\n\n\n\n<p>If you have filled things correctly in the <code>app.json<\/code>, the next step in publishing the Expo app is <strong>triggering the build application<\/strong> by running <code>eas-cli<\/code>.<\/p>\n\n\n\n<p>With <strong>EAS Build<\/strong>, you can generate a fully prepared binary for your app, suitable for submission to the Google Play Store or App Store.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"log-in\">Log In<\/h4>\n\n\n\n<p>The first thing you need to do is <strong>log in to your Expo account<\/strong>. To do this, enter the following command in the console: <code>eas login<\/code>. To verify your login status, you can use the command: <code>eas whoami<\/code>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"configure-eas\">Configure EAS<\/h4>\n\n\n\n<p><br>To set up an Android or iOS project for EAS Build, execute the following command: <code>eas build:configure<\/code><\/p>\n\n\n\n<p>EAS CLI will carry out the following steps during the project configuration process:<\/p>\n\n\n\n<p><strong>1. Select the Platform(s) You Want to Configure.<\/strong><\/p>\n\n\n\n<p>When you execute the command for the first time, <strong>it will set up your EAS project and prompt you to choose the platform(s)<\/strong> you wish to configure. <\/p>\n\n\n\n<p>If you prefer to use EAS Build for just one platform, that\u2019s completely fine. You can always return later to configure the other platform if you decide to expand.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXcEmDUxKggChzYM7sdB4FJDC87kCEr8hgmxNwpEQW6o-h0td5pJMmnU-5_2sb1oeXG8nfGRnh3ogYukimUU0A8SWrTLN4ijaiHsiD6VRfXwN7gsLWSL4YXiVNDTX-Asvg6ElQ7E?key=KzXImh21sajo7vaWUMcQk4lI\" alt=\"Terminal prompt asking which platforms to configure for EAS Build using Expo CLI, with &quot;All&quot;, &quot;iOS&quot;, and &quot;Android&quot; as options.\"\/><\/figure>\n\n\n\n<p><strong>2. Create <code>eas.json<\/code><\/strong><\/p>\n\n\n\n<p>Running the command will generate an eas.json file in the root directory, containing the default configuration. The file should look like this structure:<\/p>\n\n\n\n<pre class=\"wp-block-code-mind-code c-code\"><code class=\"javascript\">{\n  \"cli\": {\n    \"version\": \">= 12.6.2\",\n    \"appVersionSource\": \"remote\"\n  },\n  \"build\": {\n    \"development\": {\n      \"developmentClient\": true,\n      \"distribution\": \"internal\"\n    },\n    \"preview\": {\n      \"distribution\": \"internal\"\n    },\n    \"production\": {\n      \"autoIncrement\": true\n    }\n  },\n  \"submit\": {\n    \"production\": {}\n  }\n}\n<\/code><\/pre>\n\n\n\n<p>This is your EAS Build configuration file. It includes three predefined build profiles: <strong>development, preview, <\/strong>and<strong> production<\/strong> for each platform. <\/p>\n\n\n\n<p>You can create additional profiles like debug, testing, and others as needed. To explore more about <code>eas.json<\/code>, refer to the <a href=\"https:\/\/docs.expo.dev\/build\/eas-json\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>Configuration with eas.json<\/strong><\/a> documentation.<\/p>\n\n\n\n<p>In certain situations, additional configuration might be necessary:<\/p>\n\n\n\n<ul>\n<li>If your app relies on environment variables, <a href=\"https:\/\/docs.expo.dev\/build-reference\/variables\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>make sure to include them in your build configuration<\/strong><\/a>.<\/li>\n\n\n\n<li>Is your project part of a monorepo? Follow the dedicated <a href=\"https:\/\/docs.expo.dev\/build-reference\/build-with-monorepos\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>instructions<\/strong><\/a> for monorepo setups.<\/li>\n\n\n\n<li>Does your app rely on environment variables? Include them in your <a href=\"https:\/\/docs.expo.dev\/build-reference\/variables\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>build configuration<\/strong><\/a>.<\/li>\n\n\n\n<li>Do you use private npm packages? <a href=\"https:\/\/docs.expo.dev\/build-reference\/private-npm-packages\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>Add your npm token to the configuration<\/strong><\/a>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"run-a-build\"><span class=\"underline-accent\">Run a Build<\/span><\/h3>\n\n\n\n<p><strong>Important: <\/strong>To start the build process for app stores, you\u2019ll need a developer account for the store and either create or provide the app signing credentials.<\/p>\n\n\n\n<p>If you\u2019re not familiar with creating app signing credentials, don\u2019t worry. <strong>You can choose to let EAS CLI manage the app signing process for you<\/strong> and take care of the hard work.<\/p>\n\n\n\n<div class=\"wp-block-code-mind-cta c-cta-block\" style=\"background-color:#00141F;color:#FFFFFF\"><div class=\"c-cta-block__content\"><p class=\"c-cta-block__title\">Do you have an idea for a mobile app?<\/p><p class=\"c-cta-block__description\">\n<\/p><div class=\"c-cta-block__action\"><a href=\"https:\/\/pagepro.co\/contact\" class=\"c-cta-block__button ga-cta ga-cta-consultation theme-bg-3\">Our experts can help<\/a><\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"building-for-android\">Building for Android<\/h2>\n\n\n\n<p>Start by <strong>building the app for the Android platform<\/strong>. To do this, use the following command: <code>eas build --platform android<\/code><\/p>\n\n\n\n<p>If the <code>android.package<\/code> field in the <code>app.json<\/code> file hasn\u2019t been filled out yet, you\u2019ll be asked to enter a bundle ID. Pressing &#8220;Enter&#8221; will automatically select the placeholder name displayed. <\/p>\n\n\n\n<p>Once this step is completed, the app.json config file will be updated automatically as well.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXewBxet3LecFLefUl00GQ5L5N2Qlm4Y-ygFZBwRzQkWhsFdLQMyQT4w0c9-jJyzu7K4fyt5gSTgqc2tEzJQ8h6t54QOSRZopRdAHLU4k8UX-N94SWrC2ZXxr0gyiEhLSDKfY0JmEQ?key=KzXImh21sajo7vaWUMcQk4lI\" alt=\"Expo CLI terminal prompt requesting the Android application ID, prefilled with &quot;com.kornelkw.testpublishapp&quot;.\"\/><\/figure>\n\n\n\n<p>After confirming, you\u2019ll see something like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"129\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/3._android_id_confirmation-1024x129.png\" alt=\"Confirmation screen showing the selected Android application ID and automated versionCode increment, with prompt to generate a new Android Keystore.\" class=\"wp-image-19568\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/3._android_id_confirmation-1024x129.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/3._android_id_confirmation-300x38.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/3._android_id_confirmation-768x97.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/3._android_id_confirmation-500x63.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/3._android_id_confirmation-324x41.png 324w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/3._android_id_confirmation.png 1036w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Why was the the <code>versionCode<\/code> was automatically updated from 1 to 2? Because the <code>autoIncrement<\/code> option <strong>is set to true by default<\/strong> in the <code>eas.json<\/code> file.<\/p>\n\n\n\n<p>The Android credentials used for this come from the logged-in Expo account. You can read more about certificates <a href=\"https:\/\/docs.expo.dev\/app-signing\/existing-credentials\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>here<\/strong><\/a>.<\/p>\n\n\n\n<p>As we can see in the image above, <code>eas-cli<\/code> is asking us about the Android Keystore. There are two options available here:<\/p>\n\n\n\n<ul>\n<li><strong>Option 1:<\/strong> If you haven\u2019t created a keystore for your app yet, you can allow EAS CLI to handle it by choosing Generate new keystore. Once selected, the process is complete, and the keystore will be securely stored on EAS servers.<\/li>\n\n\n\n<li><strong>Option 2: <\/strong>If you prefer to create the keystore manually, refer to the <a href=\"https:\/\/docs.expo.dev\/app-signing\/local-credentials#android-credentials\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>manual Android credentials guide<\/strong><\/a> for detailed instructions.<\/li>\n<\/ul>\n\n\n\n<p>In the end, you should see this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"278\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/4_android_profile-1024x278.png\" alt=\"Terminal output confirming Android app ID, keystore generation, and EAS build upload in progress for the Android production profile to help with publishing Expo app.\" class=\"wp-image-19569\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/4_android_profile-1024x278.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/4_android_profile-300x82.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/4_android_profile-768x209.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/4_android_profile-500x136.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/4_android_profile-324x88.png 324w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/4_android_profile.png 1137w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>You\u2019ve successfully built the Android app. Congratulations!<\/strong><\/p>\n\n\n\n<p>By default, the eas build command waits for your build to finish, but you can stop it if you don\u2019t want to wait. <\/p>\n\n\n\n<p>To track the progress and review the logs, follow the link to the build details page provided by EAS CLI once the build process begins.&nbsp;<\/p>\n\n\n\n<p>Now, let\u2019s check how it looks on the <a href=\"https:\/\/expo.dev\/accounts\/[account]\/projects\/[project]\/builds\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>build dashboard<\/strong><\/a> page.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"check-build-dashboard\"><span class=\"underline-accent\">Check Build Dashboard<\/span><\/h3>\n\n\n\n<p>In the <strong>Builds tab<\/strong>, you can review all the requested builds. As shown below, our app is currently being built.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"528\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/5_builds_android-1024x528.png\" alt=\"Expo dashboard showing the Android build listed under the &quot;All builds&quot; section, created by user &quot;kornelkw&quot;.\" class=\"wp-image-19570\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/5_builds_android-1024x528.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/5_builds_android-300x155.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/5_builds_android-768x396.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/5_builds_android-1536x791.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/5_builds_android-500x258.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/5_builds_android-324x167.png 324w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/5_builds_android.png 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><br>You can dive deeper and check which processes are being executed during the app build. <strong>The logs will be helpful in case of any failures<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"977\" height=\"1024\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/6_android_store_build-977x1024.png\" alt=\"Detailed build view for an Android Play Store app in progress, showing log steps like environment setup, dependency install, and JavaScript bundling.\" class=\"wp-image-19571\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/6_android_store_build-977x1024.png 977w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/6_android_store_build-286x300.png 286w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/6_android_store_build-768x805.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/6_android_store_build-319x334.png 319w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/6_android_store_build-1024x1073.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/6_android_store_build-324x340.png 324w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/6_android_store_build.png 1233w\" sizes=\"(max-width: 977px) 100vw, 977px\" \/><\/figure>\n\n\n\n<p>To view the list of builds in the console, you can use this command <code>eas build:list<\/code>.<\/p>\n\n\n\n<p>Next, you should see this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"353\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/7_android_build_app_final-1024x353.png\" alt=\"Terminal output displaying completed Android Expo build with status &quot;finished&quot;, download link for the .aab file, and associated metadata.\" class=\"wp-image-19572\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/7_android_build_app_final-1024x353.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/7_android_build_app_final-300x103.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/7_android_build_app_final-768x264.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/7_android_build_app_final-500x172.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/7_android_build_app_final-324x112.png 324w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/7_android_build_app_final.png 1156w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Now, let\u2019s go through <strong>the same process for the iOS platform<\/strong>.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"creating-an-app-for-ios\">Creating an App for iOS<\/h2>\n\n\n\n<p>Run the following command: <code>eas build --platform ios<\/code>. <strong>The same situation applies here as with the Android application id.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"721\" height=\"64\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/8_ios_id.png\" alt=\"Expo CLI prompt asking for the iOS bundle identifier, prefilled with &quot;com.kornelkw.testpublishapp&quot;.\" class=\"wp-image-19574\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/8_ios_id.png 721w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/8_ios_id-300x27.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/8_ios_id-500x44.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/8_ios_id-324x29.png 324w\" sizes=\"(max-width: 721px) 100vw, 721px\" \/><\/figure>\n\n\n\n<p>After confirming, you should see something like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"158\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/9_ios_build_identifier-1024x158.png\" alt=\"Terminal confirming iOS bundle identifier, incremented buildNumber, and request to log in to the Apple account for credential generation for publishing Expo app.\" class=\"wp-image-19576\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/9_ios_build_identifier-1024x158.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/9_ios_build_identifier-300x46.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/9_ios_build_identifier-768x119.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/9_ios_build_identifier-500x77.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/9_ios_build_identifier-324x50.png 324w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/9_ios_build_identifier.png 1243w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Now, instead of <strong>versionNumber<\/strong>, we have <strong>buildNumber<\/strong>. Both work the same, only the name is different.<\/p>\n\n\n\n<p>To build a production app for the iOS platform, <strong>you need to log in to our developer account<\/strong>.<\/p>\n\n\n\n<p>After logging in, we\u2019ll be asked about <strong>the Apple Distribution Certificate<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"461\" height=\"25\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/10_new_apple_certificate.png\" alt=\"Terminal prompt asking whether to generate a new Apple Distribution Certificate during the iOS app publishing process using Expo.\" class=\"wp-image-19577\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/10_new_apple_certificate.png 461w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/10_new_apple_certificate-300x16.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/10_new_apple_certificate-324x18.png 324w\" sizes=\"(max-width: 461px) 100vw, 461px\" \/><\/figure>\n\n\n\n<p>And <strong>Apple Provisioning Profile<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"429\" height=\"24\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/11_new_apple_profile-1.png\" alt=\"Terminal prompt asking whether to generate a new Apple Provisioning Profile during the Expo iOS build process.\" class=\"wp-image-19579\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/11_new_apple_profile-1.png 429w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/11_new_apple_profile-1-300x17.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/11_new_apple_profile-1-324x18.png 324w\" sizes=\"(max-width: 429px) 100vw, 429px\" \/><\/figure>\n\n\n\n<p>Again, we have two options:<\/p>\n\n\n\n<ul>\n<li><strong>Option 1: <\/strong>If you haven\u2019t created a provisioning profile or distribution certificate yet, EAS CLI can handle it. Sign in to your<strong> Apple Developer Program<\/strong> account and follow the prompts.<\/li>\n\n\n\n<li><strong>Option 2:<\/strong> If you want to generate your credentials by hand, check out the <a href=\"https:\/\/docs.expo.dev\/app-signing\/local-credentials#ios-credentials\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>manual iOS c<\/strong><\/a><a href=\"https:\/\/docs.expo.dev\/app-signing\/local-credentials#ios-credentials\"><strong>redentials guide<\/strong><\/a> for more details.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXf5Ovo36B0iRacqnMrS51z4LvtjxRfymIrUApmMHWmJyPN2lP2-B-qIIg9PeFmkcLXOrK758Ot0fRNR0vXaFFwFdZfJrtLDve3DaATxhI7P1Qp964RzOvRrFiy4r0pQ8sR8Rsk4LA?key=KzXImh21sajo7vaWUMcQk4lI\" alt=\"Terminal showing all credentials ready and project uploaded to EAS Build, waiting in the free tier queue with a build link displayed.\"\/><\/figure>\n\n\n\n<p><br><strong>Success!<\/strong><\/p>\n\n\n\n<p>If you see a message about the build waiting in the queue, it\u2019s likely because <strong>you\u2019re using a free Expo account<\/strong>. It has some limitations, but should be more than enough to get you started.<br><br>Alternatively, you can use the <code>--platform all<\/code> option <strong>to build for both Android and iOS at the same time<\/strong>: <code>eas build --platform all<\/code><\/p>\n\n\n\n<div class=\"c-newsletter-block-acf\">\n    <p class=\"c-newsletter-block-acf__title c-newsletter__header\">\n        EXPERT INSIGHTS, FRICTIONLESSLY DELIVERED!    <\/p>\n    <p class=\"c-newsletter-block-acf__desc c-newsletter__header\">\n        Curated tech news delivered straight to your inbox every month.    <\/p>\n    <form method=\"post\" class=\"c-newsletter-block-acf__form js-newsletter-form c-newsletter__action\" name=\"newsletter-block-form\">\n        <input name=\"newsletter-email\" id=\"newsletter-email\" type=\"text\" class=\"c-newsletter-block-acf__input js-newsletter-input\" placeholder=\"Company Email\" \/>\n        <input name=\"newsletter-campaign\" id=\"newsletter-campaign\" type=\"hidden\" value=\"\" \/>\n        <div class=\"c-newsletter-block-acf__group\">\n            <input name=\"consent\" id=\"consent\" type=\"checkbox\" class=\"js-newsletter-consent\" \/>\n            <label class=\"c-newsletter-block-acf__label\" for=\"consent\">I accept the <a href=\"https:\/\/pagepro.co\/privacy-policy\">Privacy Policy<\/a> and agree to process my personal data by Pagepro for marketing purposes.<\/label>\n        <\/div>\n        <input type=\"submit\" class=\"c-newsletter-block-acf__button button js-newsletter-sub ga-newsletter-form-content\" value=\"Sign up\" \/>\n        <p class=\"theme-size-1 js-message-valid is-hidden is-invalid\"><\/p>\n    <\/form>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"best-practices-for-deploying-the-app-to-stores\">Best Practices for Deploying the App to Stores<\/h2>\n\n\n\n<p>To make sure your app gets accepted to Apple and Google app stores, implement some of these features:<\/p>\n\n\n\n<ul>\n<li><strong>Add a splash screen<\/strong>, the first thing users see after they run an app<\/li>\n\n\n\n<li><strong>Preload and cache assets<\/strong> so the app loads quickly<\/li>\n\n\n\n<li><strong>Define the status bar<\/strong> to work correctly with your UI<\/li>\n\n\n\n<li><strong>Use native gestures<\/strong> whenever possible<\/li>\n\n\n\n<li><strong>Add a great icon<\/strong> that would pass environment requirements<\/li>\n\n\n\n<li>Make sure your app has <strong>valid identifiers and versioning<\/strong><\/li>\n\n\n\n<li><strong>Include a privacy policy<\/strong>, even if you\u2019re not publishing for the EU and UK market.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"1024\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/13_Publishing_Expo_Apps_infographic-1024x1024.png\" alt=\"Infographic showing best practices for publishing Expo apps, organized into visuals, compliance, and performance tips with Pagepro branding.\" class=\"wp-image-19580\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/13_Publishing_Expo_Apps_infographic-1024x1024.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/13_Publishing_Expo_Apps_infographic-300x300.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/13_Publishing_Expo_Apps_infographic-150x150.png 150w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/13_Publishing_Expo_Apps_infographic-768x768.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/13_Publishing_Expo_Apps_infographic-334x334.png 334w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/13_Publishing_Expo_Apps_infographic-324x324.png 324w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/13_Publishing_Expo_Apps_infographic.png 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Additionally, you need to pass iOS-specific guidelines. They change from time to time, so always check them in <a href=\"https:\/\/developer.apple.com\/app-store\/review\/guidelines\/\"><strong>the official iOS documentation<\/strong><\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-to-deploy-a-build-for-google-play-store\">How to Deploy a Build for Google Play Store<\/h2>\n\n\n\n<p>Since you have your build, it\u2019s time to bring it to the users! I\u2019ll show you <strong>how to deploy it for the Google Play Store<\/strong> first.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"set-up-your-google-store\"><span class=\"underline-accent\">Set Up Your Google Store<\/span><\/h3>\n\n\n\n<p>Go to <strong>Google Play Console<\/strong> and create a new account to get access to the API interface.<br><br>If you\u2019d like to <strong>submit your Android app to the Google Play Store with EAS submit<\/strong>, follow these steps:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3808\" height=\"1612\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/1.png\" alt=\"Google Play Console interface showing API access setup, with options to create a new service account and manage OAuth clients.\" class=\"wp-image-8945\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/1.png 3808w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/1-300x127.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/1-1024x433.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/1-768x325.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/1-1536x650.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/1-2048x867.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/1-500x212.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/1-324x137.png 324w\" sizes=\"(max-width: 3808px) 100vw, 3808px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3834\" height=\"1658\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/2.png\" alt=\"Google Cloud Platform screen for creating a service account, showing fields for account name, ID, and description, with an option to continue setup.\" class=\"wp-image-8947\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/2.png 3834w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/2-300x130.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/2-1024x443.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/2-768x332.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/2-1536x664.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/2-2048x886.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/2-500x216.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/2-324x140.png 324w\" sizes=\"(max-width: 3834px) 100vw, 3834px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"442\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/3-1024x442.png\" alt=\"Google Cloud Platform interface prompting the user to grant service account access to the project by assigning a role and conditions.\" class=\"wp-image-8948\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/3-1024x442.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/3-300x129.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/3-768x331.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/3-1536x663.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/3-2048x884.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/3-500x216.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/3-324x140.png 324w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3836\" height=\"1862\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/4.png\" alt=\"List of service accounts in Google Cloud Platform, with the option \u201cManage keys\u201d highlighted for one account under the Actions menu.\" class=\"wp-image-8949\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/4.png 3836w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/4-300x146.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/4-1024x497.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/4-768x373.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/4-1536x746.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/4-2048x994.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/4-500x243.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/4-324x157.png 324w\" sizes=\"(max-width: 3836px) 100vw, 3836px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3822\" height=\"1832\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/5.png\" alt=\"Google Cloud Platform dialog to create a private key for a service account, with JSON format selected and options to cancel or create.\" class=\"wp-image-8950\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/5.png 3822w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/5-300x144.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/5-1024x491.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/5-768x368.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/5-1536x736.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/5-2048x982.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/5-500x240.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/5-324x155.png 324w\" sizes=\"(max-width: 3822px) 100vw, 3822px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"2560\" height=\"1229\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/6-scaled.jpg\" alt=\"Google Play Console showing a linked Google Cloud project and service account list, with one entry highlighted and \u201cGrant access\u201d option visible.\" class=\"wp-image-8951\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/6-scaled.jpg 2560w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/6-300x144.jpg 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/6-1024x492.jpg 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/6-768x369.jpg 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/6-1536x737.jpg 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/6-2048x983.jpg 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/6-500x240.jpg 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/6-324x156.jpg 324w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"2560\" height=\"1288\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/8-scaled.jpg\" alt=\"Google Play Console \u201cUsers and permissions\u201d screen showing a service account listed as an active user with the option to manage permissions.\" class=\"wp-image-8953\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/8-scaled.jpg 2560w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/8-300x151.jpg 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/8-1024x515.jpg 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/8-768x386.jpg 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/8-1536x773.jpg 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/8-2048x1030.jpg 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/8-500x252.jpg 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/8-324x163.jpg 324w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create-a-new-application\"><span class=\"underline-accent\">Create a New Application<\/span><\/h3>\n\n\n\n<p>The first app upload <strong>needs to be done manually<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"2560\" height=\"1293\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/9-scaled.jpg\" alt=\"Google Play Console showing the \u201cAll apps\u201d section with a button to create a new app for publishing.\" class=\"wp-image-8954\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/9-scaled.jpg 2560w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/9-300x151.jpg 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/9-1024x517.jpg 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/9-768x388.jpg 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/9-1536x776.jpg 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/9-2048x1034.jpg 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/9-500x252.jpg 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/9-324x164.jpg 324w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3822\" height=\"1926\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/10.png\" alt=\"Google Play Console interface for creating a new app, with fields for app name, default language, and app type.\" class=\"wp-image-8955\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/10.png 3822w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/10-300x151.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/10-1024x516.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/10-768x387.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/10-1536x774.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/10-2048x1032.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/10-500x252.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/10-324x163.png 324w\" sizes=\"(max-width: 3822px) 100vw, 3822px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3814\" height=\"1926\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/11.png\" alt=\"Google Play Console screen requiring developers to declare app content policies, such as whether the app contains ads or targets children.\" class=\"wp-image-8956\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/11.png 3814w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/11-300x151.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/11-1024x517.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/11-768x388.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/11-1536x776.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/11-2048x1034.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/11-500x252.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/11-324x164.png 324w\" sizes=\"(max-width: 3814px) 100vw, 3814px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3822\" height=\"1646\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/12.png\" alt=\"Internal testing track page in Google Play Console showing the option to create a new release for internal testers.\" class=\"wp-image-8957\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/12.png 3822w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/12-300x129.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/12-1024x441.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/12-768x331.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/12-1536x662.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/12-2048x882.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/12-500x215.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/12-324x140.png 324w\" sizes=\"(max-width: 3822px) 100vw, 3822px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3830\" height=\"1936\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/13.png\" alt=\"Google Play Console interface showing a newly added AAB bundle in the internal testing track with version code details.\" class=\"wp-image-8958\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/13.png 3830w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/13-300x152.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/13-1024x518.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/13-768x388.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/13-1536x776.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/13-2048x1035.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/13-500x253.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/13-324x164.png 324w\" sizes=\"(max-width: 3830px) 100vw, 3830px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3824\" height=\"1932\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/14.png\" alt=\"Release overview page in Google Play Console internal testing, with fields to name the release and add release notes.\" class=\"wp-image-8959\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/14.png 3824w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/14-300x152.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/14-1024x517.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/14-768x388.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/14-1536x776.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/14-2048x1035.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/14-500x253.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/14-324x164.png 324w\" sizes=\"(max-width: 3824px) 100vw, 3824px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3812\" height=\"1922\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/15.png\" alt=\"Release review screen in Google Play Console summarizing release status, version number, and rollout track.\" class=\"wp-image-8960\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/15.png 3812w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/15-300x151.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/15-1024x516.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/15-768x387.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/15-1536x774.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/15-2048x1033.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/15-500x252.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/15-324x163.png 324w\" sizes=\"(max-width: 3812px) 100vw, 3812px\" \/><\/figure>\n\n\n\n<p>After submitting the test version, <strong>you might get an error<\/strong>. To remove it, go to the rules and <strong>pass a URL to the privacy policy<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3810\" height=\"2046\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/20.png\" alt=\"submitting the app in google play console step 3\" class=\"wp-image-8965\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/20.png 3810w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/20-300x161.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/20-1024x550.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/20-768x412.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/20-1536x825.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/20-2048x1100.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/20-500x269.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/20-324x174.png 324w\" sizes=\"(max-width: 3810px) 100vw, 3810px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3822\" height=\"1920\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/16.png\" alt=\"passing url to privacy policy step 1\" class=\"wp-image-8961\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/16.png 3822w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/16-300x151.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/16-1024x514.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/16-768x386.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/16-1536x772.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/16-2048x1029.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/16-500x251.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/16-324x163.png 324w\" sizes=\"(max-width: 3822px) 100vw, 3822px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3824\" height=\"1924\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/17.png\" alt=\"passing url to privacy policy step 2\" class=\"wp-image-8962\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/17.png 3824w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/17-300x151.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/17-1024x515.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/17-768x386.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/17-1536x773.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/17-2048x1030.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/17-500x252.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/17-324x163.png 324w\" sizes=\"(max-width: 3824px) 100vw, 3824px\" \/><\/figure>\n\n\n\n<p>When you come back to the application tab, errors should disappear, and now you can submit the app.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3814\" height=\"1922\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/18.png\" alt=\"submitting the app in google play console step 1\" class=\"wp-image-8963\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/18.png 3814w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/18-300x151.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/18-1024x516.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/18-768x387.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/18-1536x774.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/18-2048x1032.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/18-500x252.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/18-324x163.png 324w\" sizes=\"(max-width: 3814px) 100vw, 3814px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3824\" height=\"2038\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/19.png\" alt=\"submitting the app in google play console step 2\" class=\"wp-image-8964\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/19.png 3824w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/19-300x160.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/19-1024x546.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/19-768x409.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/19-1536x819.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/19-2048x1091.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/19-500x266.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/19-324x173.png 324w\" sizes=\"(max-width: 3824px) 100vw, 3824px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3820\" height=\"2040\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/21.png\" alt=\"submitting the app in google play console step 4\" class=\"wp-image-8966\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/21.png 3820w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/21-300x160.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/21-1024x547.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/21-768x410.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/21-1536x820.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/21-2048x1094.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/21-500x267.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/21-324x173.png 324w\" sizes=\"(max-width: 3820px) 100vw, 3820px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3824\" height=\"2032\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/22.png\" alt=\"submitting the app in google play console step 5\" class=\"wp-image-8967\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/22.png 3824w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/22-300x159.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/22-1024x544.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/22-768x408.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/22-1536x816.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/22-2048x1088.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/22-500x266.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/22-324x172.png 324w\" sizes=\"(max-width: 3824px) 100vw, 3824px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3818\" height=\"2032\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/23.png\" alt=\"submitting the app in google play console step 6\" class=\"wp-image-8968\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/23.png 3818w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/23-300x160.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/23-1024x545.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/23-768x409.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/23-1536x817.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/23-2048x1090.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/23-500x266.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/23-324x172.png 324w\" sizes=\"(max-width: 3818px) 100vw, 3818px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"step-5-after-submission-you-have-to-add-testers-which-have-got-access-to-download-and-use-the-app\"><span class=\"underline-accent\">Add Testers<\/span><\/h3>\n\n\n\n<p>After submission, <strong>you have to add testers<\/strong> who can download and use the app.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3816\" height=\"2024\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/24.png\" alt=\"adding testers in google play console step 1\" class=\"wp-image-8969\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/24.png 3816w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/24-300x159.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/24-1024x543.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/24-768x407.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/24-1536x815.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/24-2048x1086.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/24-500x265.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/24-324x172.png 324w\" sizes=\"(max-width: 3816px) 100vw, 3816px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3806\" height=\"1894\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/25.png\" alt=\"adding testers in google play console step 2\" class=\"wp-image-8970\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/25.png 3806w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/25-300x149.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/25-1024x510.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/25-768x382.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/25-1536x764.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/25-2048x1019.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/25-500x249.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/25-324x161.png 324w\" sizes=\"(max-width: 3806px) 100vw, 3806px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3824\" height=\"2038\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/26.png\" alt=\"adding testers in google play console step 3\" class=\"wp-image-8971\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/26.png 3824w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/26-300x160.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/26-1024x546.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/26-768x409.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/26-1536x819.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/26-2048x1091.png 2048w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/26-500x266.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/11\/26-324x173.png 324w\" sizes=\"(max-width: 3824px) 100vw, 3824px\" \/><\/figure>\n\n\n\n<p>Afterwards, you should have access to the test application via the store.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"deploy-in-details-ios\">How to <strong>Deploy a Build for App Store<\/strong><\/h2>\n\n\n\n<p>Now that your app is on Google Store, we can move on <strong>to deploying on the iOS devices<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"setup-apple-connect\"><span class=\"underline-accent\">Setup Apple Connect<\/span><\/h3>\n\n\n\n<p>Go to <a href=\"https:\/\/appstoreconnect.apple.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>App Store Connect<\/strong><\/a> and create an application.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"255\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/07\/43-setting-up-apple-connect.png\" alt=\"App Store Connect dashboard showing all apps listed under a developer account, with the option to add a new app.\" class=\"wp-image-7635\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/07\/43-setting-up-apple-connect.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/07\/43-setting-up-apple-connect-300x149.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/07\/43-setting-up-apple-connect-500x249.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/07\/43-setting-up-apple-connect-324x161.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<p>Once that\u2019s done, <strong>fill in the details<\/strong> about the application.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"443\" height=\"512\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/07\/44-app-detail-in-apple-connect.png\" alt=\"App Store Connect form for adding a new iOS app, including fields for platform, bundle ID, and SKU.\" class=\"wp-image-7636\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/07\/44-app-detail-in-apple-connect.png 443w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/07\/44-app-detail-in-apple-connect-260x300.png 260w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/07\/44-app-detail-in-apple-connect-289x334.png 289w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/07\/44-app-detail-in-apple-connect-324x374.png 324w\" sizes=\"(max-width: 443px) 100vw, 443px\" \/><\/figure>\n\n\n\n<p>To submit the app binary created from our latest EAS Build, run the eas submit command: <code>eas submit --platform ios<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdaqRdi0aViVIYUg_YucZPJcbcIppgGO790dA07rewCwdBTHfLvQHOWMs82XW3E7UbQFL3VlJU8nq9cHA_0HvdDuRFICbuLT6Fw2GgAi1ers_JhVm1tdd5QnsGnPsgVr_jLAwcJQg?key=KzXImh21sajo7vaWUMcQk4lI\" alt=\"App Store Connect \u201cPrepare for Submission\u201d screen showing the uploaded iOS build, version number, and platform tag.\"\/><\/figure>\n\n\n\n<p>After running this command, we need to:<\/p>\n\n\n\n<ol>\n<li>Select <strong>a build from EAS<\/strong>. Let\u2019s choose the latest build ID.<\/li>\n\n\n\n<li>Log in to <strong>your Apple account<\/strong>.<\/li>\n\n\n\n<li>Generate <strong>a new App Store Connect API Key<\/strong> if necessary.<\/li>\n<\/ol>\n\n\n\n<p>And voil\u00e0! The submission process has started.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXcnLzJ7TCj4W5uvSxjgIEgYgzqM2TvOnwQB43tBb1TUFuw1WRev8SuevKMIXCe0zvrXQfUqOni8XNBxolmwzl3oBsm6uCj3mLnrwbWDk6zdY8gwl7xFCKvpNhvO7Y5Arzs-1icPpA?key=KzXImh21sajo7vaWUMcQk4lI\" alt=\"Terminal output showing successful Expo EAS submission setup for an iOS app, including ASC App ID, key details, and scheduled App Store submission status.\"\/><\/figure>\n\n\n\n<p><br>Now, we can go to the <a href=\"http:\/\/expo.dev\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>expo.dev<\/strong><\/a> page.&nbsp;<\/p>\n\n\n\n<p>In the <strong>Submissions tab<\/strong>, you\u2019ll see your submission waiting in the queue.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"527\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/32_app_store_submission_tab-1024x527.png\" alt=\"Expo dashboard interface displaying a submitted iOS App Store build under the \u201cSubmissions\u201d tab, showing version 1.0.0 and build ID.\" class=\"wp-image-19581\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/32_app_store_submission_tab-1024x527.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/32_app_store_submission_tab-300x154.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/32_app_store_submission_tab-768x395.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/32_app_store_submission_tab-1536x791.png 1536w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/32_app_store_submission_tab-500x257.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/32_app_store_submission_tab-324x167.png 324w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/32_app_store_submission_tab.png 1999w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>You can also click on a specific submission to view its details<\/strong>. Here, you can see the status and the build the submission refers to, among other things.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"369\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/33_app_store_submission_view-1024x369.png\" alt=\"Expo submission details view showing iOS App Store submission success, build metadata, and creator information.\" class=\"wp-image-19582\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/33_app_store_submission_view-1024x369.png 1024w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/33_app_store_submission_view-300x108.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/33_app_store_submission_view-768x277.png 768w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/33_app_store_submission_view-500x180.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/33_app_store_submission_view-324x117.png 324w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2025\/07\/33_app_store_submission_view.png 1217w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Now you can go back to <strong>the Apple Connect Store<\/strong> and submit the application.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdKdD9jzVwQtFMv15faj0EDe1tWzwGuomtvykoK6hJNj075N0Gx-4tZzfCcFLVU5WPWL22nHkghADcOLnmiTYZpFtfm6_D9DGjw7KvAEAOw0uN_Da7uYfK5hjI_umj5RS87m62TOA?key=KzXImh21sajo7vaWUMcQk4lI\" alt=\"App Store Connect screen for iOS App 1.0 prompting the user to upload previews and screenshots for various Apple devices.\"\/><\/figure>\n\n\n\n<p>If you click the submit button, <strong>you might see error messages again<\/strong>. Don\u2019t worry, it is normal. You have to fill in information about <strong>the privacy policy<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdS1Vf8M6cpA-D2zPL1rov223YJoEQBU_Zcx-bh9lERmhz3VGovfv2vfhmw8B_z7rJzSjyqw77rna01lUmLd1lFextxgTYjPzN5uwtv1D3MMyJrBUktfe9WDrR_PALquyQKJG3_yA?key=KzXImh21sajo7vaWUMcQk4lI\" alt=\"App Store Connect showing validation errors preventing submission, including missing support URL, keywords, and description.\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXcHtxeIjj6pRDOG5WrxL9vRM1xMfYax6SInG3US1t1fcyqmcgsCG1t-sIiwEpYLmlDDg27YUHStnmIQvVAf3qK1EL3MHfSsN7ZCa1Cj4upI4za6gzu7ZhnD8K00KBj2hSHHNa4k1w?key=KzXImh21sajo7vaWUMcQk4lI\" alt=\"Error message listing all mandatory information missing before an app can be submitted for App Store review, including content rights, contact info, and privacy policy.\"\/><\/figure>\n\n\n\n<p>The last step is to wait for the application to be approved and add it to the <strong>TestFlight<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXc0PVntCNOMIpJMmhaDh9B3QeITy1D7r7L1o4Tg8WQqJv-LGMdkdRHStsY2pCx_n3SmEUzfgAJ-UakuXcWulV3t--sbI47A6hlxJG6Dzx3tS334RH8uidAvjh02uEORPgBxJxJ1?key=KzXImh21sajo7vaWUMcQk4lI\" alt=\"TestFlight screen showing iOS build version 1.0.0 in \u201cProcessing\u201d status, indicating the build is being prepared for internal testing.\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\"><strong>Secrets to Successful Expo App Deployment<\/strong><\/h2>\n\n\n\n<p><strong>Publishing React Native Expo apps for app stores comes with its complexities. <\/strong>Hopefully, my article has provided exactly what you need to get your app out and into the hands of future users!<\/p>\n\n\n\n<p>Keep my advice in mind for future releases, and if you need help from professionals, <strong>Pagepro has your back<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-code-mind-cta c-cta-block\" style=\"background-color:#00141F;color:#FFFFFF\"><div class=\"c-cta-block__content\"><p class=\"c-cta-block__title\">Ready to Make A Mobile App?<\/p><div class=\"c-cta-block__action\"><a href=\"https:\/\/pagepro.co\/contact\" class=\"c-cta-block__button ga-cta ga-cta-consultation theme-bg-3\">We&#8217;re here to help<\/a><\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"frequently-asked-questions\">Frequently Asked Questions<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1767016166016\"><strong class=\"schema-faq-question\">How Can I Develop an App for Both Android and iOS?<\/strong> <p class=\"schema-faq-answer\">Expo and React Native let you build apps that runs on both platforms. Most core components and APIs work the same across Android and iOS, and Expo handles much of the platform-specific setup.<br\/>You can preview and test your app on both platforms using Expo Go or EAS Build for production.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1767016181442\"><strong class=\"schema-faq-question\"><strong>What Is the Purpose Of Expo?<\/strong><\/strong> <p class=\"schema-faq-answer\">Expo is <strong>a framework and platform built around React Native<\/strong>. It helps developers build and deploy mobile apps without the need for native code.<br\/>You can read more about Expo <a href=\"https:\/\/pagepro.co\/blog\/what-is-expo-js\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>in this article<\/strong><\/a>.<br\/><\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1767016200008\"><strong class=\"schema-faq-question\"><strong>How Do You Publish Expo App?<\/strong><\/strong> <p class=\"schema-faq-answer\">Publishing Expo app requires you to:<br\/>1.  Create an Expo account.<br\/>2. Configure your project via <code>app.json<\/code> (including fields like bundleId, version, and icon).<br\/>3. Use EAS CLI to build your app with <code>eas build<\/code>.<br\/>4. Log into your Apple Developer and Google Play accounts to provide credentials.<br\/><br\/>Submit your app using <code>eas submit<\/code> to <strong>App Store Connect<\/strong> or the <strong>Google Play Console<\/strong>.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1767016275290\"><strong class=\"schema-faq-question\"><strong>Is Publishing with Expo Free?<\/strong><\/strong> <p class=\"schema-faq-answer\"><strong>Yes, it\u2019s free.<\/strong><br\/>To build and publish your Expo React Native app to the App Store or Google Play Store, you\u2019ll need to use EAS Build and EAS Submit. These are part of Expo Application Services.<br\/><strong>While Expo offers a free tier, some cases might need a paid subscription.<\/strong><\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1767016294676\"><strong class=\"schema-faq-question\"><strong>How Much Does Expo App Publishing Cost?<\/strong><\/strong> <p class=\"schema-faq-answer\"><strong>Publishing Expo app costs nothing when using Expo\u2019s free tools<\/strong>, but you&#8217;ll still need:<br\/><br\/>1. An Expo account: <strong>Free<\/strong> (which you can upgrade for more features at <strong>$19\/month<\/strong>)<br\/>2. A Google Play Console account: <strong>One-time $25 USD fee<\/strong><br\/>3. An Apple Developer account: <strong>$99 USD\/year<\/strong><br\/><br\/>It&#8217;s possible to generate and submit app builds using Expo&#8217;s EAS Build and EAS Submit for free. If you exceed Expo\u2019s free build limits or if your app uses over-the-air updates, <strong>you might get billed extra<\/strong>.\u00a0<br\/>Apps with <strong>in-app purchases or subscriptions<\/strong> will have additional fees, depending on the platform<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1767016339314\"><strong class=\"schema-faq-question\">Can you use React Native for both iOS and Android?<\/strong> <p class=\"schema-faq-answer\">Yes, <strong>React Native is designed for cross-platform development<\/strong>, so you can write a single codebase that works on both iOS and Android.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1767016362638\"><strong class=\"schema-faq-question\">How to Add Android and iOS Folders in React Native Expo?<\/strong> <p class=\"schema-faq-answer\">If you&#8217;re using <strong>the managed Expo workflow<\/strong>, you won&#8217;t see the traditional <code>android<\/code> and <code>ios<\/code> folders. Expo handles native configurations for you.<br\/>If you need direct access to native code, you can run <code>npx expo prebuild<\/code> to generate these folders.<\/p> <\/div> <\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"read-more\">Read more <\/h2>\n\n\n\n<ul>\n<li><a href=\"https:\/\/pagepro.co\/blog\/how-expo-generates-native-code-before-compilation\/\" target=\"_blank\" rel=\"noreferrer noopener\">How Expo Generates Native Code Before Compilation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/pagepro.co\/blog\/migrating-native-app-to-react-native-with-expo\/\">Migrating a Native App to React Native? Here\u2019s How Expo Can Help<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/pagepro.co\/blog\/expo-apps\/\">40 Best Expo Examples<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/pagepro.co\/blog\/how-to-build-a-music-streaming-app-with-react-native\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to Build a Music Streaming App with React Native<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"sources\">Sources<\/h2>\n\n\n\n<ul style=\"font-size:12px\">\n<li><a href=\"https:\/\/play.google.com\/console\/about\/guides\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/play.google.com\/console\/about\/guides\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/appstoreconnect.apple.com\/login\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/appstoreconnect.apple.com\/login<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloud.google.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/cloud.google.com\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/expo.dev\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/expo.dev\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.expo.dev\/build\/introduction\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/docs.expo.dev\/build\/introduction\/<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Publishing Expo apps doesn&#8217;t have to be hard! Check our guide to find out how to get accepted by App Store and Google Play Store.<\/p>\n","protected":false},"author":2,"featured_media":19583,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[294,94],"tags":[59,503,317,504,69],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Publish Expo React Native App to iOS and Android in 2025<\/title>\n<meta name=\"description\" content=\"Step-by-step guide on all you need to know about publishing Expo app on Apple App Store and Google Play Store.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Publish Expo React Native App to iOS and Android in 2025\" \/>\n<meta property=\"og:description\" content=\"Step-by-step guide on all you need to know about publishing Expo app on Apple App Store and Google Play Store.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/\" \/>\n<meta property=\"og:site_name\" content=\"Pagepro\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/thisispagepro\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-25T10:14:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-05T11:13:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2023\/08\/Publishing-Expo-Apps-to-App-Store-and-Google-Play-Store-2025-Guide.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"582\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Norbert Kamienski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Norbert Kamienski\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/\"},\"author\":{\"name\":\"Norbert Kamienski\",\"@id\":\"https:\/\/pagepro.co\/blog\/#\/schema\/person\/467d61fcdf677085e920f7493a02f3b4\"},\"headline\":\"Publishing Expo Apps to App Store and Google Play Store: 2026 Guide\",\"datePublished\":\"2025-07-25T10:14:16+00:00\",\"dateModified\":\"2026-03-05T11:13:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/\"},\"wordCount\":2470,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/pagepro.co\/blog\/#organization\"},\"keywords\":[\"best practices\",\"expo\",\"for developers\",\"how to\",\"tips\"],\"articleSection\":[\"Mobile Development\",\"React Native\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#respond\"]}]},{\"@type\":[\"WebPage\",\"FAQPage\"],\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/\",\"url\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/\",\"name\":\"How to Publish Expo React Native App to iOS and Android in 2025\",\"isPartOf\":{\"@id\":\"https:\/\/pagepro.co\/blog\/#website\"},\"datePublished\":\"2025-07-25T10:14:16+00:00\",\"dateModified\":\"2026-03-05T11:13:07+00:00\",\"description\":\"Step-by-step guide on all you need to know about publishing Expo app on Apple App Store and Google Play Store.\",\"breadcrumb\":{\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#breadcrumb\"},\"mainEntity\":[{\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016166016\"},{\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016181442\"},{\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016200008\"},{\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016275290\"},{\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016294676\"},{\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016339314\"},{\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016362638\"}],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/pagepro.co\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\/\/pagepro.co\/blog\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Publishing Expo Apps to App Store and Google Play Store: 2026 Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/pagepro.co\/blog\/#website\",\"url\":\"https:\/\/pagepro.co\/blog\/\",\"name\":\"Pagepro\",\"description\":\"Frictionless Next.js, Expo &amp; Sanity Development Blog\",\"publisher\":{\"@id\":\"https:\/\/pagepro.co\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/pagepro.co\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/pagepro.co\/blog\/#organization\",\"name\":\"Pagepro\",\"url\":\"https:\/\/pagepro.co\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/pagepro.co\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2020\/08\/logo_pagepro-b66d228a1e-1.png\",\"contentUrl\":\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2020\/08\/logo_pagepro-b66d228a1e-1.png\",\"width\":440,\"height\":200,\"caption\":\"Pagepro\"},\"image\":{\"@id\":\"https:\/\/pagepro.co\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/thisispagepro\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/pagepro.co\/blog\/#\/schema\/person\/467d61fcdf677085e920f7493a02f3b4\",\"name\":\"Norbert Kamienski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/pagepro.co\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bb75ed486968c658d138d548af600c40?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bb75ed486968c658d138d548af600c40?s=96&d=mm&r=g\",\"caption\":\"Norbert Kamienski\"},\"description\":\"Norbert is an Engineering Manager and React Native Expert at Pagepro, where his expertise and leadership have been pivotal for over eight years. Renowned for his professionalism and meticulous attention to detail, Norbert has a well-earned reputation for optimizing app performance to its peak. His technical insight and deep understanding of React Native have made him a trusted figure both within the team and among clients.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/norbert-kamienski\/\"],\"url\":\"https:\/\/pagepro.co\/blog\/author\/norbert-kamienski\/\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016166016\",\"position\":1,\"url\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016166016\",\"name\":\"How Can I Develop an App for Both Android and iOS?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Expo and React Native let you build apps that runs on both platforms. Most core components and APIs work the same across Android and iOS, and Expo handles much of the platform-specific setup.<br\/>You can preview and test your app on both platforms using Expo Go or EAS Build for production.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016181442\",\"position\":2,\"url\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016181442\",\"name\":\"What Is the Purpose Of Expo?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Expo is <strong>a framework and platform built around React Native<\/strong>. It helps developers build and deploy mobile apps without the need for native code.<br\/>You can read more about Expo <a href=\\\"https:\/\/pagepro.co\/blog\/what-is-expo-js\/\\\" target=\\\"_blank\\\" rel=\\\"noreferrer noopener\\\"><strong>in this article<\/strong><\/a>.<br\/>\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016200008\",\"position\":3,\"url\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016200008\",\"name\":\"How Do You Publish Expo App?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Publishing Expo app requires you to:<br\/>1.  Create an Expo account.<br\/>2. Configure your project via app.json (including fields like bundleId, version, and icon).<br\/>3. Use EAS CLI to build your app with eas build.<br\/>4. Log into your Apple Developer and Google Play accounts to provide credentials.<br\/><br\/>Submit your app using eas submit to <strong>App Store Connect<\/strong> or the <strong>Google Play Console<\/strong>.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016275290\",\"position\":4,\"url\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016275290\",\"name\":\"Is Publishing with Expo Free?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<strong>Yes, it\u2019s free.<\/strong><br\/>To build and publish your Expo React Native app to the App Store or Google Play Store, you\u2019ll need to use EAS Build and EAS Submit. These are part of Expo Application Services.<br\/><strong>While Expo offers a free tier, some cases might need a paid subscription.<\/strong>\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016294676\",\"position\":5,\"url\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016294676\",\"name\":\"How Much Does Expo App Publishing Cost?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<strong>Publishing Expo app costs nothing when using Expo\u2019s free tools<\/strong>, but you'll still need:<br\/><br\/>1. An Expo account: <strong>Free<\/strong> (which you can upgrade for more features at <strong>$19\/month<\/strong>)<br\/>2. A Google Play Console account: <strong>One-time $25 USD fee<\/strong><br\/>3. An Apple Developer account: <strong>$99 USD\/year<\/strong><br\/><br\/>It's possible to generate and submit app builds using Expo's EAS Build and EAS Submit for free. If you exceed Expo\u2019s free build limits or if your app uses over-the-air updates, <strong>you might get billed extra<\/strong>.\u00a0<br\/>Apps with <strong>in-app purchases or subscriptions<\/strong> will have additional fees, depending on the platform\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016339314\",\"position\":6,\"url\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016339314\",\"name\":\"Can you use React Native for both iOS and Android?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, <strong>React Native is designed for cross-platform development<\/strong>, so you can write a single codebase that works on both iOS and Android.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016362638\",\"position\":7,\"url\":\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016362638\",\"name\":\"How to Add Android and iOS Folders in React Native Expo?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"If you're using <strong>the managed Expo workflow<\/strong>, you won't see the traditional android and ios folders. Expo handles native configurations for you.<br\/>If you need direct access to native code, you can run npx expo prebuild to generate these folders.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Publish Expo React Native App to iOS and Android in 2025","description":"Step-by-step guide on all you need to know about publishing Expo app on Apple App Store and Google Play Store.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/","og_locale":"en_US","og_type":"article","og_title":"How to Publish Expo React Native App to iOS and Android in 2025","og_description":"Step-by-step guide on all you need to know about publishing Expo app on Apple App Store and Google Play Store.","og_url":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/","og_site_name":"Pagepro","article_publisher":"https:\/\/www.facebook.com\/thisispagepro","article_published_time":"2025-07-25T10:14:16+00:00","article_modified_time":"2026-03-05T11:13:07+00:00","og_image":[{"width":1024,"height":582,"url":"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2023\/08\/Publishing-Expo-Apps-to-App-Store-and-Google-Play-Store-2025-Guide.png","type":"image\/png"}],"author":"Norbert Kamienski","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Norbert Kamienski","Est. reading time":"21 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#article","isPartOf":{"@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/"},"author":{"name":"Norbert Kamienski","@id":"https:\/\/pagepro.co\/blog\/#\/schema\/person\/467d61fcdf677085e920f7493a02f3b4"},"headline":"Publishing Expo Apps to App Store and Google Play Store: 2026 Guide","datePublished":"2025-07-25T10:14:16+00:00","dateModified":"2026-03-05T11:13:07+00:00","mainEntityOfPage":{"@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/"},"wordCount":2470,"commentCount":0,"publisher":{"@id":"https:\/\/pagepro.co\/blog\/#organization"},"keywords":["best practices","expo","for developers","how to","tips"],"articleSection":["Mobile Development","React Native"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#respond"]}]},{"@type":["WebPage","FAQPage"],"@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/","url":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/","name":"How to Publish Expo React Native App to iOS and Android in 2025","isPartOf":{"@id":"https:\/\/pagepro.co\/blog\/#website"},"datePublished":"2025-07-25T10:14:16+00:00","dateModified":"2026-03-05T11:13:07+00:00","description":"Step-by-step guide on all you need to know about publishing Expo app on Apple App Store and Google Play Store.","breadcrumb":{"@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#breadcrumb"},"mainEntity":[{"@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016166016"},{"@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016181442"},{"@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016200008"},{"@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016275290"},{"@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016294676"},{"@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016339314"},{"@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016362638"}],"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/pagepro.co\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/pagepro.co\/blog\/"},{"@type":"ListItem","position":3,"name":"Publishing Expo Apps to App Store and Google Play Store: 2026 Guide"}]},{"@type":"WebSite","@id":"https:\/\/pagepro.co\/blog\/#website","url":"https:\/\/pagepro.co\/blog\/","name":"Pagepro","description":"Frictionless Next.js, Expo &amp; Sanity Development Blog","publisher":{"@id":"https:\/\/pagepro.co\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pagepro.co\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/pagepro.co\/blog\/#organization","name":"Pagepro","url":"https:\/\/pagepro.co\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pagepro.co\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2020\/08\/logo_pagepro-b66d228a1e-1.png","contentUrl":"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2020\/08\/logo_pagepro-b66d228a1e-1.png","width":440,"height":200,"caption":"Pagepro"},"image":{"@id":"https:\/\/pagepro.co\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/thisispagepro"]},{"@type":"Person","@id":"https:\/\/pagepro.co\/blog\/#\/schema\/person\/467d61fcdf677085e920f7493a02f3b4","name":"Norbert Kamienski","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pagepro.co\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/bb75ed486968c658d138d548af600c40?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bb75ed486968c658d138d548af600c40?s=96&d=mm&r=g","caption":"Norbert Kamienski"},"description":"Norbert is an Engineering Manager and React Native Expert at Pagepro, where his expertise and leadership have been pivotal for over eight years. Renowned for his professionalism and meticulous attention to detail, Norbert has a well-earned reputation for optimizing app performance to its peak. His technical insight and deep understanding of React Native have made him a trusted figure both within the team and among clients.","sameAs":["https:\/\/www.linkedin.com\/in\/norbert-kamienski\/"],"url":"https:\/\/pagepro.co\/blog\/author\/norbert-kamienski\/"},{"@type":"Question","@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016166016","position":1,"url":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016166016","name":"How Can I Develop an App for Both Android and iOS?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Expo and React Native let you build apps that runs on both platforms. Most core components and APIs work the same across Android and iOS, and Expo handles much of the platform-specific setup.<br\/>You can preview and test your app on both platforms using Expo Go or EAS Build for production.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016181442","position":2,"url":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016181442","name":"What Is the Purpose Of Expo?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Expo is <strong>a framework and platform built around React Native<\/strong>. It helps developers build and deploy mobile apps without the need for native code.<br\/>You can read more about Expo <a href=\"https:\/\/pagepro.co\/blog\/what-is-expo-js\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>in this article<\/strong><\/a>.<br\/>","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016200008","position":3,"url":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016200008","name":"How Do You Publish Expo App?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Publishing Expo app requires you to:<br\/>1.  Create an Expo account.<br\/>2. Configure your project via app.json (including fields like bundleId, version, and icon).<br\/>3. Use EAS CLI to build your app with eas build.<br\/>4. Log into your Apple Developer and Google Play accounts to provide credentials.<br\/><br\/>Submit your app using eas submit to <strong>App Store Connect<\/strong> or the <strong>Google Play Console<\/strong>.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016275290","position":4,"url":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016275290","name":"Is Publishing with Expo Free?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"<strong>Yes, it\u2019s free.<\/strong><br\/>To build and publish your Expo React Native app to the App Store or Google Play Store, you\u2019ll need to use EAS Build and EAS Submit. These are part of Expo Application Services.<br\/><strong>While Expo offers a free tier, some cases might need a paid subscription.<\/strong>","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016294676","position":5,"url":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016294676","name":"How Much Does Expo App Publishing Cost?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"<strong>Publishing Expo app costs nothing when using Expo\u2019s free tools<\/strong>, but you'll still need:<br\/><br\/>1. An Expo account: <strong>Free<\/strong> (which you can upgrade for more features at <strong>$19\/month<\/strong>)<br\/>2. A Google Play Console account: <strong>One-time $25 USD fee<\/strong><br\/>3. An Apple Developer account: <strong>$99 USD\/year<\/strong><br\/><br\/>It's possible to generate and submit app builds using Expo's EAS Build and EAS Submit for free. If you exceed Expo\u2019s free build limits or if your app uses over-the-air updates, <strong>you might get billed extra<\/strong>.\u00a0<br\/>Apps with <strong>in-app purchases or subscriptions<\/strong> will have additional fees, depending on the platform","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016339314","position":6,"url":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016339314","name":"Can you use React Native for both iOS and Android?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Yes, <strong>React Native is designed for cross-platform development<\/strong>, so you can write a single codebase that works on both iOS and Android.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016362638","position":7,"url":"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/#faq-question-1767016362638","name":"How to Add Android and iOS Folders in React Native Expo?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"If you're using <strong>the managed Expo workflow<\/strong>, you won't see the traditional android and ios folders. Expo handles native configurations for you.<br\/>If you need direct access to native code, you can run npx expo prebuild to generate these folders.","inLanguage":"en-US"},"inLanguage":"en-US"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/posts\/7574"}],"collection":[{"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/comments?post=7574"}],"version-history":[{"count":64,"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/posts\/7574\/revisions"}],"predecessor-version":[{"id":23131,"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/posts\/7574\/revisions\/23131"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/media\/19583"}],"wp:attachment":[{"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/media?parent=7574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/categories?post=7574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/tags?post=7574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}