Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/AppStores.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extends: substitution
message: "Consider using '%s' instead of '%s'"
link: 'https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md#referencing-app-stores'
level: warning
level: error
ignorecase: false
scope: ~text.frontmatter
swap:
Expand Down
2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/Bits.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extends: existence
message: "Incorrect bit unit. Use 'kbit', 'Mbit', 'Gbit', 'Tbit' for bits. The 'b' in 'bit' or 'bits' should be lowercase."
link: 'https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md#referencing-bytes-and-bits'
level: warning
level: error
scope: raw
# Incorrect pattern(s) to flag
raw:
Expand Down
2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/BritishSpellings.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
extends: substitution
message: "Use American English spelling '%s' instead of British English '%s'."
level: warning
level: error
ignorecase: true
action:
name: replace
Expand Down
2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/Bytes.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extends: existence
message: "Incorrect byte. Use 'kB', 'MB', 'GB', 'TB' for bytes."
link: 'https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md#referencing-bytes-and-bits'
level: warning
level: error
scope: raw
# Incorrect pattern(s) to flag
raw:
Expand Down
2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/CommandLine.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
extends: substitution
message: "Use '%s' instead of '%s' when the phrase modifies a noun."
level: warning
level: error
nonword: true
scope: ~text.frontmatter
action:
Expand Down
9 changes: 9 additions & 0 deletions docs/.vale/writing-styles/expo-docs/DoubleDash.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
extends: existence
message: 'Use an em dash instead of a double dash.'
link: 'https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md#use-mdash'
level: error
scope: text
nonword: true
# Look for prose like "word -- word" without flagging JSX props, code blocks, or Markdown separators.
tokens:
- "[A-Za-z0-9][A-Za-z0-9'’_-]*\\s--\\s[A-Za-z0-9][A-Za-z0-9'’_-]*"
2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/Ellipses.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extends: existence
message: "In general, don't use an ellipsis."
nonword: true
level: warning
level: error
action:
name: remove
tokens:
Expand Down
11 changes: 0 additions & 11 deletions docs/.vale/writing-styles/expo-docs/EmDash.yml

This file was deleted.

2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/FirstPerson.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ extends: existence
message: "Avoid first-person pronouns such as '%s'."
link: 'https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md#write-in-the-second-person'
ignorecase: false
level: warning
level: error
nonword: true
scope: sentence
tokens:
Expand Down
2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/Gender.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ extends: existence
message: "Don't use '%s'. Use gender-neutral pronoun instead."
link: 'https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md#use-gender-neutral-terms'
ignorecase: true
level: warning
level: error
tokens:
- he/she
- s/he
Expand Down
2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/HeadingCase.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extends: capitalization
message: "'%s' should be in sentence case"
link: 'https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md#headings'
level: warning
level: error
scope:
- heading.h2
- heading.h3
Expand Down
2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/HeadingPunctuation.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extends: existence
message: "Don't put a period at the end of a heading."
nonword: true
level: warning
level: error
scope: heading
action:
name: edit
Expand Down
2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/Latin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ extends: substitution
message: "Use '%s' instead of '%s'"
link: 'https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md#abbreviations'
ignorecase: true
level: warning
level: error
nonword: true
action:
name: replace
Expand Down
2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/Links.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ link: 'https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writ
ignorecase: true
scope: raw
nonword: true
level: warning
level: error

swap:
'\[here\]\(.*?\)': 'here'
Expand Down
2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/Prerequisites.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extends: existence
message: "Use the <Prerequisites> component instead of a markdown 'Prerequisites' heading with a bulleted checklist."
link: 'https://github.com/expo/expo/blob/main/docs/README.md#use-prerequisites-for-setup-checklists'
level: warning
level: error
scope: raw
raw:
- '\n#{2,4}\s+Prerequisites\s*\n+(?:[^\n]*\n){0,5}-\s'
2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/Stores.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extends: substitution
message: "Use the correct capitalization by using '%s' instead of '%s'"
link: 'https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md#referencing-app-stores'
level: warning
level: error
ignorecase: false
swap:
apple app store: Apple App Store
Expand Down
2 changes: 1 addition & 1 deletion docs/.vale/writing-styles/expo-docs/Wordiness.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extends: substitution
message: "Consider using '%s' instead of '%s'."
ignorecase: true
level: warning
level: error
action:
name: replace
swap:
Expand Down
2 changes: 1 addition & 1 deletion docs/pages/app-signing/app-credentials.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ When you use the `eas credentials` command to delete your credentials, this only

### Re-signing new credentials

You can use `eas build:resign` to codesign an existing **.ipa** for iOS to a new ad hoc provisioning profile. This helps reduce time when distributing internally &mdash; for example, if you want to add a new test device to an existing build, you can use this command to update the provisioning profile to include the device without rebuilding the entire app from scratch.
You can use `eas build:resign` to codesign an existing **.ipa** for iOS to a new ad hoc provisioning profile. This helps reduce time when distributing internally for example, if you want to add a new test device to an existing build, you can use this command to update the provisioning profile to include the device without rebuilding the entire app from scratch.

Running the command will ask you to select a build that you want to re-sign. For example, running the command in an example project shows an available build:

Expand Down
6 changes: 3 additions & 3 deletions docs/pages/app-signing/security.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ None. You can access it through the Firebase console.

## Android build credentials

A keystore and keystore password are required to sign a build for release to the Play Store. These are encrypted with KMS and additionally at rest. After an app is first submitted to the Google Play Store, the same keystore must be used to sign the app again to update it. It proves that the APK came from the developer who owns the keystore. The keystore alone doesn't let you submit to Google Play &mdash; your Google account needs access to the Google Play Console as well.
A keystore and keystore password are required to sign a build for release to the Play Store. These are encrypted with KMS and additionally at rest. After an app is first submitted to the Google Play Store, the same keystore must be used to sign the app again to update it. It proves that the APK came from the developer who owns the keystore. The keystore alone doesn't let you submit to Google Play your Google account needs access to the Google Play Console as well.

### Consequences if compromised

Expand Down Expand Up @@ -79,15 +79,15 @@ This refers to the production distribution certificate and password (which are a

### Consequences if compromised

There isn't much that a malicious actor could do with this alone &mdash; they would be unable to submit any apps without having your Apple Developer account credentials. You can revoke the distribution certificate and provisioning profile from the Apple Developer website.
There isn't much that a malicious actor could do with this alone they would be unable to submit any apps without having your Apple Developer account credentials. You can revoke the distribution certificate and provisioning profile from the Apple Developer website.

### Consequences if lost

None. They are available through the Apple Developer console.

## Apple Developer account credentials

When creating a standalone app build, or uploading to the App Store you will be prompted for your Apple Developer account credentials. We do not store these on our servers &mdash; EAS CLI only uses them locally. Your computer alone provisions distribution certificates and auth keys that are sent to Expo servers; your developer credentials are not sent to Expo servers. An additional layer of security is enforced by Apple, as they require two-factor authentication for all Apple Developer accounts.
When creating a standalone app build, or uploading to the App Store you will be prompted for your Apple Developer account credentials. We do not store these on our servers EAS CLI only uses them locally. Your computer alone provisions distribution certificates and auth keys that are sent to Expo servers; your developer credentials are not sent to Expo servers. An additional layer of security is enforced by Apple, as they require two-factor authentication for all Apple Developer accounts.

When creating ad-hoc builds, we temporarily store an Apple Developer session token used to create an ad-hoc provisioning profile with your development device's UDID. Once we are done using this session token we destroy it.

Expand Down
2 changes: 1 addition & 1 deletion docs/pages/archive/classic-updates/updating-your-app.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ Since headers sent in requests by `expo-updates` do not affect statically hosted

In addition to loading updates from remote servers, apps with `expo-updates` installed also include the necessary capability to load updates embedded in the app binary. This is critical to ensure that your app can launch offline for all users immediately upon installation, without needing an internet connection.

When you make a release build of your app, the build process will bundle your JavaScript source code into a minified bundle and embed this in the binary, along with any other assets your app imports (with `require` or `import` or used in **app.json**). `expo-updates` includes an extra script on each platform to embed some additional metadata about the embedded assets -- namely, a minimal manifest JSON object for the update.
When you make a release build of your app, the build process will bundle your JavaScript source code into a minified bundle and embed this in the binary, along with any other assets your app imports (with `require` or `import` or used in **app.json**). `expo-updates` includes an extra script on each platform to embed some additional metadata about the embedded assets namely, a minimal manifest JSON object for the update.

## Including assets in updates

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ You can read more about notification channels on the [Android developer website]

## Creating and using channels

Creating a channel is easy -- before you create a local notification (or receive a push notification), simply call the following method:
Creating a channel is easy before you create a local notification (or receive a push notification), simply call the following method:

```js
if (Platform.OS === 'android') {
Expand All @@ -34,7 +34,7 @@ if (Platform.OS === 'android') {
}
```

Creating a channel that already exists is essentially a no-op, so it's safe to call this each time your app starts up. For example, the `componentDidMount` of your app's root component might be a good place for this. However, note that you cannot change any settings of a notification channel after it's been created -- only the user can do this. So be sure to plan your channels carefully.
Creating a channel that already exists is essentially a no-op, so it's safe to call this each time your app starts up. For example, the `componentDidMount` of your app's root component might be a good place for this. However, note that you cannot change any settings of a notification channel after it's been created only the user can do this. So be sure to plan your channels carefully.

Then, when you want to send a notification for a chat message, either add the `channelId: 'chat-messages'` field to your [push notification message](/push-notifications/sending-notifications/#message-request-format), or create a local notification like this:

Expand Down
4 changes: 2 additions & 2 deletions docs/pages/bare/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ There's so much more to explore, and the links below will help you to explore th

Below are four suggested phases of incremental adoption. These phases generally progress from quick changes to improve developer experience, to more significant workflow and codebase optimizations.

Only the first phase &mdash; prerequisites &mdash; is required by other phases. After following its instructions, you can skip to the tools and services that are most relevant to your goals in adopting Expo.
Only the first phase prerequisites is required by other phases. After following its instructions, you can skip to the tools and services that are most relevant to your goals in adopting Expo.

{/* Note: This "Prerequisites" heading intentionally does not use the <Prerequisites> component. It is a phase label in the "Incremental adoption steps" sequence (alongside "Quick wins", "New workflows", "New mindsets") and its body is navigational BoxLinks, not a checklist of requirements to complete before reading the page. */}

Expand Down Expand Up @@ -175,7 +175,7 @@ The `expo` package has a small footprint since it only includes a minimal set of

<Collapsible summary="Why did React Native recommend using Expo?">

Most React Native developers solve common problems when building an app, such as implementing navigation, accessing Native APIs, upgrading to new versions, and more. This requires using a specific set of tools and libraries to build and maintain your app &mdash; which means you are creating your own framework.
Most React Native developers solve common problems when building an app, such as implementing navigation, accessing Native APIs, upgrading to new versions, and more. This requires using a specific set of tools and libraries to build and maintain your app which means you are creating your own framework.

Expo solves these problems by providing a set of primitives and helping you (the developer) to focus on building your app. It also offers tools to iterate faster in development. For more information, see [Why React Native recommends using a framework](https://reactnative.dev/blog/2024/06/25/use-a-framework-to-build-react-native-apps).

Expand Down
2 changes: 1 addition & 1 deletion docs/pages/brownfield/integrated-approach.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ This makes sure the React Native Gradle and the Expo plugins are available and a
</Step>

<Step label="3">
Add the following lines inside your app's **build.gradle** file (usually **app/build.gradle** &mdash; you can use the [bare minimum template file as reference](https://github.com/expo/expo/blob/main/templates/expo-template-bare-minimum/android/app/build.gradle)):
Add the following lines inside your app's **build.gradle** file (usually **app/build.gradle** you can use the [bare minimum template file as reference](https://github.com/expo/expo/blob/main/templates/expo-template-bare-minimum/android/app/build.gradle)):

<DiffBlock source="/static/diffs/brownfield/android/app-build-gradle.diff" />

Expand Down
2 changes: 1 addition & 1 deletion docs/pages/build-reference/build-configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,6 @@ There are no additional steps for bare projects.

## Next steps

That's all there is to configuring a project to be compatible with EAS Build. There is one more step, if you set `cli.requireCommit` to `true` in your **eas.json** &mdash; you'll be prompted to commit all the changes we made for you. You can choose to review them before committing, and you can either specify the git commit message or use a default message.
That's all there is to configuring a project to be compatible with EAS Build. There is one more step, if you set `cli.requireCommit` to `true` in your **eas.json** you'll be prompted to commit all the changes we made for you. You can choose to review them before committing, and you can either specify the git commit message or use a default message.

</Step>
2 changes: 1 addition & 1 deletion docs/pages/build-reference/caching.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Cache dependencies
description: Learn how to speed up your builds by caching dependencies.
---

Before a build job can begin compiling your project, all project dependencies need to be available on disk. The longer it takes to acquire the dependencies, the more you need to wait for your build to complete &mdash; so caching dependencies is an important part of speeding up your builds.
Before a build job can begin compiling your project, all project dependencies need to be available on disk. The longer it takes to acquire the dependencies, the more you need to wait for your build to complete so caching dependencies is an important part of speeding up your builds.

> We're actively working on improving caching and other aspects of the build process to make builds reliably fast.

Expand Down
2 changes: 1 addition & 1 deletion docs/pages/build-reference/local-builds.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -75,4 +75,4 @@ To create a production build locally, you need Android Studio and Xcode installe
href="/guides/local-app-production/"
/>

With any of the above approaches, you'll be following procedures which are different from creating a build on the cloud with EAS Build &mdash; that is what the `eas build --local` flag is for.
With any of the above approaches, you'll be following procedures which are different from creating a build on the cloud with EAS Build that is what the `eas build --local` flag is for.
8 changes: 4 additions & 4 deletions docs/pages/build-reference/troubleshooting.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -167,10 +167,10 @@ You can verify that your project builds on your local machine with the `npx expo
> If use [CNG](/workflow/continuous-native-generation/), these commands will run `npx expo prebuild` to generate native projects to compile them.You likely want to [clean up the changes](https://expo.fyi/prebuild-cleanup) once you are done troubleshooting, unless you want to start managing these projects directly instead of generating them on demand.
>
> <br />
> You can alternatively run a local build with `eas build --local` &mdash; this command will run a
> series of steps that is as close as it can be to what runs remotely on the hosted EAS Build
> service. It will copy your project to a temporary directory and make any necessary changes there.
> [Learn how to set this up and use it for
> You can alternatively run a local build with `eas build --local` this command will run a series
> of steps that is as close as it can be to what runs remotely on the hosted EAS Build service. It
> will copy your project to a temporary directory and make any necessary changes there. [Learn how
> to set this up and use it for
> debugging](/build-reference/local-builds/#use-local-builds-for-debugging).

If your native toolchains are installed correctly and you are unable to build and run your project in release mode on your local machine, it will not build on EAS Build. Fix the issues locally, then try again on EAS Build. The other advice in this doc may be useful to help you resolve the issue locally, but often this requires some knowledge of native tooling or judicious application of Google, Stack Overflow, and GitHub Issues.
Expand Down
2 changes: 1 addition & 1 deletion docs/pages/debugging/tools.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ The **Profiler** tab allows you to record and analyze the performance of your ap

> **warning** VS Code debugger integration is in [alpha](/more/release-statuses/#alpha). For the most stable debugging experience, [use the React Native DevTools](#debugging-with-react-native-devtools).

VS Code is a popular code editor, which has a built-in debugger. This debugger uses the same system as the React Native DevTools &mdash; the inspector protocol.
VS Code is a popular code editor, which has a built-in debugger. This debugger uses the same system as the React Native DevTools the inspector protocol.

You can use this debugger with the [Expo Tools](https://github.com/expo/vscode-expo#readme) VS Code extension. This debugger allows you to set breakpoints, inspect variables, and execute code through the debug console.

Expand Down
Loading
Loading