<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Expo Team</title>
    <description>The latest articles on DEV Community by Expo Team (@expoteam).</description>
    <link>https://dev.to/expoteam</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F483035%2F2fe3cb24-32f4-48c1-9f2c-8c729a4c520b.jpg</url>
      <title>DEV Community: Expo Team</title>
      <link>https://dev.to/expoteam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/expoteam"/>
    <language>en</language>
    <item>
      <title>Introducing EAS Hosting: Simplified deployment for modern React apps</title>
      <dc:creator>Expo Team</dc:creator>
      <pubDate>Tue, 14 Jan 2025 15:40:31 +0000</pubDate>
      <link>https://dev.to/expo/introducing-eas-hosting-simplified-deployment-for-modern-react-apps-olh</link>
      <guid>https://dev.to/expo/introducing-eas-hosting-simplified-deployment-for-modern-react-apps-olh</guid>
      <description>&lt;p&gt;From weather apps, and commerce websites, to AI-powered chat apps, most modern applications today need reliable servers. That's why today we're introducing &lt;strong&gt;EAS Hosting&lt;/strong&gt; for instantly deploying and scaling universal API routes, React websites, and more!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Challenge of Universal App Deployment
&lt;/h2&gt;

&lt;p&gt;Many massive companies such as Netflix, Meta, and Apple use server-driven UI in their native apps. But building a server-driven application is extremely challenging and simply out of reach for most developers. Our goal with &lt;strong&gt;Expo Router&lt;/strong&gt; has been to solve this problem and enable anyone to build and scale world-class server-driven apps for Android, iOS, and web using the same codebase.&lt;/p&gt;

&lt;p&gt;To this end, we've introduced &lt;a href="https://docs.expo.dev/router/reference/api-routes/" rel="noopener noreferrer"&gt;API Routes&lt;/a&gt; that can be used to create server endpoints for your app, &lt;a href="https://docs.expo.dev/guides/environment-variables/" rel="noopener noreferrer"&gt;secure environment variables&lt;/a&gt;, and static generation for web pages, all building toward &lt;a href="https://docs.expo.dev/guides/server-components/" rel="noopener noreferrer"&gt;universal React Server Components&lt;/a&gt;. While all these features work great on a local dev server, deployment has become more challenging.&lt;/p&gt;

&lt;p&gt;There are many full-stack problems to consider when building a modern application. We've historically recommended deploying Expo websites and universal API routes to traditional hosting services that are focused only on websites. But hosting services for websites traditionally don’t integrate with the problems native apps face.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New versions of your servers may need to be deployed while new versions of your native app are being published to app stores.&lt;/li&gt;
&lt;li&gt;Different versions of your native app may need to have their requests routed to different versions of your server.&lt;/li&gt;
&lt;li&gt;Observability of servers for critical metrics, such as feature adoption by platform, becomes more important for Expo native apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With &lt;strong&gt;EAS Hosting&lt;/strong&gt;, in conjunction with &lt;strong&gt;EAS Workflows&lt;/strong&gt;, we’re providing an end-to-end deployment solution that just works across all platforms, and stays working as you scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Get Started with EAS Hosting
&lt;/h2&gt;

&lt;p&gt;First, ensure you’re using the latest version of &lt;strong&gt;EAS CLI&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i &lt;span class="nt"&gt;-g&lt;/span&gt; eas-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then simply bundle your app with Expo CLI, deploy your website and server code worldwide with a single EAS command, and get a preview URL immediately:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx expo &lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; web
eas deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it! Your website and API routes are now live with a beautiful .expo.app URL that you can share with anyone. (For an example Expo web deployment, visit: &lt;a href="https://bacon.expo.app" rel="noopener noreferrer"&gt;https://bacon.expo.app&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Add environment variables to your .env file, and these will securely reside on the server-side for use in API routes and React Server Functions, keeping them out of your client code.&lt;/p&gt;

&lt;p&gt;By visiting the EAS dashboard, you can monitor your deployments and see helpful telemetry. Server errors are automatically aggregated and can be linked to for triaging!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa5m2czen2kvf78892t8w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa5m2czen2kvf78892t8w.png" alt="Image description" width="800" height="584"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's a comprehensive video demonstration of EAS Hosting that covers deployment, assigning aliases, using API routes, looking up request logs, managing environment variables, and automating deployments with Workflows:&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/NaKsfWciJLo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>reactjsdevelopment</category>
      <category>reactnative</category>
      <category>react</category>
    </item>
    <item>
      <title>Fingerprint your native runtime with @expo/fingerprint</title>
      <dc:creator>Expo Team</dc:creator>
      <pubDate>Tue, 06 Feb 2024 23:47:00 +0000</pubDate>
      <link>https://dev.to/expo/fingerprint-your-native-runtime-with-expofingerprint-13hb</link>
      <guid>https://dev.to/expo/fingerprint-your-native-runtime-with-expofingerprint-13hb</guid>
      <description>&lt;p&gt;At Expo, we’re always looking to find systematic solutions to problems that developers encounter when building apps with React Native. There’s a set of time-consuming questions related to the native project runtime that comes up again and again, and up until now, there hasn’t been a good systematic approach to answering them.&lt;/p&gt;

&lt;p&gt;The questions go something like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does a pull request include native code changes and need to initiate a new build for testing?&lt;/li&gt;
&lt;li&gt;Is my update compatible with the runtime in my production app? Or will it crash the app?&lt;/li&gt;
&lt;li&gt;Does a project require a development build, or can I experiment with it in Expo Go?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While these issues may seem quite different initially, on closer examination they all come down to one key problem: "Given a project, can we deterministically generate a hash, identity, or fingerprint that represents its unique native characteristics?"&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet @expo/fingerprint
&lt;/h2&gt;

&lt;p&gt;Now, by running &lt;code&gt;npx @expo/fingerprint@latest /path/to/yourProject&lt;/code&gt;, you can get a full picture of your project's native setup. &lt;code&gt;@expo/fingerprint&lt;/code&gt; also comes with an API, so you can integrate this tool programmatically into your own projects.&lt;/p&gt;

&lt;p&gt;We think this is a massive milestone for the whole React Native ecosystem and it's already unlocking some super interesting use cases that are not immediately obvious. Krzysztof Magiera is using it to make startup of his RN IDE plugin for vscode much faster.&lt;/p&gt;

&lt;p&gt;Here’s an example of what the fingerprint looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "sources": [
    {
      "type": "file",
      "filePath": "app.json",
      "reasons": ["expoConfig"],
      "hash": "378083de0c6e6bb6caf8fb72df658b0b26fb29ef"
    },
    {
      "type": "file",
      "filePath": "eas.json",
      "reasons": ["easBuild"],
      "hash": "f723802b6ea916d1a6c4767b2299cc81ddb22eb4"
    },
    {
      "type": "dir",
      "filePath": "node_modules/expo",
      "reasons": ["expoAutolinkingIos", "expoAutolinkingAndroid", "bareRncliAutolinking"],
      "hash": "1faee4057fa943300905750b51c3b0cbf05f4b0d"
    }
  ],
  "hash": "bf8a3b08935f056270b1688333b02f1ef5fa25bf"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Developers can represent the entire native state of their project with a single, succinct hash value, which is immensely valuable for easily detecting native changes. But there are several other important considerations that we accounted for in order to maximize the usefulness in various use cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Speed&lt;/strong&gt;: we’ve tried to make this tool as fast as possible so you can run it often, and we’ll continue to push on that to make it even faster.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Precision&lt;/strong&gt;: we should only consider aspects of the project that are actually relevant (it can’t just be a hash of the entire project and all of the .DS_Store and .swp files or the value would not be useful).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Support for diffing&lt;/strong&gt;: You should be able to compare fingerprints to determine what’s different between them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Customizability&lt;/strong&gt;: The API exposes some options that you can use to customize for your workflows — most notably, you can either add extra files to hashing or exclude files. We also read the .fingerprintignore file from your project root, which works similarly to .gitignore.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try out @expo/fingerprint 🪄
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;@expo/fingerprint&lt;/code&gt; fully supports projects made with Expo CLI and also works with any bare React Native apps, whether they use Expo tools or not. Follow these steps to see it in action:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Generate a fingerprint JSON file: &lt;code&gt;run npx @expo/fingerprint@latest /path/to/yourProject &amp;gt; fingerprint.json&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change your native runtime: one easy way to do this is to install an npm package with native dependencies, for example: &lt;code&gt;npx expo install expo-camera&lt;/code&gt; or &lt;code&gt;npm install react-native-vision-camera&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Diff the fingerprint: run &lt;code&gt;npx @expo/fingerprint@latest /path/to/yourProject fingerprint.json&lt;/code&gt;. Notice that it will identify what changed, for example if you installed expo-camera, you will see something like this:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[
  {
    "type": "dir",
    "filePath": "../../node_modules/expo-camera/android",
    "reasons": [
      "expoAutolinkingAndroid"
    ],
    "hash": "7682b28ed4ef8356faa5d9ad5b71e76e53198375"
  },
  {
    "type": "dir",
    "filePath": "../../node_modules/expo-camera/ios",
    "reasons": [
      "expoAutolinkingIos"
    ],
    "hash": "a80c2b1abb73157b772a8d0a351920465894bb0d"
  },
    // the rest is redacted for brevity
]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can use this API programmatically with the &lt;code&gt;Fingerprint.diffFingerprintChangesAsync(fingerprint, projectRoot)&lt;/code&gt; function.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s next: collect feedback and refine workflows
&lt;/h2&gt;

&lt;p&gt;We think &lt;code&gt;@expo/fingerprint&lt;/code&gt; is really going to help with automating decisions like when you can safely send out updates and analyzing your team's pull-requests to rebuild the native app only when it’s really needed.&lt;/p&gt;

&lt;p&gt;Even though this is the first time we’re publicly talking about &lt;code&gt;@expo/fingerprint&lt;/code&gt;, we’ve already had some early adopters who have opened PRs / issues to help make the tool better accommodate their projects.&lt;/p&gt;

&lt;p&gt;We also know that the tool’s built-in opinions might not be perfect for every project. We want help from the community to test this tool thoroughly, and one way that we’ve made it very easy to do so is with our GitHub Actions integration, which is available now! (Blog post on github actions coming soon.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Using @expo/fingerprint with EAS
&lt;/h2&gt;

&lt;p&gt;In the future, we plan to build first-class integration for &lt;code&gt;@expo/fingerprint&lt;/code&gt; into EAS services. You can use &lt;code&gt;@expo/fingerprint&lt;/code&gt; in your EAS projects today by generating your fingerprint with the CLI and populating your runtimeVersion field with it, then comparing that value with the value generated at the time when you would like to do an update or build. If you use GitHub Actions to kick off your builds and updates, then may also want to use the GitHub Actions integration!&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>javascript</category>
      <category>programming</category>
      <category>native</category>
    </item>
    <item>
      <title>Expo SDK 50 Release 🚀</title>
      <dc:creator>Expo Team</dc:creator>
      <pubDate>Thu, 18 Jan 2024 23:38:27 +0000</pubDate>
      <link>https://dev.to/expo/expo-sdk-50-release-do</link>
      <guid>https://dev.to/expo/expo-sdk-50-release-do</guid>
      <description>&lt;p&gt;Today we’re announcing the release of Expo SDK 50. &lt;/p&gt;

&lt;p&gt;SDK 50 is a very chunky and ambitious release that includes React Native 0.73. Thank you to all the contributors and to everyone who helped with beta testing.&lt;/p&gt;

&lt;p&gt;Learn more in the &lt;a href="https://expo.dev/changelog"&gt;full article on the Expo Changelog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And please join our &lt;a href="https://www.youtube.com/live/cKFSVUo3AnI?si=RY5xZ4n6rmxgtNmH"&gt;live stream on January 31st&lt;/a&gt; at 10:30am PT for a walkthrough of what’s new. &lt;/p&gt;

</description>
      <category>react</category>
      <category>reactnative</category>
      <category>expo</category>
      <category>universalapps</category>
    </item>
    <item>
      <title>Introducing EAS</title>
      <dc:creator>Expo Team</dc:creator>
      <pubDate>Wed, 10 Nov 2021 22:23:13 +0000</pubDate>
      <link>https://dev.to/expo/introducing-eas-c63</link>
      <guid>https://dev.to/expo/introducing-eas-c63</guid>
      <description>&lt;p&gt;&lt;em&gt;EAS stands for Expo Application Services, the fastest way to get your Expo app from development to the app stores.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Over the last few months, we've been previewing two new services: EAS Build and EAS Submit, the first services available from Expo Application Services (EAS).&lt;/p&gt;

&lt;p&gt;Today, we're happy to announce that EAS is moving out of preview and into general availability!&lt;/p&gt;

&lt;h1&gt;
  
  
  What is EAS?
&lt;/h1&gt;

&lt;p&gt;Expo is our open-source project: &lt;a href="https://blog.expo.dev/exponent-is-free-as-in-and-as-in-1d6d948a60dc"&gt;it will always be both open source and free&lt;/a&gt; - forever!&lt;/p&gt;

&lt;p&gt;Expo Application Services (EAS) are our hosted cloud services built for both Expo and React Native. With EAS Build and Submit, we make it faster and easier for you to get your app from development into the app stores.&lt;/p&gt;

&lt;p&gt;To learn more about EAS, head over to &lt;a href="http://expo.dev/eas"&gt;expo.dev/eas&lt;/a&gt; or check out our &lt;a href="https://docs.expo.dev/eas/"&gt;docs&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  EAS Build and Submit
&lt;/h1&gt;

&lt;p&gt;EAS Build takes everything good about the classic Expo build service (&lt;code&gt;expo build:[android|ios]&lt;/code&gt;) and &lt;a href="https://blog.expo.dev/expo-managed-workflow-in-2021-5b887bbf7dbb"&gt;leaves all of its limitations behind&lt;/a&gt;. EAS Build raises the ceiling on what's possible with Expo managed workflow apps by adding support for &lt;a href="https://blog.expo.dev/expo-managed-workflow-in-2021-d1c9b68aa10"&gt;custom native code&lt;/a&gt; and for building "&lt;a href="https://blog.expo.dev/introducing-custom-development-clients-5a2c79a9ddf8"&gt;Development clients&lt;/a&gt;" in the cloud. The service works great with both managed and bare Expo apps, or any React Native app you throw at it. You can also &lt;a href="https://docs.expo.dev/build-reference/local-builds/"&gt;run it locally or on your own infrastructure&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can build your app with EAS Build and automatically submit to app stores with EAS Submit in minutes or less, thanks to &lt;a href="https://docs.expo.io/app-signing/managed-credentials/"&gt;automatically managed app signing credentials&lt;/a&gt;, &lt;a href="https://docs.expo.dev/build/automating-submissions/"&gt;automatic submissions&lt;/a&gt;, and defaults that &lt;em&gt;just work&lt;/em&gt; for most Expo and React Native apps.&lt;/p&gt;

&lt;p&gt;Internal distribution makes it easy to share test builds with colleagues and friends using &lt;a href="https://expo.canny.io/feature-requests/p/iosbuild-with-adhoc-provision-profile"&gt;ad hoc provisioning&lt;/a&gt; or &lt;a href="https://developer.apple.com/programs/enterprise/"&gt;enterprise provisioning&lt;/a&gt; on iOS and APK side-loading on Android.&lt;/p&gt;

&lt;p&gt;Everything works great &lt;a href="https://docs.expo.dev/accounts/account-types/"&gt;for your entire team&lt;/a&gt; out of the box and can be &lt;a href="https://docs.expo.dev/build/building-on-ci/"&gt;integrated into your existing CI/CD workflows&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  New EAS plans
&lt;/h1&gt;

&lt;p&gt;With our EAS General Availability release, we are introducing three new plans: &lt;a href="https://expo.dev/pricing"&gt;Free, Production, and Enterprise&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;All our EAS services are now available under the &lt;a href="https://expo.dev/pricing"&gt;Free&lt;/a&gt; plan, which is a great option for pre-revenue startups and proofs-of-concept, as well as hobby and student projects.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://expo.dev/pricing"&gt;Production&lt;/a&gt; plan is for any commercial app in production generating more than $1,500 per month in revenue, or any team using EAS in a serious way. With the Production plan, you get priority for your builds, additional build concurrencies, and access to add-ons as well as to the Expo Professionals forum. The Production plan is $99/month.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://expo.dev/pricing"&gt;Enterprise&lt;/a&gt; plan is for teams that want to work closely with Expo on their apps. Enterprise plans include more of everything in the Production plan and gives access to add-on features like SLAs and dedicated support.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Folks currently on the EAS Priority plan will be able to stay on that plan until they're ready to switch!&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Enterprise support add-on
&lt;/h1&gt;

&lt;p&gt;We often get requests for additional levels of support and are happy to announce our Enterprise Support plan that's now available as an add-on to our Enterprise plan. &lt;/p&gt;

&lt;p&gt;With Enterprise Support you'll get direct access to the Expo team for questions and troubleshooting via a dedicated Slack channel. To learn more, check out our &lt;a href="https://www.expo.dev/eas/enterprise-support"&gt;Enterprise Support page&lt;/a&gt;. &lt;/p&gt;

&lt;h1&gt;
  
  
  Get started with EAS - free!
&lt;/h1&gt;

&lt;p&gt;All Expo accounts get access to the free EAS plan, so everyone can now try out EAS Build and Submit. &lt;/p&gt;

&lt;p&gt;To learn more, look at &lt;a href="https://docs.expo.dev/build/setup/"&gt;creating your first build&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Thank you!
&lt;/h1&gt;

&lt;p&gt;We want to extend a huge thank you to all the developers who participated in the preview and provided feedback for EAS Build and Submit. That feedback was a tremendous resource whether it was helping to track down a tricky bug, uncovering new use cases, or suggesting new improvements and functionality.&lt;/p&gt;

&lt;p&gt;In total, developers participating in the EAS preview period built over 100,000 successful builds of their apps - with over 80,000 app store submissions! Hats off to all our preview developers!&lt;/p&gt;

&lt;p&gt;Of course, just because we're out of the preview period, &lt;a href="https://docs.expo.dev/build-reference/limitations/"&gt;that doesn't mean we're done&lt;/a&gt;! We'll continue to add great new features and services - so please stay tuned and keep that feedback coming in!&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>reactnative</category>
      <category>programming</category>
      <category>react</category>
    </item>
    <item>
      <title>Expo SDK 41</title>
      <dc:creator>Expo Team</dc:creator>
      <pubDate>Fri, 23 Apr 2021 23:02:17 +0000</pubDate>
      <link>https://dev.to/expo/expo-sdk-41-1f2j</link>
      <guid>https://dev.to/expo/expo-sdk-41-1f2j</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdqsbfehonsots7vahff.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdqsbfehonsots7vahff.png" alt="Stylized number 41"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Today we're announcing the release of &lt;strong&gt;Expo SDK 41&lt;/strong&gt;. SDK 41 includes React Native 0.63, the same version as in SDK 40. Thank you to everyone that [helped with beta testing[(&lt;a href="https://blog.expo.io/expo-sdk-41-beta-is-now-available-958edcd78991" rel="noopener noreferrer"&gt;https://blog.expo.io/expo-sdk-41-beta-is-now-available-958edcd78991&lt;/a&gt;). (&lt;em&gt;Curious why we didn't include the recently released React Native 0.64? &lt;a href="https://expo.fyi/react-native-releases" rel="noopener noreferrer"&gt;Learn more&lt;/a&gt;.&lt;/em&gt;)&lt;/p&gt;

&lt;h1&gt;
  
  
  ⚡️ Highlights
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Android apps now target Android R (11 / SDK 30)&lt;/strong&gt;. This comes with some significant changes for location permissions, media library (related to &lt;a href="https://android-doc.github.io/guide/topics/providers/document-provider.html" rel="noopener noreferrer"&gt;StorageAccessFramework&lt;/a&gt;), and constants. Please note that these changes also impact SDK &amp;lt;= 40 projects in Expo Go, but they will not impact SDK &amp;lt;= 40 standalone apps. Refer to &lt;a href="https://expo.fyi/android-r" rel="noopener noreferrer"&gt;expo.fyi/android-r&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The recommended version of react-native-reanimated has been updated to v2&lt;/strong&gt;. If you would like to use v2 features in your app, you need to add the &lt;a href="https://docs.swmansion.com/react-native-reanimated/docs/installation/#babel-plugin" rel="noopener noreferrer"&gt;Reanimated v2 Babel plugin&lt;/a&gt;. You can continue to use v1 features (eg: those used by React Navigation v5) without adding the new Babel plugin. Please note that if you use the new features from v2, you will not be able to use remote JS debugging in your app! If you use v2 APIs, JS debugging is only possible using Flipper and Hermes, which are not yet fully supported in the managed workflow. (&lt;em&gt;We plan to investigate integrating Hermes during the next SDK cycle, but we don't currently expect to have it ready for SDK 42.&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;lottie-react-native has been updated to the latest version (3.5.0)&lt;/strong&gt;. Your existing animations should continue to work as before, but if you encounter any issues please &lt;a href="https://github.com/expo/expo/issues" rel="noopener noreferrer"&gt;file an issue&lt;/a&gt; and share the animation file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The new version of react-native-screens (v3) "enables screens" by default&lt;/strong&gt;. If you encounter any related issues, you can report the issue and opt out with &lt;code&gt;enableScreens(false)&lt;/code&gt;. Be sure to update to the latest v4 patch release of React Navigation if you use v4.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Improvements were made across the SDK to ensure compatibility with EAS Build&lt;/strong&gt;. A big part of this SDK has been making the necessary underlying changes to support EAS Build for managed projects. You can now use EAS Build with Expo managed apps to reduce the size of your standalone apps by up to 10x! &lt;a href="https://blog.expo.io/eas-build-april-preview-update-ebd7dff9dd25" rel="noopener noreferrer"&gt;Learn more about the latest EAS Build updates&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The expo package is now 93% smaller in production and better than ever&lt;/strong&gt;. We've simplified the experience so the &lt;code&gt;.expo&lt;/code&gt; extension is no longer needed (and so we removed it), and neither is the &lt;code&gt;--target bare|managed&lt;/code&gt; flag - updates will run in either context provided the native runtime is compatible. We've improved consistency across the managed and bare workflow, removed legacy code, and improved tree-shaking on the package using &lt;code&gt;@expo/metro-config&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;To see the full list of new features and fixes, refer to the &lt;a href="https://github.com/expo/expo/blob/master/CHANGELOG.md" rel="noopener noreferrer"&gt;changelog&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  🏡 Expo Go
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;We changed sign in to use &lt;code&gt;expo-web-browser&lt;/code&gt; so we can leverage our &lt;a href="https://blog.expo.io/four-new-security-features-to-protect-your-expo-apps-cdf3e409a1b0" rel="noopener noreferrer"&gt;existing web auth flow with two-factor-authentication&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;You can now see &lt;a href="https://blog.expo.io/expo-organizations-a-simpler-way-to-work-as-a-team-5dc244f0efcb" rel="noopener noreferrer"&gt;teams and organizations&lt;/a&gt; that you are a part of in the &lt;em&gt;Profile&lt;/em&gt; tab, and their associated projects show up in your recent projects below.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwie90orw7gnupg8pq5u8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwie90orw7gnupg8pq5u8.png" alt="Accounts &amp;amp; Organizations screenshot on mobile phones"&gt;&lt;/a&gt;Notice the "Accounts &amp;amp; Organizations" section and the shared "Recent Projects" list below it.&lt;/p&gt;

&lt;h1&gt;
  
  
  🌐 Expo CLI
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Integrated Developer Tools&lt;/strong&gt;: Open the developer menu, inspect elements, and monitor performance all from the CLI. Just run &lt;code&gt;expo start&lt;/code&gt; then press "m" to toggle the dev menu, and "shift+M" to toggle the performance monitor or element inspector across native apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/iZ8FwgDy2Ek"&gt;
&lt;/iframe&gt;It was either a heavily compressed but still 7mb gif or a YouTube video, so we went for the YouTube video.
&lt;br&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Force Reloading&lt;/strong&gt;: Shaking your devices every few minutes can get exhausting! Now you can reload connected phones, tablets, simulators, and browsers all by pressing "r" in the Terminal UI. This works across iOS, Android, web, and on physical devices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/wIH0OEmLgy8"&gt;
&lt;/iframe&gt;
&lt;br&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Automatic TypeScript setup&lt;/strong&gt;: Setting up TypeScript can be a pain, so we've completely automated it! Just create a blank &lt;code&gt;tsconfig.json&lt;/code&gt; and run &lt;code&gt;expo start&lt;/code&gt;, we'll take care of the rest! Learn more: &lt;a href="https://docs.expo.io/guides/typescript/" rel="noopener noreferrer"&gt;"TypeScript" in the Expo docs&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fneum1v776b28igfd16j7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fneum1v776b28igfd16j7.gif" alt="GIF of following the instructions in a terminal window"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vastly better errors&lt;/strong&gt;: No one likes errors - that's why in SDK 41 we've refined them to be as concise, and useful as possible! We only surface the most relevant stack traces and point to exactly where the error or warning is. We've also improved source maps, and muted generated code traces.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhmyabirypop0bk95ncma.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhmyabirypop0bk95ncma.png" alt="before and after screenshots of error log"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Debug your config&lt;/strong&gt;: The new &lt;code&gt;expo config&lt;/code&gt; command enables you to view the evaluated results of &lt;code&gt;app.config.js&lt;/code&gt; or &lt;code&gt;app.json&lt;/code&gt;. You can use &lt;code&gt;expo config --type public&lt;/code&gt; to see the app manifest used in &lt;code&gt;expo publish&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Better interactions with Apple Store Connect from your terminal&lt;/strong&gt;: Faster, smarter authentication, better error handling, and - for the first time ever - get full insight into complex issues right from the console. Where other tools &lt;code&gt;401&lt;/code&gt;, Expo CLI gives you links to resolve issues in seconds. Need to update your payment or accept a contract? Resolve in a couple clicks, and get back to developing incredible (or at least "good") apps!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcfyffordonfzzjrxbmb9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcfyffordonfzzjrxbmb9.png" alt="A terminal window showing information about a rejected request from App Store Connect due to an expired Developer Program membership."&gt;&lt;/a&gt;A terminal window showing information about a rejected request from App Store Connect due to an expired Developer Program membership.&lt;br&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The --config is flag deprecated&lt;/strong&gt;. We suggest using &lt;code&gt;app.config.js&lt;/code&gt; instead. The &lt;code&gt;--config&lt;/code&gt; flag will continue to be supported for existing use cases for the foreseeable future, but it will not be supported in some situations in bare workflow projects, and it will also not be supported on EAS Build. Learn more: &lt;a href="https://expo.fyi/config-flag-migration" rel="noopener noreferrer"&gt;Migrating away from &lt;code&gt;--config&lt;/code&gt; in Expo CLI&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The &lt;code&gt;--target flag&lt;/code&gt; is deprecated for SDK 41+&lt;/strong&gt;. This was used to provide slightly different behavior when in a managed or bare app environment, but it ended up being tricky to use because updates published with the &lt;code&gt;bare&lt;/code&gt; target could not run in Expo Go, and updates published with the &lt;code&gt;managed&lt;/code&gt; target could not run in a bare app. We now do any necessary adjustments to accommodate the environment at runtime, so an update bundle will work in either context, provided that the native runtime is compatible with the update.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Versioned Metro Config&lt;/strong&gt;: Rather than adding &lt;code&gt;@expo/metro-config&lt;/code&gt; to your &lt;code&gt;package.json&lt;/code&gt;, you can now import it through the expo package with the vendored &lt;code&gt;expo/metro-config&lt;/code&gt; import. This ensures that your project is always using a compatible version of the package. Learn More: &lt;a href="https://docs.expo.io/guides/customizing-metro/" rel="noopener noreferrer"&gt;Customizing Metro&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Introducing Config Plugins (beta)&lt;/strong&gt;: Config plugins are an important step towards making it possible for library authors to make their native modules part of the Expo ecosystem. This system is in beta, with a more stable release planned for SDK 42. Learn more: &lt;a href="https://docs.expo.io/guides/config-plugins/" rel="noopener noreferrer"&gt;Config Plugins&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  🏗 Deprecations, renamings, and removals
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deprecated globals have been removed from the expo package&lt;/strong&gt;.As a result, &lt;code&gt;expo-linear-gradient&lt;/code&gt;, &lt;code&gt;expo-linking&lt;/code&gt;, &lt;code&gt;expo-location&lt;/code&gt;, &lt;code&gt;expo-permissions&lt;/code&gt;, and &lt;code&gt;expo-sqlite&lt;/code&gt; are no longer automatically installed in every project by default as dependencies of &lt;code&gt;expo&lt;/code&gt;. If you were depending on &lt;code&gt;global.expo.LinearGradient&lt;/code&gt; or similar, please install the respective package and import the API from there instead, eg: &lt;code&gt;import { LinearGradient } from 'expo-linear-gradient';&lt;/code&gt;. Refer to &lt;a href="http://expo.fyi/deprecated-globals" rel="noopener noreferrer"&gt;expo.fyi/deprecated-globals&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Files with the .expo.* extension (eg: MyComponent.expo.js) are no longer recognized as source files.&lt;/strong&gt; If your project source code or dependencies include any files with the &lt;code&gt;.expo.*&lt;/code&gt; extension, &lt;code&gt;expo-cli&lt;/code&gt; will let you know when you upgrade. Refer to &lt;a href="//expo.fyi/expo-extension-migration"&gt;expo.fyi/expo-extension-migration&lt;/a&gt; for more information.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbp1jqobz7hzu1t6kd0ll.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbp1jqobz7hzu1t6kd0ll.png" alt="Terminal window showing a warning that projects with .expo.* file extensions are deprecated"&gt;&lt;/a&gt;We thought the .expo file extension was neat but it ended up not being necessary or particularly useful, and simplicity wins over neat things.&lt;br&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;expo-permissions has been deprecated in favor of module-specific permissions methods.&lt;/strong&gt; You should migrate from using &lt;code&gt;Permissions.askAsync&lt;/code&gt; and &lt;code&gt;Permissions.getAsync&lt;/code&gt; to the permissions methods exported by modules that require the permissions. For example: you should replace calls to &lt;code&gt;Permissions.askAsync(Permissions.CAMERA)&lt;/code&gt; with &lt;code&gt;Camera.requestPermissionsAsync()&lt;/code&gt;. There shouldn't be two ways to do an identical thing in a single SDK, and so we picked our preferred approach and are consolidating around it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;@react-native-community/async-storage&lt;/code&gt; is now &lt;code&gt;@react-native-async-storage/async-storage&lt;/code&gt;&lt;/strong&gt;. AsyncStorage is next in the packages that are gradually migrating out of the &lt;code&gt;@react-native-community&lt;/code&gt; scope on npm (&lt;a href="https://github.com/react-native-community/discussions-and-proposals/blob/master/partners/0001-organization-repository-policy.md" rel="noopener noreferrer"&gt;more context on why this is happening available here&lt;/a&gt;). We will take care of switching the packages in your dependencies in &lt;code&gt;package.json&lt;/code&gt; when you run &lt;code&gt;expo upgrade&lt;/code&gt;, but after that you will need to either manually update your imports in your source code, or run &lt;code&gt;npx expo-codemod sdk41-async-storage [your-source-directory]&lt;/code&gt; to update it automatically.
Along with this superficial change in package names comes a fix for an issue that occurs when ejecting your project; more information in &lt;a href="https://github.com/expo/expo/issues/8220" rel="noopener noreferrer"&gt;this issue&lt;/a&gt; and these &lt;a href="https://github.com/react-native-async-storage/async-storage/pull/563" rel="noopener noreferrer"&gt;pull&lt;/a&gt; &lt;a href="https://github.com/react-native-async-storage/async-storage/pull/559" rel="noopener noreferrer"&gt;requests&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;@expo/metro-config&lt;/code&gt; is now vendored by the &lt;code&gt;expo&lt;/code&gt; package&lt;/strong&gt;. If your &lt;code&gt;metro.config.js&lt;/code&gt; uses &lt;code&gt;@expo/metro-config&lt;/code&gt;, you should switch over to importing it from the &lt;code&gt;expo&lt;/code&gt; package instead. Remove &lt;code&gt;@expo/metro-config&lt;/code&gt; from your &lt;code&gt;package.json&lt;/code&gt; dependencies and change your import in &lt;code&gt;metro.config.js&lt;/code&gt; from &lt;code&gt;@expo/metro-config&lt;/code&gt; to &lt;code&gt;expo/metro-config&lt;/code&gt;. Learn more: &lt;a href="https://docs.expo.io/guides/customizing-metro/" rel="noopener noreferrer"&gt;Customizing Metro&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Legacy Notifications API has been removed&lt;/strong&gt;.The legacy Notifications library (imported from the &lt;code&gt;expo&lt;/code&gt; package) has been deprecated since SDK 38, and is now fully removed in SDK 41. If you're still relying on this package, you should &lt;a href="https://github.com/expo/fyi/blob/master/LegacyNotifications-to-ExpoNotifications.md" rel="noopener noreferrer"&gt;upgrade to &lt;code&gt;expo-notifications&lt;/code&gt;&lt;/a&gt;, which has plenty of improvements and additional features. Learn more: &lt;a href="https://expo.fyi/LegacyNotifications-to-ExpoNotifications" rel="noopener noreferrer"&gt;How to migrate from Expo's LegacyNotifications to the new expo-notifications library&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;👋 iOS 10 support has been dropped - Expo SDK 41 supports iOS 11+&lt;/strong&gt;. More information on this from our &lt;a href="https://blog.expo.io/expo-sdk-40-is-now-available-d4d73e67da33" rel="noopener noreferrer"&gt;SDK 40 release notes&lt;/a&gt;:&lt;em&gt;iOS 10 is the last version of iOS that still supports 32-bit simulator builds (x86), and to keep Expo npm packages smaller, we plan to publish only 64-bit pre-build binaries for simulators (x64 and arm64). This has been past due - the last time we dropped an iOS version was over two years ago, when we dropped support for iOS 9 in September 2018. Apple no longer reports usage statistics for iOS 10 directly, but you can get a rough idea from reading the &lt;a href="https://developer.apple.com/support/app-store/" rel="noopener noreferrer"&gt;App Store - iOS and iPadOS usage table&lt;/a&gt; - 6% of all devices use iOS 11 or lower at the time of writing.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🟢 Node 10 support will be dropped soon from Expo CLI&lt;/strong&gt;.
It's not that we have anything against the number 10, but Node 10 is about to be replaced by Node 12 as the Maintenance LTS release.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🧹 Dropped SDK 37; will drop SDK 38 next release&lt;/strong&gt;. We routinely drop SDK versions that have low usage in order to reduce the number of versions we need to support. This release sees the end of life for SDK 37. As usual, your standalone apps built with SDK 37 will continue to work; however, SDK 37 projects will no longer work within the latest version of Expo Go. If you want to re-run &lt;code&gt;expo build&lt;/code&gt;, then you'll need to upgrade from SDK 37, preferably to SDK 41 so you won't need to update again for a while (and also because each Expo version is better than the last!). &lt;strong&gt;Our next release is planned for June/July 2021 and, at that time, we'll be dropping support for SDK 38&lt;/strong&gt;. If your project is running on SDK 38, consider upgrading to a newer version in the coming months.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  ➡️ Upgrading your app
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Managed workflow
&lt;/h2&gt;

&lt;p&gt;Here's how to upgrade your app to Expo SDK 41 from 40:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update to the latest version of Expo CLI: &lt;code&gt;npm i -g expo-cli&lt;/code&gt;. &lt;a href="mailto:expo-cli@4.4.1"&gt;expo-cli@4.4.1&lt;/a&gt; or greater is required.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;expo upgrade&lt;/code&gt; in your project directory.&lt;/li&gt;
&lt;li&gt;If you are using &lt;code&gt;react-navigation&lt;/code&gt; v4, please be sure to update to the latest v4 patch release. This is required due to changes in the version of &lt;code&gt;react-native-screens&lt;/code&gt; included in SDK 41.&lt;/li&gt;
&lt;li&gt;Refer to the "Deprecations, renamings, and removals" section above for breaking changes that are most likely to impact your app.&lt;/li&gt;
&lt;li&gt;Make sure to check the &lt;a href="https://github.com/expo/expo/blob/master/CHANGELOG.md" rel="noopener noreferrer"&gt;changelog&lt;/a&gt; for all other breaking changes!&lt;/li&gt;
&lt;li&gt;Update the Expo app on your phones from the App Store / Google Play. expo-cli&lt;code&gt;will automatically update your apps in simulators if you delete the existing apps, or you can run&lt;/code&gt;expo client:install:ios&lt;code&gt;and&lt;/code&gt;expo client:install:android`.&lt;/li&gt;
&lt;li&gt;If you built a standalone app previously, &lt;a href="https://docs.expo.io/versions/latest/workflow/publishing/#limitations" rel="noopener noreferrer"&gt;remember&lt;/a&gt; that you'll need to create a new build in order to update the SDK version. Run &lt;code&gt;expo build:ios&lt;/code&gt; and/or &lt;code&gt;expo build:android&lt;/code&gt; when you are ready to do a new build for submission to stores.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Bare workflow
&lt;/h2&gt;

&lt;p&gt;The Bare workflow lets you operate independently of the Expo SDK cycle, updating RN versions and versions of individual Expo packages however and whenever you want. However, if you do stick roughly to Expo SDK versions, these steps will help you to upgrade to Expo SDK 41 from 40:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install the latest version of CocoaPods - 1.10.0 or greater is required.&lt;/li&gt;
&lt;li&gt;Update to the latest version of Expo CLI: &lt;code&gt;npm i -g expo-cli&lt;/code&gt;. &lt;a href="mailto:expo-cli@4.4.1"&gt;expo-cli@4.4.1&lt;/a&gt; or greater is required.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;expo upgrade&lt;/code&gt; in your project directory.&lt;/li&gt;
&lt;li&gt;Update to &lt;code&gt;platform :ios, '11.0'&lt;/code&gt; in your Podfile.&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;compileSdkVersion&lt;/code&gt; and &lt;code&gt;targetSdkVersion&lt;/code&gt; to 30 in &lt;code&gt;android/build.gradle&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If you are using &lt;code&gt;react-navigation&lt;/code&gt; v4, please be sure to update to the latest v4 patch release. This is required due to changes in the version of &lt;code&gt;react-native-screens&lt;/code&gt; included in SDK 41.&lt;/li&gt;
&lt;li&gt;Rebuild your native projects with &lt;code&gt;npm run ios&lt;/code&gt; and &lt;code&gt;npm run android&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Make sure to check the &lt;a href="https://github.com/expo/expo/blob/master/CHANGELOG.md" rel="noopener noreferrer"&gt;changelog&lt;/a&gt; for other breaking changes!&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mobile</category>
      <category>reactnative</category>
      <category>ios</category>
      <category>android</category>
    </item>
    <item>
      <title>Expo SDK 41 beta is now available</title>
      <dc:creator>Expo Team</dc:creator>
      <pubDate>Tue, 30 Mar 2021 18:23:38 +0000</pubDate>
      <link>https://dev.to/expo/expo-sdk-41-beta-is-now-available-11i1</link>
      <guid>https://dev.to/expo/expo-sdk-41-beta-is-now-available-11i1</guid>
      <description>&lt;p&gt;Learn about the changes, how to try it out, and how to give feedback&lt;/p&gt;

&lt;p&gt;The beta period will last approximately two weeks, and it is an opportunity for developers to ensure that the new release does not introduce any regressions for their particular system and app configurations.&lt;/p&gt;

&lt;p&gt;SDK 41 beta includes React Native 0.63, the same version as SDK 39 and 40. The full release notes won’t be available until the final release, but you can browse the changes in the &lt;a href="https://github.com/expo/expo/blob/master/CHANGELOG.md" rel="noopener noreferrer"&gt;expo/expo CHANGELOG&lt;/a&gt; to learn more about the scope of the release and any breaking changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Notable changes to be aware of
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;@react-native-community/async-storage&lt;/code&gt; is now &lt;code&gt;@react-native-async-storage/async-storage&lt;/code&gt;. You &lt;strong&gt;must&lt;/strong&gt; change to the new package in SDK 41.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Files with the &lt;code&gt;.expo&lt;/code&gt; extension (eg: &lt;code&gt;MyComponent.expo.js&lt;/code&gt;) are no longer recognized as source files. If your project source code or dependencies include any files with the &lt;code&gt;.expo.&lt;/code&gt; extension, &lt;code&gt;expo-cli&lt;/code&gt; will let you know when you upgrade. Refer to &lt;a href="https://expo.fyi/expo-extension-migration" rel="noopener noreferrer"&gt;expo.fyi/expo-extension-migration&lt;/a&gt; for more information.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;iOS 10 support has been dropped — Expo SDK 41 supports iOS 11+. One of the reasons for dropping iOS 10 was to reduce the size of prebuilt binaries for Expo packages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Node 10 support will be dropped soon from Expo CLI - it's not that we have anything against the number 10, but Node 10 is about to be replaced by Node 12 as the Maintenance LTS release.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/expo/fyi/blob/master/deprecated-globals.md" rel="noopener noreferrer"&gt;Deprecated globals&lt;/a&gt; have been removed from the &lt;code&gt;expo&lt;/code&gt; package. &lt;code&gt;expo-linear-gradient&lt;/code&gt;, &lt;code&gt;expo-linking&lt;/code&gt;, &lt;code&gt;expo-location&lt;/code&gt;, &lt;code&gt;expo-permissions&lt;/code&gt;, and &lt;code&gt;expo-sqlite&lt;/code&gt; are no longer automatically installed in every project. If you were depending on &lt;code&gt;global.expo.LinearGradient&lt;/code&gt; or similar, please the respective package and import the API from there instead, eg: &lt;code&gt;import { LinearGradient } from 'expo-linear-gradient';&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;expo-permissions&lt;/code&gt; has been deprecated in favor of module-specific permissions methods, eg: &lt;code&gt;Permissions.askAsync(Permissions.CAMERA)&lt;/code&gt; ➡️ &lt;code&gt;Camera.requestPermissionsAsync()&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Android apps now target Android R (11 / SDK 30). This comes with some significant changes for location permissions, media library (related to &lt;a href="https://android-doc.github.io/guide/topics/providers/document-provider.html" rel="noopener noreferrer"&gt;StorageAccessFramework&lt;/a&gt;), and constants. Please note that these changes also impact SDK &amp;lt;= 40 projects in Expo Go, but they will not impact SDK &amp;lt;= 40 standalone apps. Refer to &lt;a href="https://expo.fyi/android-r" rel="noopener noreferrer"&gt;expo.fyi/android-r&lt;/a&gt; for more information. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The recommended version of &lt;code&gt;react-native-reanimated&lt;/code&gt; has been updated to v2. If you would like to use v2 features in your app, you need to add the &lt;a href="https://docs.swmansion.com/react-native-reanimated/docs/installation/#babel-plugin" rel="noopener noreferrer"&gt;Babel plugin&lt;/a&gt;. You can continue to use v1 features (eg: those used by React Navigation v5) without adding the Babel plugin. Please note that if you use the new features from v2, you will not be able to use remote JS debugging in your app! This is only possible in v2 using Flipper, which is not yet fully supported in the managed workflow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The new version of &lt;code&gt;react-native-screens&lt;/code&gt; (v3) “enables screens” by default. If you encounter any related issues, you can report the issue and opt out with &lt;code&gt;enableScreens(false)&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;lottie-react-native&lt;/code&gt; has been updated to the latest version! Your existing animations should continue to work as before, but if you encounter any issues please file an issue and share the animation file.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Known regressions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Outstanding
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Bitcode has been disabled on SDK 41 standalone apps for iOS, pending &lt;a href="https://github.com/facebook/facebook-ios-sdk/pull/1698" rel="noopener noreferrer"&gt;facebook/facebook-ios-sdk#1698&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Resolved
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Textures in &lt;code&gt;expo-gl&lt;/code&gt; on Android are not currently working in published SDK 41 projects in Expo Go or standalone apps. &lt;a href="https://github.com/expo/expo/pull/12428" rel="noopener noreferrer"&gt;Related pull request&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;lottie-react-native crashes on iOS. &lt;a href="https://github.com/expo/expo/pull/12377" rel="noopener noreferrer"&gt;Related pull request&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to try out the beta release
&lt;/h2&gt;

&lt;p&gt;You will be able to opt in to using the SDK 41 beta by setting the EXPO_BETA environment variable to 1 (or some &lt;a href="https://www.npmjs.com/package/getenv/v/0.7.0#envboolishname-fallback" rel="noopener noreferrer"&gt;truthy value&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;On macOS and Linux, you can set this per command with &lt;code&gt;EXPO_BETA=1 expo &amp;lt;command&amp;gt;&lt;/code&gt;. On Windows, you can do the same with cross-env: &lt;code&gt;npx cross-env EXPO_BETA=1 expo &amp;lt;command&amp;gt;&lt;/code&gt;. Below we have listed in the commands in their more concise form.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install the latest version of expo-cli&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm i -g expo-cli&lt;/code&gt; (SDK 41 requires &lt;a href="mailto:expo-cli@4.3.2"&gt;expo-cli@4.3.2&lt;/a&gt; or greater)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Initialize a new project with SDK 41 beta&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;EXPO_BETA=1 expo init&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Upgrade an existing project&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;EXPO_BETA=1 expo upgrade&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install the latest Expo Go for iOS to your simulator:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;EXPO_BETA=1 expo client:install:ios&lt;/code&gt; outside of an Expo project or inside of an SDK 41 project&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install the latest Expo Go for iOS to your physical device&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Use this &lt;a href="https://testflight.apple.com/join/GZJxxfUU" rel="noopener noreferrer"&gt;TestFlight open beta link&lt;/a&gt; and follow the instructions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install the latest Expo Go for Android&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;EXPO_BETA=1 expo client:install:android&lt;/code&gt; outside of an Expo project or inside of an SDK 41 project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Running other CLI commands&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Other commands will work as expected without the &lt;code&gt;EXPO_BETA&lt;/code&gt; environment variable, including &lt;code&gt;build:{android,ios}&lt;/code&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read the documentation by selecting it from the version selector in the API reference section&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbu81b2u6sz34bqvizfl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbu81b2u6sz34bqvizfl.png" alt="Screen Shot 2021-03-30 at 9.29.07 AM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.expo.io/versions/v41.0.0" rel="noopener noreferrer"&gt;https://docs.expo.io/versions/v41.0.0&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  What to test
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Try ejecting your app and running it: &lt;code&gt;expo eject&lt;/code&gt;. Did it work without any changes? Perfect! No? Please report it on the &lt;a href="https://github.com/expo/expo/issues/12356" rel="noopener noreferrer"&gt;SDK 41 Beta Eject Issues Issue&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://expo.fyi/android-r" rel="noopener noreferrer"&gt;Media library and permissions changes made for Android R&lt;/a&gt; may impact your app. We'd appreciate your feedback on how they work for your app.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did we miss updating the documentation somewhere? Let us know.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to report issues
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create an issue on &lt;a href="https://github.com/expo/expo/issues" rel="noopener noreferrer"&gt;https://github.com/expo/expo/issues&lt;/a&gt; and be sure to fill out the template.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Figuring out the underlying causes of issues is super helpful.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Let us know that you are using the SDK 41 beta so we can prioritize the issue.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thank you for helping us with testing the release, we look forward to shipping it soon! 🚀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>EAS Build — February Preview Update</title>
      <dc:creator>Expo Team</dc:creator>
      <pubDate>Thu, 18 Feb 2021 22:04:16 +0000</pubDate>
      <link>https://dev.to/expoteam/eas-build-february-preview-update-16k5</link>
      <guid>https://dev.to/expoteam/eas-build-february-preview-update-16k5</guid>
      <description>&lt;p&gt;In December, we announced our preview of two new services: EAS Build and Submit — the first services available from Expo Application Services (EAS).&lt;/p&gt;

&lt;p&gt;Today, we wanted to share with you some of the updates and improvements we have been working on based on feedback we’ve received from developers just like you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multi-target support
&lt;/h2&gt;

&lt;p&gt;If your iOS app makes use of &lt;a href="https://developer.apple.com/app-extensions/" rel="noopener noreferrer"&gt;App Extensions&lt;/a&gt; like the Share Extension or the new Widget Extension, you’ll need to provide credentials for every target in your Xcode project.&lt;/p&gt;

&lt;p&gt;With our first version of multi-target support, you can now specify these targets by opting into locally managed credentials via credentials.json:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flwawfewoopcl25gwderh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flwawfewoopcl25gwderh.png" alt="Here we have our main application target  raw `multitarget` endraw  and a Share Extension target  raw `shareextension.` endraw "&gt;&lt;/a&gt;&lt;em&gt;Here we have our main application target &lt;code&gt;multitarget&lt;/code&gt; and a Share Extension target &lt;code&gt;shareextension.&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;With this new support, you’ll be able to use EAS Build to build your iOS apps with App Extensions as well as integrate with services that require them.&lt;/p&gt;

&lt;p&gt;In the future, we also plan to add support for multi-target projects to our automatically managed credentials. Until then, you can learn more about &lt;a href="https://docs.expo.io/app-signing/local-credentials/#multi-target-project" rel="noopener noreferrer"&gt;multi-target projects via credentials.json&lt;/a&gt; in our docs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Improved monorepo support
&lt;/h2&gt;

&lt;p&gt;yarn/npm install now executes in the root of the workspace in yarn and npm workspaces.&lt;/p&gt;

&lt;p&gt;Run your EAS CLI commands from the root of the app directory; for example, if your project exists inside of your git repository at apps/my-app, then run eas build from there. Don't forget — each app directory should have its own copy of eas.json and, if you use it, credentials.json.&lt;/p&gt;

&lt;p&gt;If you’d like to learn more, you can check out &lt;a href="https://docs.expo.io/build-reference/how-tos/#how-to-set-up-eas-build-with" rel="noopener noreferrer"&gt;How to Set Up EAS Build with a Monorepo&lt;/a&gt; as well as the &lt;a href="https://github.com/bycedric/eas-monorepo-example" rel="noopener noreferrer"&gt;EAS monorepo example&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configurable build environments
&lt;/h2&gt;

&lt;p&gt;We are always looking for ways to add more customization options to EAS Build. With this next step, we’ve added additional configuration options that you can set via eas.json:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;extends - name of build profile that current profile inherits values from&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;image - image with build environment. &lt;a href="https://docs.expo.io/build-reference/infrastructure/" rel="noopener noreferrer"&gt;Learn more about it here&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;node - version of Node.js&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;yarn - version of Yarn&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ndk - version of Android NDK&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;env - environment variables that should be set during the build process (should only be used for values that you would commit to your git repository, i.e: not passwords or secrets).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your build profile in eas.json could look something like this now!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Felzy7ih7pg3j8h9dcijt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Felzy7ih7pg3j8h9dcijt.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Currently, only one image is supported on each platform at the moment; however, &lt;a href="https://docs.expo.io/build-reference/infrastructure/" rel="noopener noreferrer"&gt;more images will be available in the future&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.expo.io/build/eas-json/" rel="noopener noreferrer"&gt;Learn more about configuring your build with eas.json.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional configuration options for iOS builds
&lt;/h2&gt;

&lt;p&gt;Continuing with greater configuration, you can now add autoIncrement and schemeBuildConfiguration to your eas.json file for iOS projects.&lt;/p&gt;

&lt;p&gt;autoIncrement allows you to specify if and how EAS CLI increments your application build version; options include false (default), version, and buildNumber.&lt;/p&gt;

&lt;p&gt;schemeBuildConfiguration specifies the configuration to use; either Release or Debug. Otherwise, it defaults to the existing configuration in your project.&lt;/p&gt;

&lt;p&gt;To learn more about these options and other configuration options, please check out our documentation on &lt;a href="https://docs.expo.io/build/eas-json/" rel="noopener noreferrer"&gt;Configuration with eas.json&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  npm hooks
&lt;/h2&gt;

&lt;p&gt;We’ve added three &lt;a href="https://docs.expo.io/build-reference/how-tos/#eas-build-specific-npm-hooks" rel="noopener noreferrer"&gt;EAS Build-specific npm hooks&lt;/a&gt; that you can use to run custom scripts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;eas-build-pre-install - executes before EAS Build runs yarn install&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;eas-build-post-install - executes at a slightly different time depending on the platform: for Android, after yarn install has completed; for iOS, after both yarn install and pod install have completed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;eas-build-pre-upload-artifacts - this hook is triggered almost at the end of the build process, just before the build worker uploads your build artifacts to cloud storage&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you were using these npm hooks, your package.json might look something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecvpxdkjpruerlsucyrh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecvpxdkjpruerlsucyrh.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  EAS internal distribution — UI refresh
&lt;/h2&gt;

&lt;p&gt;EAS internal distribution lets you share builds of your app with trusted users without any delays and now it has a fresh new look!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbk3kemesb6w3z6w0exiu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbk3kemesb6w3z6w0exiu.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Distribute your ad-hoc builds to approved users who can then download and install with their browser. It’s quick and flexible! Learn more by checking out our &lt;a href="https://docs.expo.io/build/internal-distribution/" rel="noopener noreferrer"&gt;EAS internal distribution docs&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Canceling builds
&lt;/h2&gt;

&lt;p&gt;Last, but certainly not least, is canceling builds! 😅 We’ve now added the ability to cancel your builds through both EAS CLI with eas build:cancel [BUILD_ID] as well as on Build Details pages:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft2uig556uywk5wrzuoi2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft2uig556uywk5wrzuoi2.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  More on the way
&lt;/h2&gt;

&lt;p&gt;We’re not done yet! We have more improvements planned as we work towards a full release for EAS Build. Lots of exciting stuff — so do stay tuned!&lt;/p&gt;

&lt;p&gt;As a reminder, previews of EAS Build and Submit are available to developers subscribed to the &lt;a href="https://expo.io/pricing" rel="noopener noreferrer"&gt;EAS Priority Plan&lt;/a&gt;, and they won’t be available on a free tier until they graduate from preview. If you’re not yet a Priority subscriber, &lt;a href="https://expo.io/pricing" rel="noopener noreferrer"&gt;you can try it out for free for a month&lt;/a&gt;. If you want to try the preview services out but don’t have access to a credit card, please reach out to us &lt;a href="https://www.twitter.com/expo" rel="noopener noreferrer"&gt;on Twitter&lt;/a&gt; and we can help you out.&lt;/p&gt;

&lt;p&gt;Once you’re signed up, you can find everything that you need to know in the &lt;a href="https://docs.expo.io/eas" rel="noopener noreferrer"&gt;Feature Preview documentation&lt;/a&gt;. If you’d like to watch a quick video walkthrough of EAS Build and Submit, check out this YouTube video:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/7E6zsRpfT4U"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>expo</category>
      <category>react</category>
      <category>reactnative</category>
    </item>
    <item>
      <title>Expo Application Services (EAS): Build and Submit</title>
      <dc:creator>Expo Team</dc:creator>
      <pubDate>Tue, 15 Dec 2020 19:31:09 +0000</pubDate>
      <link>https://dev.to/expo/expo-application-services-eas-build-and-submit-2hfj</link>
      <guid>https://dev.to/expo/expo-application-services-eas-build-and-submit-2hfj</guid>
      <description>&lt;p&gt;Today we're excited to announce the public preview of two brand new services: EAS Build and Submit. These are the first services available from Expo Application Services (EAS), our new cloud services.&lt;/p&gt;

&lt;h1&gt;
  
  
  EAS Build
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Feature Preview
&lt;/h2&gt;

&lt;p&gt;EAS Build is a new service that takes everything good about the Expo build service (&lt;code&gt;expo build:[ios|android]&lt;/code&gt;) and makes it available to all React Native apps. You can set your app up to build for distribution in minutes or even less, thanks to &lt;a href="https://docs.expo.io/app-signing/managed-credentials/" rel="noopener noreferrer"&gt;automatically managed app signing credentials&lt;/a&gt; and defaults that just work for most Expo and React Native apps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fm06ala26ysg6ltp6chfo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fm06ala26ysg6ltp6chfo.png" alt="1_Yfou6wa_fi05Ps8anXeJBA"&gt;&lt;/a&gt; &lt;/p&gt;
In this screenshot, we go from a brand new project to release build running on EAS Build in 30 seconds.



&lt;p&gt;We've also added support for "&lt;a href="https://docs.expo.io/build/internal-distribution/" rel="noopener noreferrer"&gt;internal distribution&lt;/a&gt;" - a feature that makes it easy for you to share test builds with colleagues and friends without going through an app store, by using &lt;a href="https://expo.canny.io/feature-requests/p/iosbuild-with-adhoc-provision-profile" rel="noopener noreferrer"&gt;ad hoc provisioning&lt;/a&gt; on iOS and standard APK side-loading on Android. Generating and updating the ad hoc provisioning profile can be handled entirely for you by EAS Build.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F22m1eoil1iifs16s9teu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F22m1eoil1iifs16s9teu.png" alt="1_9sydz-IelPB7FDMBSgRpwg"&gt;&lt;/a&gt;&lt;/p&gt;
Easily share builds with your team using “internal distribution”.

 

&lt;p&gt;EAS Build &lt;em&gt;currently&lt;/em&gt; works best with bare React Native apps. If you use the Expo managed workflow and end up needing to move to the bare workflow, you can transition seamlessly to EAS Build - just run eas build instead of expo build after ejecting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Coming later in 2021: full support for Expo managed workflow
&lt;/h2&gt;

&lt;p&gt;With EAS Build, you can include libraries with native code that aren't part of the Expo standard library. For many of you, the Expo managed workflow is nearly a perfect fit - except for that one piece of functionality you absolutely have to have in your app, but that isn't part of the Expo standard library (whether that's &lt;a href="https://expo.canny.io/feature-requests/p/in-app-purchases" rel="noopener noreferrer"&gt;IAP&lt;/a&gt; support, &lt;a href="https://expo.canny.io/feature-requests/p/webrtc" rel="noopener noreferrer"&gt;WebRTC&lt;/a&gt;, &lt;a href="https://expo.canny.io/feature-requests/p/bluetooth-api" rel="noopener noreferrer"&gt;Bluetooth&lt;/a&gt;, or &lt;a href="https://dev.toesoteric"&gt;something more esoteric&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;EAS Build will let you use any compatible library from GitHub or npm or that you write yourself, even if it has native code in it.&lt;/p&gt;

&lt;p&gt;EAS Build also lets you build smaller, stripped-down binaries that include only the code your application needs, which means a &lt;a href="https://github.com/expo/fyi/blob/master/managed-app-size.md" rel="noopener noreferrer"&gt;smaller install size for your users&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There's already early support for Expo managed apps in EAS Build in the preview, but it's not quite ready for production yet. There's also a big missing piece: how do you get a new version of your Expo development client app that includes your bespoke native runtime? We're working on this, and we'll have answers for you in the coming months.&lt;/p&gt;

&lt;p&gt;These are some of the most common requests we hear from Expo developers today, so we're extremely excited to be close to getting a solution into your hands.&lt;/p&gt;

&lt;h1&gt;
  
  
  EAS Submit
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Feature Preview
&lt;/h2&gt;

&lt;p&gt;When you want to put your app into the App Store and Play Store, you can use a single command from your terminal or from CI to submit it.&lt;/p&gt;

&lt;p&gt;When you run &lt;code&gt;eas submit&lt;/code&gt;, your app binary will be uploaded to EAS and then submitted to the respective app store from there. This means fewer dependencies to install on your machine, and that you can submit your apps from your Windows, Linux, or macOS computer to any app store.&lt;/p&gt;

&lt;p&gt;We guide you through your first submission and try to make your nth submission as easy as possible by catching common mistakes and giving you guidance on how to resolve them. For example, if you're missing a privacy policy, &lt;a href="https://expo.fyi/missing-privacy-policy" rel="noopener noreferrer"&gt;we have an FYI for that&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Expo Application Services (EAS)
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Expo&lt;/em&gt;&lt;/strong&gt; is the open source project, and &lt;strong&gt;&lt;em&gt;Expo Application Services&lt;/em&gt;&lt;/strong&gt; offers hosted cloud services built for both Expo and React Native.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You won't need EAS to use Expo&lt;/strong&gt;, which will always be open source and free. You can choose a different CI/CD service or use your own hardware.&lt;/p&gt;

&lt;p&gt;Likewise, &lt;strong&gt;you'll be able to take advantage of EAS with any React Native project, whether or not it uses Expo's open source tools&lt;/strong&gt;. EAS is designed for developers who specifically want their builds, updates and/or other parts of their app operations, development and collaboration workflows streamlined by a cloud service designed purposefully for and deeply integrated with React Native and Expo.&lt;/p&gt;

&lt;h1&gt;
  
  
  How does EAS relate to the Expo services that I'm already using for builds, updates, and notifications?
&lt;/h1&gt;

&lt;p&gt;We don't want to disrupt anyone who is counting on Expo services to make software, and so we'll continue to operate the existing build, update, and notification services indefinitely. So, if you're happy with the way you're using those services now, you don't need to do anything differently and you can continue using them.&lt;/p&gt;

&lt;p&gt;To reduce confusion with EAS versions of the services, we're going to start calling the existing free services the "Classic" Expo services. So, "Classic" Build, Updates, and Notifications.&lt;/p&gt;

&lt;p&gt;That said, EAS is where most of our investment and effort on the services side will go in the future, so you should expect to see each EAS service keep getting better, more powerful, and easier to use as time goes on. Keep an eye out for the EAS Update preview, launching in early 2021.&lt;/p&gt;

&lt;h1&gt;
  
  
  How much will EAS services cost to use?
&lt;/h1&gt;

&lt;p&gt;We'll always maintain a free tier that can meet the needs of individual and hobbyist developers building small apps. We'll announce further pricing details closer to the date when EAS services graduate from preview in 2021.&lt;/p&gt;

&lt;h1&gt;
  
  
  If I'm already an Expo Developer Services subscriber, how does this affect me?
&lt;/h1&gt;

&lt;p&gt;If you're currently paying for Expo Developer Services, we've automatically updated your plan to EAS Priority Plan. EAS Priority will have the same price point and feature set as your old Developer Services plan, plus preview access to EAS Build and Submit. You don't need to do anything: you'll be moved over automatically.&lt;/p&gt;

&lt;h1&gt;
  
  
  How can I try EAS Build and Submit right now?
&lt;/h1&gt;

&lt;p&gt;The previews of EAS Build and Submit are available to developers subscribed to the &lt;a href="https://expo.io/pricing" rel="noopener noreferrer"&gt;EAS Priority Plan&lt;/a&gt;. If you're not yet a subscriber, you can &lt;a href="https://expo.io/pricing" rel="noopener noreferrer"&gt;try it out for free for a month&lt;/a&gt;. If you want to try the preview services out but don't have access to a credit card, please reach out to us &lt;a href="https://www.twitter.com/expo" rel="noopener noreferrer"&gt;on Twitter&lt;/a&gt; and we can help you out.&lt;/p&gt;

&lt;p&gt;Once you're signed up, you can find everything that you need to know in the &lt;a href="https://docs.expo.io/eas" rel="noopener noreferrer"&gt;Feature Preview documentation&lt;/a&gt;. If you'd like to watch a quick video walkthrough of EAS Build and Submit, check out this YouTube video:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/7E6zsRpfT4U"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactnative</category>
      <category>mobile</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Expo SDK 40 is now available</title>
      <dc:creator>Expo Team</dc:creator>
      <pubDate>Wed, 09 Dec 2020 21:01:16 +0000</pubDate>
      <link>https://dev.to/expo/expo-sdk-40-is-now-available-1in0</link>
      <guid>https://dev.to/expo/expo-sdk-40-is-now-available-1in0</guid>
      <description>&lt;p&gt;Today we’re announcing our fourth and final SDK release of 2020, Expo SDK 40. SDK 40 includes React Native 0.63, mostly the same version as SDK 39 but with some additional bugfixes cherry-picked on top 🍒. Thank you to everyone that &lt;a href="https://dev.to/expo/expo-sdk-40-beta-is-now-available-59gb"&gt;helped with beta testing&lt;/a&gt;!&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡️ Highlights
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Updated icons and types for @expo/vector-icons
&lt;/h3&gt;

&lt;p&gt;@expo/vector-icons has been updated to track the latest icon sets from &lt;a href="mailto:react-native-vector-icons@7.1.0"&gt;react-native-vector-icons@7.1.0&lt;/a&gt; (the previously tracked version was 6.6.0). Updated icon sets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/templarian/MaterialDesign" rel="noopener noreferrer"&gt;MaterialCommunityIcons&lt;/a&gt; to 5.3.45,&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/google/material-design-icons" rel="noopener noreferrer"&gt;MaterialIcons&lt;/a&gt; to 4.0.0, &lt;a href="https://github.com/FortAwesome/Font-Awesome" rel="noopener noreferrer"&gt;FontAwesome 5&lt;/a&gt; to 5.13.0, and&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/feathericons/feather" rel="noopener noreferrer"&gt;Feather&lt;/a&gt; to 4.28.0.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you use the updated icon sets, please check your app to ensure that every icon that you use is still included.&lt;/p&gt;

&lt;p&gt;The update also improves the TypeScript types to add support for autocompletion and validation of the name prop on all icon families.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F49g35jfoyihe3ex2l8ku.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F49g35jfoyihe3ex2l8ku.gif" alt="Visual Studio Code autocompletion and validation of the name prop on an icon component"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Reanimated 2 release candidate available
&lt;/h3&gt;

&lt;p&gt;Now with more &lt;em&gt;bugfixes and improvements&lt;/em&gt;, the react-native-reanimated v2 release candidate is available in SDK 40! It’s also easier to install: just &lt;code&gt;yarn add react-native-reanimated@2.0.0-rc.0&lt;/code&gt; and add the Babel plugin, and you're good to go. &lt;a href="https://docs.expo.io/versions/v40.0.0/sdk/reanimated/" rel="noopener noreferrer"&gt;Learn more in the documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Background location is now an opt-in permission on Android
&lt;/h3&gt;

&lt;p&gt;Most users do not use this permission and it raises red flags during Play Store submission, so we’ve decided to make this permission opt-in rather than opt-out (it’s easier to fall into &lt;a href="https://blog.codinghorror.com/falling-into-the-pit-of-success/" rel="noopener noreferrer"&gt;the pit of success&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;If you use background location features on Android, you’ll need to add &lt;code&gt;"ACCESS_BACKGROUND_LOCATION"&lt;/code&gt; to the list of permissions in &lt;code&gt;android.permissions&lt;/code&gt; in your app configuration file (app.json or app.config.js), if you haven't done so already. More context is available &lt;a href="https://github.com/expo/expo/pull/10989" rel="noopener noreferrer"&gt;in this pull request&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  @expo/dev-server is used in all apps SDK 40 and onward
&lt;/h3&gt;

&lt;p&gt;Expo CLI previously started a Metro dev server for transforming, bundling, and serving your app via @react-native-community/cli . We've now decoupled the configuration required to start a Metro server for React Native from React Native CLI and are able to start Metro directly using its public JavaScript API. This has a number of benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;🚀 Publishing is faster! &lt;a href="https://twitter.com/ryanastelly/status/1293613865331294213" rel="noopener noreferrer"&gt;An early adopter reported a 33% improvement&lt;/a&gt;, and we’ve seen similar results.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🐛 No more ENOSPC errors with expo publish on CI.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🔧 File extensions (&lt;code&gt;sourceExts&lt;/code&gt;) can now be customized in &lt;code&gt;metro.config.js&lt;/code&gt; rather than &lt;code&gt;packagerOpts.sourceExts&lt;/code&gt; in &lt;code&gt;app.config.js&lt;/code&gt; or app.json&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;😬 Running expo publish inside of a project with a running development server no longer kills the Metro process for the development server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/expo/expo-cli/issues/2322" rel="noopener noreferrer"&gt;A number of other issues were resolved&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you run into any issues in SDK 40 and suspect this change may be related, you can revert back to using the old process by setting the environment variable &lt;code&gt;EXPO_USE_DEV_SERVER=0&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Expo client &amp;amp; standalone apps are now built with Xcode 12
&lt;/h3&gt;

&lt;p&gt;We switched over expo build for SDK 37+ projects to be built with Xcode 12, and with SDK 40 the Expo client app is now built with Xcode 12 too. This resolves &lt;a href="https://github.com/expo/expo/issues/11126" rel="noopener noreferrer"&gt;a confusing inconsistency in between the client and standalone apps around the DateTimePicker UI&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Constants.manifest is now available in Bare workflow apps
&lt;/h3&gt;

&lt;p&gt;On our quest to continue eliminating any inconsistencies between the Managed and Bare workflow, &lt;code&gt;Constants.manifest&lt;/code&gt; is now available in Bare workflow apps initialized with expo init or through &lt;code&gt;expo eject&lt;/code&gt;. To add it to an an existing project, update to the latest version of expo-constants and &lt;a href="https://github.com/expo/expo/blob/1149d7611183243d178856de3e74f4e0f49e05ac/packages/expo-constants/README.md#optional-set-up-script-to-get-app-config" rel="noopener noreferrer"&gt;follow these instructions&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Direct control over entitlements in standalone apps
&lt;/h3&gt;

&lt;p&gt;You can now use the &lt;code&gt;ios.entitlements&lt;/code&gt; key to customize your app entitlements as needed. For example, you can &lt;a href="https://docs.expo.io/versions/v40.0.0/sdk/netinfo/#accessing-the-ssid" rel="noopener noreferrer"&gt;add the WiFi Info entitlement so that your standalone apps can access WiFi Network SSIDs&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Improvements to expo-notifications
&lt;/h3&gt;

&lt;p&gt;This release fixes two long-standing bugs in expo-notifications: push tokens will no longer remain the same when restoring a device from a backup, &lt;em&gt;and&lt;/em&gt; listening for notification responses is much more consistent with the new &lt;a href="https://docs.expo.io/versions/v40.0.0/sdk/notifications/#uselastnotificationresponse-undefined--notificationresponse--null" rel="noopener noreferrer"&gt;useLastNotificationResponse&lt;/a&gt; hook! There are &lt;a href="https://github.com/expo/expo/blob/master/packages/expo-notifications/CHANGELOG.md#-bug-fixes-2" rel="noopener noreferrer"&gt;plenty of other bug fixes&lt;/a&gt;, as well as brand new features (like scheduling weekly notifications), but as always make sure to look through &lt;a href="https://github.com/expo/expo/blob/master/packages/expo-notifications/CHANGELOG.md#-breaking-changes-1" rel="noopener noreferrer"&gt;the breaking changes&lt;/a&gt; just in case they affect you. Thank you for all the high-quality bug reports that allow us to continually improve libraries like expo-notifications!&lt;/p&gt;

&lt;h2&gt;
  
  
  🍏 Apple App Store privacy update
&lt;/h2&gt;

&lt;p&gt;As of December 8, 2020, new app submissions and updates are required to provide information about their privacy practices in App Store Connect. See &lt;a href="https://developer.apple.com/app-store/app-privacy-details/" rel="noopener noreferrer"&gt;App privacy details on the App Store&lt;/a&gt; for more information.&lt;/p&gt;

&lt;p&gt;For guidance, please refer to the &lt;a href="https://docs.expo.io/distribution/app-stores/#app-privacy-questions" rel="noopener noreferrer"&gt;Deploying to App Stores guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌐 Expo CLI
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Expo CLI is now 10% smaller and installs ~12 seconds faster! We upstreamed improvements to our dependency on create-react-app, reducing it by ~63%.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can now sync your Bare projects with your Expo config by re-running expo eject — we'll move to rename this command in upcoming versions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Improved support for Simulators, Emulators, and unauthorized Android devices:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fb9ln3rg0gyil06ekxmj5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fb9ln3rg0gyil06ekxmj5.png" alt="Terminal window showing an unauthorized device"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  🍩 Snack improvements
&lt;/h2&gt;

&lt;p&gt;As of December, Snack has a new home 🏡 at the &lt;a href="https://github.com/expo/snack" rel="noopener noreferrer"&gt;expo/snack monorepo&lt;/a&gt;. The monorepo will make it easier for developers to find documentation, contribute, and report bugs. This’ll be your place to go when you want to integrate Snack examples in your documentation. It currently contains the documentation and the snack-sdk package, and other packages such as the website and "snackager" (the Snack packager) will be moved there as well.&lt;/p&gt;

&lt;p&gt;A new major version of the snack-sdk (v3) has been released to developers! It's faster, easier to use, comes with shiny new documentation and lots of tests. We've already battle-tested it on the &lt;a href="http://snack.expo.io" rel="noopener noreferrer"&gt;snack.expo.io&lt;/a&gt; website and snack-sdk@3 is now available on the new expo/snack monorepo. It supports SDK 40 and has smart dependency management (similar to expo install) to help with selecting compatible package versions.&lt;/p&gt;

&lt;p&gt;🏡 &lt;a href="https://github.com/expo/snack" rel="noopener noreferrer"&gt;Visit the new expo/snack monorepo&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  A note about missing dependencies on Snack
&lt;/h3&gt;

&lt;p&gt;As of SDK 40, Snack requires that all used dependencies are added to package.json. This allows us to load a leaner runtime and provide faster and more accurate code completion. Any dependencies that are missing will be visible in the &lt;em&gt;Problems Panel&lt;/em&gt; and can be added or updated using the provided action. Some of these missing dependencies already showed a warning in SDK 39, but will now result in an error as of SDK 40.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏗 Deprecations, renamings, and removals
&lt;/h2&gt;

&lt;h3&gt;
  
  
  LegacyNotifications has been removed in favor of expo-notifications
&lt;/h3&gt;

&lt;p&gt;The legacy Notifications library (imported from the &lt;code&gt;expo&lt;/code&gt; package) has been deprecated since SDK 38, and will be removed in SDK 41. If you're still relying on this package, you should upgrade to the &lt;a href="https://docs.expo.io/versions/latest/sdk/notifications/" rel="noopener noreferrer"&gt;new expo-notifications library&lt;/a&gt;, which has plenty of improvements and shiny new features!&lt;/p&gt;

&lt;h3&gt;
  
  
  expo-random is now a peer dependency of expo-auth-session
&lt;/h3&gt;

&lt;p&gt;Starting with SDK 40, when you install expo-auth-session you will also need to install expo-random.&lt;/p&gt;

&lt;p&gt;If you use the latest version of expo-cli, &lt;code&gt;expo upgrade&lt;/code&gt; will handle installing expo-random for you if your project includes expo-auth-session in its dependencies.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;AppLoading&lt;/code&gt; has been extracted from the expo package
&lt;/h3&gt;

&lt;p&gt;If you use this component, you should run expo install expo-app-loading and import AppLoading from its own package: &lt;code&gt;import AppLoading from 'expo-app-loading';&lt;/code&gt;. This is part of an ongoing effort to make the expo package as lightweight as possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  @react-native-community/picker is now @react-native-picker/picker
&lt;/h3&gt;

&lt;p&gt;In September, the policy for the React Native Community organization was changed to focus on tooling and discussions to support the React Native ecosystem, and it is no longer is a host for libraries maintained by various React Native users (&lt;a href="https://github.com/react-native-community/discussions-and-proposals/issues/176#issuecomment-693569246" rel="noopener noreferrer"&gt;learn more here&lt;/a&gt;). As a result, libraries that were once part of the React Native Community are now rebranding under their own namespaces. This is the first of those renames that has impacted the Expo SDK, but we expect there to be more in the future.&lt;/p&gt;

&lt;p&gt;You can transition to the new package name by uninstalling @react-native-community/picker, then running &lt;code&gt;expo install @react-native-picker/picker&lt;/code&gt; and updating all of your imports accordingly in your app code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Clipboard and CheckBox continue life in the Expo SDK
&lt;/h3&gt;

&lt;p&gt;As React Native &lt;a href="https://github.com/react-native-community/discussions-and-proposals/issues/6" rel="noopener noreferrer"&gt;continues to remove APIs in order to focus on its core functionality&lt;/a&gt;, &lt;code&gt;Clipboard&lt;/code&gt; and &lt;code&gt;CheckBox&lt;/code&gt; have been deprecated and slated for removal in the upcoming React Native 0.64 release. You can switch over to expo-clipboard and expo-checkbox today in preparation for their removal. These APIs are almost identical, but there are some slight differences in order to have them fit in with the rest of the Expo SDK, so please refer to the &lt;a href="https://docs.expo.io/versions/v40.0.0/sdk/clipboard/" rel="noopener noreferrer"&gt;expo-clipboard&lt;/a&gt; and &lt;a href="https://docs.expo.io/versions/v40.0.0/sdk/checkbox/" rel="noopener noreferrer"&gt;expo-checkbox&lt;/a&gt; documentation when switching.&lt;/p&gt;

&lt;h3&gt;
  
  
  Global APIs set by the expo package are now deprecated
&lt;/h3&gt;

&lt;p&gt;Expo has historically exported several APIs on the global &lt;code&gt;__expo&lt;/code&gt; and &lt;code&gt;Expo&lt;/code&gt; objects in order to make it easier for libraries to interoperate between Expo's Managed environments and Bare React Native projects. This isn't necessary anymore, and we've deprecated these globals and slated them for removal in SDK 41. &lt;a href="https://expo.fyi/deprecated-globals" rel="noopener noreferrer"&gt;Learn more on expo.fyi&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  👋 Dropping iOS 10 support in the near future
&lt;/h2&gt;

&lt;p&gt;iOS 10 is the last version of iOS that still supports 32-bit simulator builds (x86), and to keep Expo npm packages smaller, we plan to publish only 64-bit pre-build binaries for simulators (x64 and arm64). This has been past due — the last time we dropped an iOS version was over two years ago, when we dropped support for iOS 9 in September 2018. Apple no longer reports usage statistics for iOS 10 directly, but you can get a rough idea from reading the &lt;a href="https://developer.apple.com/support/app-store/" rel="noopener noreferrer"&gt;App Store — iOS and iPadOS usage table&lt;/a&gt; — 6% of all devices use iOS 11 or lower at the time of writing.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧹 Dropped SDK 36; will drop SDK 37 next release
&lt;/h2&gt;

&lt;p&gt;We routinely drop SDK versions that have low usage in order to reduce the number of versions we need to support. This release sees the end of life for SDK 36. As usual, your standalone apps built with SDK 36 will continue to work; however, SDK 36 projects will no longer work within the latest version of the Expo client. If you want to re-run expo build, then you’ll need to upgrade from SDK 36, preferably to SDK 40 so you won’t need to update again for a while (and also because each Expo version is better than the last!).&lt;/p&gt;

&lt;p&gt;Our next release is planned for March 2021 and, at that time, we’ll be dropping support for SDK 37. If your project is running on SDK 37, consider upgrading to a newer version in the coming months.&lt;/p&gt;

&lt;h2&gt;
  
  
  ➡️ Upgrading your app
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Managed workflow
&lt;/h3&gt;

&lt;p&gt;Here’s how to upgrade your app to Expo SDK 40 from 39:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Run &lt;code&gt;expo upgrade&lt;/code&gt; in your project directory (requires the latest version of expo-cli, you can update with &lt;code&gt;npm i -g expo-cli&lt;/code&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you use &lt;code&gt;metro.config.js&lt;/code&gt; in your project, please ensure that you use &lt;code&gt;@expo/metro-config&lt;/code&gt; instead of the &lt;code&gt;metro-config&lt;/code&gt; package for getDefaultConfig. &lt;a href="https://docs.expo.io/guides/customizing-metro/" rel="noopener noreferrer"&gt;Learn more&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you are still using &lt;code&gt;react-navigation&lt;/code&gt; v4 along with &lt;code&gt;react-native-screens&lt;/code&gt;, please refer to &lt;a href="https://github.com/expo/expo/issues/11301" rel="noopener noreferrer"&gt;this comment&lt;/a&gt; to handle upgrade warnings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Refer to the “Deprecations, renamings, and removals” section above for breaking changes that are most likely to impact your app.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make sure to check the &lt;a href="https://github.com/expo/expo/blob/master/CHANGELOG.md" rel="noopener noreferrer"&gt;changelog&lt;/a&gt; for all other breaking changes!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Update the Expo app on your phones from the App Store / Google Play. expo-cli will automatically update your apps in simulators if you delete the existing apps, or you can run &lt;code&gt;expo client:install:ios&lt;/code&gt; and &lt;code&gt;expo client:install:android&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you built a standalone app previously, &lt;a href="https://docs.expo.io/versions/latest/workflow/publishing/#limitations" rel="noopener noreferrer"&gt;remember&lt;/a&gt; that you’ll need to create a new build in order to update the SDK version. Run &lt;code&gt;expo build:ios&lt;/code&gt; and/or &lt;code&gt;expo build:android&lt;/code&gt; when you are ready to do a new build for submission to stores.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Bare workflow
&lt;/h3&gt;

&lt;p&gt;The Bare workflow lets you operate independently of the Expo SDK cycle, updating RN versions and versions of individual Expo packages however and whenever you want. However, if you &lt;em&gt;do&lt;/em&gt; stick roughly to Expo SDK versions, these steps will help you to upgrade to Expo SDK 40 from 39:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Install the latest version of CocoaPods — &lt;strong&gt;1.10.0 or greater is required.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run &lt;code&gt;expo upgrade&lt;/code&gt; in your project directory (requires the latest version of expo-cli; you can update with &lt;code&gt;npm i -g expo-cli&lt;/code&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No additional upgrade steps are required to use react-native 0.63.4 from 0.63.3. (See the &lt;a href="https://react-native-community.github.io/upgrade-helper/?from=0.63.3&amp;amp;to=0.63.4" rel="noopener noreferrer"&gt;React Native upgrade helper&lt;/a&gt; for more detail.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rebuild your native projects with &lt;code&gt;yarn ios&lt;/code&gt; and &lt;code&gt;yarn android&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make sure to check the &lt;a href="https://github.com/expo/expo/blob/master/CHANGELOG.md" rel="noopener noreferrer"&gt;changelog&lt;/a&gt; for other breaking changes!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>react</category>
      <category>reactnative</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Expo SDK 40 beta is now available</title>
      <dc:creator>Expo Team</dc:creator>
      <pubDate>Tue, 01 Dec 2020 00:53:33 +0000</pubDate>
      <link>https://dev.to/expo/expo-sdk-40-beta-is-now-available-59gb</link>
      <guid>https://dev.to/expo/expo-sdk-40-beta-is-now-available-59gb</guid>
      <description>&lt;p&gt;&lt;em&gt;Learn about the changes, how to try it out, and how to give feedback.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.expo.io/coming-soon-beta-release-period-for-expo-sdk-965ab3bd177f?source=collection_home---6------0-----------------------" rel="noopener noreferrer"&gt;As promised&lt;/a&gt;, our first-ever beta SDK release is now available! The beta period will last approximately one week, and it is an opportunity for developers to ensure that the new release does not introduce any regressions for their particular system and app configurations.&lt;/p&gt;

&lt;p&gt;SDK 40 beta includes React Native 0.63, the same version as SDK 39. The full release notes won't be available until the final release, but you can browse the changes in the &lt;a href="https://github.com/expo/expo/blob/master/CHANGELOG.md" rel="noopener noreferrer"&gt;expo/expo CHANGELOG&lt;/a&gt; to learn more about the scope of the release and any breaking changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  A few changes to be aware of
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;AppLoading&lt;/code&gt; has been removed from the &lt;code&gt;expo&lt;/code&gt; package. If you use it, you should &lt;code&gt;expo install expo-app-loading&lt;/code&gt; and import &lt;code&gt;AppLoading&lt;/code&gt; from its own package (possibly before first running your app with SDK 40 if you'd like to head off an error screen). Import it using &lt;code&gt;import AppLoading from 'expo-app-loading'&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If you use React Navigation and &lt;code&gt;react-native-screens&lt;/code&gt;, you will want to update to React Navigation v5 or silence the related warning from &lt;code&gt;react-native-screens&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If you use background location features on Android, you will need to manually add &lt;code&gt;"ACCESS_BACKGROUND_LOCATION"&lt;/code&gt; to the list of permissions in  &lt;code&gt;android.permissions&lt;/code&gt; in your app configuration file (&lt;code&gt;app.json&lt;/code&gt; or &lt;code&gt;app.config.js&lt;/code&gt;) if you haven't done so already. Background location is now an opt-in permission on Android (&lt;a href="https://github.com/expo/expo/pull/10989" rel="noopener noreferrer"&gt;#10989&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;@expo/vector-icons&lt;/code&gt; has been updated to track the latest icon sets from &lt;code&gt;react-native-vector-icons@7.1.0&lt;/code&gt; (the previously tracked version was &lt;code&gt;6.6.0&lt;/code&gt;). Updated icon sets: &lt;a href="https://github.com/templarian/MaterialDesign" rel="noopener noreferrer"&gt;MaterialCommunityIcons&lt;/a&gt; to 5.3.45, &lt;a href="https://github.com/google/material-design-icons" rel="noopener noreferrer"&gt;MaterialIcons&lt;/a&gt; to 4.0.0, &lt;a href="https://github.com/FortAwesome/Font-Awesome" rel="noopener noreferrer"&gt;FontAwesome 5&lt;/a&gt; to 5.13.0, and &lt;a href="https://github.com/feathericons/feather" rel="noopener noreferrer"&gt;Feather&lt;/a&gt; to 4.28.0.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to try out the beta release
&lt;/h2&gt;

&lt;p&gt;You will be able to opt in to using the SDK 40 beta by setting the &lt;code&gt;EXPO_BETA&lt;/code&gt; environment variable to &lt;code&gt;1&lt;/code&gt; (or some &lt;a href="https://www.npmjs.com/package/getenv/v/0.7.0#envboolishname-fallback" rel="noopener noreferrer"&gt;truthy value&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;On macOS and Linux, you can set this per command with &lt;code&gt;EXPO_BETA=1 expo &amp;lt;command&amp;gt;&lt;/code&gt;. On Windows, you can do the same with cross-env: &lt;code&gt;npx cross-env EXPO_BETA=1 expo &amp;lt;command&amp;gt;&lt;/code&gt;. Below we have listed in the commands in their more concise form.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Install the latest version of expo-cli:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;npm i -g expo-cli&lt;/code&gt; (SDK 40 requires &lt;code&gt;expo-cli@4.0.6&lt;/code&gt; or greater)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Initialize a new project with SDK 40 beta:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;EXPO_BETA=1 expo init&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Upgrade an existing project:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;EXPO_BETA=1 expo upgrade&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Install the latest Expo client app for iOS:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;To your simulator: &lt;code&gt;EXPO_BETA=1 expo client:install:ios&lt;/code&gt; outside of an Expo project or inside of an SDK 40 project&lt;/li&gt;
&lt;li&gt;To your physical device: use this &lt;a href="https://testflight.apple.com/join/GZJxxfUU" rel="noopener noreferrer"&gt;TestFlight open beta link&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Install the latest Expo client app for Android:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;EXPO_BETA=1 expo client:install:android&lt;/code&gt; outside of an Expo project or inside of an SDK 40 project.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Other commands will work as expected without the &lt;code&gt;EXPO_BETA&lt;/code&gt; environment variable, including &lt;code&gt;build:{android,ios}&lt;/code&gt;.&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Use the beta release on Snack by adding a query parameter:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://snack.expo.io/?sdkVersion=40.0.0" rel="noopener noreferrer"&gt;http://snack.expo.io/?sdkVersion=40.0.0&lt;/a&gt;. Note that the in-browser simulators do not yet support SDK 40.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Read the documentation&lt;/strong&gt; by selecting it from the version selector in the API reference section (or &lt;a href="https://docs.expo.io/versions/v40.0.0" rel="noopener noreferrer"&gt;clicking here&lt;/a&gt;).&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0jb3saiej02ihaitxqa1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0jb3saiej02ihaitxqa1.png" alt="Screenshot of Expo API documentation version picker"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to report issues
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create an issue on &lt;a href="https://github.com/expo/expo/issues" rel="noopener noreferrer"&gt;https://github.com/expo/expo/issues&lt;/a&gt; and be sure to fill out the template.&lt;/li&gt;
&lt;li&gt;Figuring out the underlying causes of issues is super helpful.&lt;/li&gt;
&lt;li&gt;Let us know that you are using the SDK 40 beta so we can prioritize the issue.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thank you for helping us with testing the release, we look forward to shipping it soon! 🚀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Coming soon: Beta release period for Expo SDK</title>
      <dc:creator>Expo Team</dc:creator>
      <pubDate>Mon, 19 Oct 2020 18:59:16 +0000</pubDate>
      <link>https://dev.to/expo/coming-soon-beta-release-period-for-expo-sdk-4pdn</link>
      <guid>https://dev.to/expo/coming-soon-beta-release-period-for-expo-sdk-4pdn</guid>
      <description>&lt;p&gt;Beginning with SDK 40, we will be trying out an SDK beta release period for approximately one week before the final release. The beta release is an opportunity for developers to ensure that the new release does not introduce any regressions for their particular system and app configurations.&lt;/p&gt;

&lt;p&gt;This is no substitute for rigorous internal testing, but we can only cover so much of the surface area on our own. Expo tools run on an endless variety of configurations: Node and Node package managers, macOS/Windows/Linux, Android/iOS/web across different versions and vendors in emulators and on devices, standalone apps and Expo development clients, managed and bare workflows, third-party libraries and services, and so on.&lt;/p&gt;

&lt;p&gt;The process of releasing an SDK update after the initial release is time consuming, laborious, and potentially disruptive to developers already using the SDK for their projects. As a result, if a regression makes it into a final release we may in some cases have to delay shipping a non-critical fix until the following SDK release. If you encounter a regression during the beta release period, you can be confident that the Expo team will be available and focused on investigating, resolving, and shipping fixes during this time.&lt;/p&gt;

&lt;h2&gt;
  
  
  How will I be able to opt-in to beta releases?
&lt;/h2&gt;

&lt;p&gt;At the time of publishing this article, there is no beta release active — we will announce beta releases on our blog (&lt;a href="https://blog.expo.io"&gt;Medium&lt;/a&gt; and &lt;a href="https://dev.to/expo"&gt;dev.to&lt;/a&gt;) and Twitter (&lt;a href="https://twitter.com/expo"&gt;@expo&lt;/a&gt;). Once a beta release is live, participating in the beta will involve the following changes from your typical workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  iOS and Android beta development clients
&lt;/h3&gt;

&lt;p&gt;You will be able to access an iOS client build for your device from a TestFlight Public Beta link and you will be able to install the updated client in your simulator by running expo client:install:ios --latest with the EXPO_BETA=1 environment variable set.&lt;/p&gt;

&lt;p&gt;The Expo client app for Android will be installable for both devices and emulators with expo client:install:android --latest and EXPO_BETA=1.&lt;/p&gt;

&lt;h3&gt;
  
  
  Upgrading your project to the beta SDK
&lt;/h3&gt;

&lt;p&gt;Similarly, to upgrade your project you will run expo upgrade with the EXPO_BETA=1 environment variable set. Other expo-cli commands will work as expected without the environment variable or any other flags.&lt;/p&gt;

&lt;h3&gt;
  
  
  Beta API documentation
&lt;/h3&gt;

&lt;p&gt;You will be able to access the API reference for the beta version from the version selector in the docs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mU_9zCbC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/lfuo5wwuadr728lsgvu9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mU_9zCbC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/lfuo5wwuadr728lsgvu9.png" alt="Where you will be able to find the beta documentation when it is available."&gt;&lt;/a&gt;&lt;em&gt;Where you will be able to find the beta documentation when it is available.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We hope that you will help us to kick the tires on our new releases during the beta release period!&lt;/p&gt;

&lt;p&gt;You can read a more detailed description of our full release process in our open source &lt;a href="https://github.com/expo/expo/blob/master/guides/releasing/Release%20Workflow.md"&gt;Release Workflow document&lt;/a&gt; if you would like to learn more about what goes in to preparing and shipping each SDK release after all of the code has been written.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
