Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Master #2

Open
wants to merge 163 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
163 commits
Select commit Hold shift + click to select a range
765b47d
[ios] Fix lint issues in Swift files (#15640)
tsapeta Dec 30, 2021
7aee14f
[core][ios] Fix modules registration on iOS in bare-expo (#15752)
tsapeta Dec 31, 2021
c87080d
Publish create-expo-module, expo-module-template
tsapeta Dec 31, 2021
e1f62f8
[file-system] Update README.md (#15758)
cesargdm Jan 1, 2022
1493f85
[docs] Update installing-expo-modules.md (#15757)
cesargdm Jan 1, 2022
ee03927
[docs] Fix installation instructions typo in `docs/pages/build/setup.…
fredrivett Jan 2, 2022
903fd27
[sweet][kotlin] Add missing changelog entries (#15750)
lukmccall Jan 3, 2022
ea5e01b
[expo-location] Allow location to work with only coarse location perm…
Noitidart Jan 3, 2022
309f35e
[create-expo-module] Ask for the package manager and install dependen…
tsapeta Jan 3, 2022
fe27867
[location] Make removing sticky notification on app killing optional …
islamouzou Jan 3, 2022
8c08c4b
[expo-location] Rebuild js
lukmccall Jan 3, 2022
fff904b
Update getting-started.md (#15776)
Jan 3, 2022
a6f1df2
[docs] document expo-updates error recovery behavior (#15703)
esamelson Jan 3, 2022
001f88e
[dev-launcher] fix tests (#15777)
ajsmth Jan 3, 2022
42ca8b6
[docs] use --auto for EAS Update CI action (#15778)
jonsamp Jan 3, 2022
8619d89
[fix] Invoke super methods in the AppDelegate.m to support ExpoAppDel…
EvanBacon Jan 4, 2022
81f3e7e
[core] Fix ReactInstanceManager.onHostPause exception from background…
Kudo Jan 4, 2022
fa4bd95
[docs] fix misleading docs on app icons (#15769)
dsokal Jan 4, 2022
d3014a2
[document-picker][ios] pass iCloudContainerEnvironment to plugin (#15…
wkozyra95 Jan 4, 2022
5c2a14a
[autolinking] Fix umbrella directory not found from use_frameworks! (…
Kudo Jan 4, 2022
6bb4396
Remove some unimodules leftovers from the repo
tsapeta Jan 4, 2022
2db5382
Update ajv dependency in yarn.lock
tsapeta Jan 4, 2022
00ec8ca
Use declaration maps (#15782)
EvanBacon Jan 4, 2022
07f8946
[expotools] restore expo-dev-client packages into expotools commands,…
esamelson Jan 4, 2022
980c55c
[dev-launcher] ui improvements / updates to modals (#15599)
ajsmth Jan 4, 2022
665c2ba
rebuild dev client files
esamelson Jan 4, 2022
6f7d623
[expo-dev-launcher] fix modal test (#15789)
esamelson Jan 4, 2022
1178271
[docs] Clarify expo-branch status
brentvatne Jan 4, 2022
dd58122
[docs] Fix broken link on app credentials page (#15746)
tylerlwsmith Jan 4, 2022
59c964d
[docs][camera] update camera example w/ new permissions api (#15790)
ajsmth Jan 4, 2022
74e5091
Sync changelogs from sdk-44 branch [skip-ci]
Kudo Jan 5, 2022
f84175e
[workspace] remove unimodules directory (#15792)
Simek Jan 5, 2022
22d1e00
[test-suite] lint files, add lint check to CI (#15772)
Simek Jan 5, 2022
2782283
[module-template] Prevent publish-package rewrite the ejs versions (#…
Kudo Jan 5, 2022
44af104
Remove `react/react-in-jsx-scope` for React 17 (#15702)
nandorojo Jan 5, 2022
33f407a
[docs] s/Github/GitHub (#15804)
charpeni Jan 6, 2022
1d06dde
[docs] s/Gitlab/GitLab (#15805)
charpeni Jan 6, 2022
3852a5b
[docs] Guide for creating expo modules (#15261)
tsapeta Jan 6, 2022
91d35aa
[guides] developing Expo Go update and corrections (#15734)
Simek Jan 6, 2022
8b1130d
[camera] remove type codec string from record async return (#15791)
ajsmth Jan 6, 2022
0cc8875
[ios][core] Allow accessing RCTBridge from the modules (#15816)
tsapeta Jan 6, 2022
35a8a99
[docs] add section on project transfer and account rename
tcdavis Jan 6, 2022
6c1b7f6
Fix typo
tcdavis Jan 6, 2022
854d66e
[expotools] read from expo-module.config.json in Packages (#15794)
esamelson Jan 6, 2022
9818fce
[expotools][gh] run dev client iOS unit tests in CI (#15795)
esamelson Jan 6, 2022
3a421c9
[lint] Add support for ESLint 8.x, bump to 10.0.0 (#15810)
ide Jan 6, 2022
12f4884
Publish create-expo-module, expo-module-template
tsapeta Jan 6, 2022
d38547b
switch cloudfront domain to classic-assets.eascdn.net (#15781)
quinlanj Jan 6, 2022
a6ff117
[expo-dev-launcher][expo-dev-menu] fix failing iOS unit tests (#15796)
esamelson Jan 6, 2022
f29fbd8
Guess the device language on iOS rather than using the app-specific l…
EvanBacon Jan 6, 2022
97177b7
Added auth guide for Twitter v2 (#15751)
EvanBacon Jan 6, 2022
5acc223
[expo] Fix remote debugging logs (#15828)
EvanBacon Jan 7, 2022
d129b7a
[ios][image-manipulator] Fix creating the directory for image manipul…
tsapeta Jan 7, 2022
b169f2d
[ios] Introduce the concept of chainable exceptions (#15813)
tsapeta Jan 7, 2022
6c3ce96
[ci] Update Slack channels in workflows [skip ci]
tsapeta Jan 9, 2022
0997695
[ios][core] Let the sweet functions throw errors (#15849)
tsapeta Jan 9, 2022
4a31e4e
[docs] Broken link to Using Github Actions (#15850)
dqii Jan 9, 2022
cd195fb
[docs] Improve Testing with Jest (#15844)
charpeni Jan 9, 2022
811f79e
Sync latest expo-modules-autolinking from sdk-44
Kudo Jan 10, 2022
707bc64
[ios] Add missing initializer to LinearGradient (#15843)
Jan 10, 2022
69e41ef
[android][expo-updates] Turn off erroneously enabled exportSchema (#1…
wschurman Jan 10, 2022
a7cad70
[gh] add timeouts to unit tests jobs (#15825)
esamelson Jan 10, 2022
98ffadf
[docs] update dev client installation instructions for SDK 44 templat…
esamelson Jan 10, 2022
9a79cc7
[docs] Update CircleCI config in Building on CI (#15845)
charpeni Jan 10, 2022
6f2f5db
[bare-expo] Use official react-native (#15817)
Kudo Jan 11, 2022
d3f5743
[autolinking] Rename "modulesClassNames" to "modules" (#15852)
tsapeta Jan 11, 2022
d46e3a1
[core] Add requireNativeModule function (#15848)
tsapeta Jan 11, 2022
6ad80de
[ios][core] Make JSI host object for accessing the new modules (#15847)
tsapeta Jan 11, 2022
700a7c9
Update Podfile.lock in bare-expo
tsapeta Jan 11, 2022
2d25def
[dev-launcher] Fix `[EXDevLauncherControllerTest]: expected to not be…
lukmccall Jan 11, 2022
7331a90
[ios][core] Release JS runtime objects when the runtime deallocates (…
tsapeta Jan 11, 2022
c798134
[eyw] Add .cjs to allowed file extensions (#15836)
ide Jan 11, 2022
7be3982
[docs] word choice: either -> any
bdgrichards Jan 11, 2022
6126967
Reorder AppDelegate methods to prevent breaking behavior. (#15881)
EvanBacon Jan 11, 2022
72b289a
[docs] Updates variables.md with secrets hierarchy info (#15519)
matthops Jan 11, 2022
dae2841
[ios] Make expo-random be an expo module (#15875)
tsapeta Jan 12, 2022
8d75bae
[expo-updates][android] Remove unused code and clean up some manifest…
wschurman Jan 12, 2022
f529f6c
[Docs] update email address for project transfer access requests
tcdavis Jan 12, 2022
59e0fb9
[expo-updates][ios] Implement code signing (#15682)
wschurman Jan 13, 2022
35b12ad
[expo-updates] fix IllegalThreadStateException stemming from Updates …
esamelson Jan 13, 2022
6a09423
[expo-updates] ensure we return early when updates are disabled on An…
esamelson Jan 13, 2022
012a0d1
[docs] EAS Build: update Android build process steps (#15885)
dsokal Jan 13, 2022
996ec68
[dev-launcher] Fix detecting import when using double quotes (#15898)
janicduplessis Jan 13, 2022
067fd78
[tools] Bump follow-redirects from 1.7.0 to 1.14.7 (#15902)
dependabot[bot] Jan 13, 2022
8381582
[expo-asset] Adds getManifest2 to web (#15891)
jonsamp Jan 13, 2022
8532536
[dev-menu] refactor bottom sheet (#15897)
ajsmth Jan 13, 2022
6f1a60d
Bump follow-redirects from 1.14.5 to 1.14.7 in /docs (#15901)
dependabot[bot] Jan 13, 2022
4872272
Bump follow-redirects from 1.14.6 to 1.14.7 (#15903)
dependabot[bot] Jan 13, 2022
95038fe
[sweet][kotlin] Add error chaining (#15798)
lukmccall Jan 14, 2022
fd79655
[sweet][kotlin] Add naive `Record` to `ReadableMap` conversion (#15831)
lukmccall Jan 14, 2022
f174278
[android] Upgrade remaining kotlin versions (#15910)
wschurman Jan 14, 2022
b024335
[expo-updates] Add tests for invalid code signing certs (#15908)
wschurman Jan 14, 2022
b253e3a
[expo-updates][ios] Escape code signing header strings (#15907)
wschurman Jan 14, 2022
5bb026e
[expo] Add a CLI build pipeline and initial command to the expo packa…
EvanBacon Jan 14, 2022
624c46d
Bump shelljs from 0.8.4 to 0.8.5 (#15920)
dependabot[bot] Jan 15, 2022
083f1a5
Bump shelljs from 0.8.4 to 0.8.5 in /templates/expo-template-tabs (#1…
dependabot[bot] Jan 15, 2022
0e391ab
[expo] Delete TYPESCRIPT.md (#15918)
ide Jan 15, 2022
d33619e
[ios] Migrate CodedErrors to Exceptions (#15900)
tsapeta Jan 16, 2022
00a63ed
fix: release build won't install on Android 12 (#15429)
zhigang1992 Jan 17, 2022
270759c
[dev-launcher] update expo cli copy in the dev launcher to include --…
ajsmth Jan 17, 2022
8918729
Publish expo-dev-client
ajsmth Jan 17, 2022
585a194
[github] Remove probot stale config, no longer works
brentvatne Jan 18, 2022
ccf5688
[github] Rename issue -> issue-attention
brentvatne Jan 18, 2022
9025383
[github] Add stale action
brentvatne Jan 18, 2022
78fe78f
[github] Fix stale syntax error
brentvatne Jan 18, 2022
71a6342
[github] Bump operations-per-run to attempt to handle more issues in …
brentvatne Jan 18, 2022
5698ed4
[github] Temporarily bump ops per run for stale workflow
brentvatne Jan 18, 2022
2988f3e
[github] Scale back operations per run
brentvatne Jan 18, 2022
f250fe4
[docs] Anonymize GA IPs (#15942)
kgc00 Jan 18, 2022
124a41c
[dev-menu] update dev menu to match redesign (#15906)
ajsmth Jan 18, 2022
59460fc
[docs] EAS Build - multitarget/multiflavor bare projects (#15787)
wkozyra95 Jan 19, 2022
4997566
[dev-client-components] Fix `check-packages`
lukmccall Jan 19, 2022
5b62874
[dev-client-components] Rebuild js
lukmccall Jan 19, 2022
af6bb30
[docs] add env vars doc for eas update (#15957)
jonsamp Jan 19, 2022
d000a84
[docs] Various EAS Update updates (#15963)
jonsamp Jan 19, 2022
16f5997
adds note about babel plgin (#15966)
jonsamp Jan 19, 2022
c831ed6
[github] Enable statistics and switch to descending for stale
brentvatne Jan 18, 2022
aca13ed
[docs] add doc on expo-dev-client usage (#15968)
jonsamp Jan 19, 2022
6357d7d
Added platform gitignores (#15954)
EvanBacon Jan 19, 2022
c32aa01
[autolinking] Expose methods for use in expo/prebuild-config (#15950)
EvanBacon Jan 19, 2022
60a411e
[template] Automatically apply android.packagingOptions from gradle.p…
EvanBacon Jan 19, 2022
5a4fc42
[packages] Fix okio/okhttp compatibility issue (#15915)
Kudo Jan 20, 2022
ae2b14e
[dev-launcher] Update changelog to correct section
Kudo Jan 20, 2022
c7467b0
[constants][updates] Fix build errors when sourcing login script fail…
Kudo Jan 20, 2022
402679c
Upgrade to react-native 0.66 (#15914)
Kudo Jan 20, 2022
786e0d6
update changelog from sdk-44 [skip ci]
Kudo Jan 20, 2022
c8452ff
[iOS][Expo Go] Add EXAppViewController as a direct child of EXRootVie…
bbarthec Jan 20, 2022
e306068
[camera] add doc comments in source, APISection tweaks (#15936)
Simek Jan 20, 2022
e226fd9
Update Podfile.lock in bare-expo
tsapeta Jan 20, 2022
99f2c51
[cli] Add prebuild command to expo (#15944)
EvanBacon Jan 20, 2022
d295bd9
[docs] Remove multimanifests from the update docs (#15967)
ide Jan 20, 2022
ae1675d
[docs] Clarify version support for Expo SDK
brentvatne Jan 21, 2022
af273f0
[docs] Update AppState to stop using deprecated removeEventListener (…
kickbk Jan 21, 2022
e299217
Delete unnecessary unimodule.json and Obj-C implementation (#15992)
tsapeta Jan 21, 2022
c1f5969
[barcode-scanner] rebuild files (#15981)
Simek Jan 21, 2022
8599404
Fix SDK tests after upgrading RN to 0.66
tsapeta Jan 21, 2022
6a4cc11
Fix QRCodeScreen in home app
tsapeta Jan 21, 2022
94be4a3
[file-system] sync changelog from sdk-44 [skip ci]
Kudo Jan 22, 2022
ec8e63d
Bump nanoid from 3.1.23 to 3.2.0 in /docs (#16007)
dependabot[bot] Jan 22, 2022
08ccb99
Upgrade types for React Native 0.66 (#15998)
tsapeta Jan 23, 2022
49af9f4
Bump node-fetch from 2.6.6 to 2.6.7 (#16023)
dependabot[bot] Jan 23, 2022
ce2e32c
[templates] tabs: bump dependencies, update lock (#16024)
Simek Jan 24, 2022
157c6e8
Bump nanoid from 3.1.30 to 3.2.0 in /templates/expo-template-tabs (#1…
dependabot[bot] Jan 24, 2022
a28a818
Bump nanoid from 3.1.30 to 3.2.0 (#16010)
dependabot[bot] Jan 24, 2022
43c74df
Bump node-fetch from 2.6.1 to 2.6.7 in /tools (#16022)
dependabot[bot] Jan 24, 2022
b4f5ac4
[docs] EAS Build: update infra docs - macOS Monterey image (#15996)
dsokal Jan 24, 2022
c5196d4
[cli] fix bin (#16006)
EvanBacon Jan 24, 2022
d7a4923
[docs] add dev-client/SDK compatibility (#15984)
esamelson Jan 24, 2022
532dd54
[expo-dev-launcher] remove SDK 42 compat warning from write_embedded_…
esamelson Jan 24, 2022
93de0bd
[docs] Add React imports patcher to installation instructions
brentvatne Jan 24, 2022
52e0857
[docs] Add types and fix mdx link rewrite on Windows (#16025)
byCedric Jan 24, 2022
5ea1353
[dev-menu] add ios functions for dev menu (#15917)
ajsmth Jan 24, 2022
730d686
[dev-menu] unit tests (#16005)
ajsmth Jan 24, 2022
cd34b75
[docs] fix Bugsnag example link (#16027)
Simek Jan 25, 2022
0aacb00
[docs] Returning early from a render function (#16044)
apeltop Jan 25, 2022
6d1aee1
[docs] update ESLint setup and bump TypeScript (#16028)
Simek Jan 25, 2022
f015d49
[docs] fix EAS Build infra docs
dsokal Jan 25, 2022
003a5b4
[location] Fix the `navigator.geolocation` polyfill (#16019)
tsapeta Jan 25, 2022
fdbfa09
[docs] add `prebuildCommand` to eas.json schema (#15953)
kbrandwijk Jan 25, 2022
2eda909
[docs] correct link to members settings (#16049)
Simek Jan 25, 2022
4c31b57
[docs] fix macOS 12 name (#16060)
stdavis Jan 25, 2022
f6b009d
[chore] Update CHANGELOG.md (#16232)
Feb 9, 2022
e377f0c
[font] Fix loading fonts on web and Next.js (#17130)
danieloi Sep 12, 2022
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
Prev Previous commit
Next Next commit
[docs] EAS Build: update Android build process steps (expo#15885)
* [docs] EAS Build: update Android build process steps

* address PR feedback
dsokal authored Jan 13, 2022

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
commit 012a0d18566a86794610efc675fdbac634278b0c
90 changes: 28 additions & 62 deletions docs/pages/build-reference/android-builds.md
Original file line number Diff line number Diff line change
@@ -17,12 +17,7 @@ The first phase happens on your computer. EAS CLI is in charge of completing the

- Depending on the value of `builds.android.PROFILE_NAME.credentialsSource`, the credentials are obtained from either the local **credentials.json** file or from the EAS servers. If the `remote` mode is selected but no credentials exist yet, you're prompted to generate a new keystore.

1. Additional step for **bare** projects: Check if the Android project is configured to be buildable on the EAS servers.

> In this step, EAS CLI checks whether `android/app/build.gradle` contains `apply from: "./eas-build.gradle"`.
> If the project is not configured, EAS CLI runs auto-configuration steps ([learn more below](#project-auto-configuration)).
1. Create the tarball containing a copy of the repository. Actual behavior depends on the VCS workflow you are using. [Learn more here](https://expo.fyi/eas-vcs-workflow).
1. Create a tarball containing a copy of the repository. Actual behavior depends on the VCS workflow you are using. [Learn more here](https://expo.fyi/eas-vcs-workflow).
1. Upload the project tarball to a private AWS S3 bucket and send the build request to EAS Build.

### Remote Steps
@@ -37,12 +32,11 @@ Next, this is what happens when EAS Build picks up your request:
1. Create `.npmrc` if `NPM_TOKEN` is set. ([Learn more](/build-reference/private-npm-packages).)
1. Run the `eas-build-pre-install` script from package.json if defined.
1. Run `yarn install` in the project root (or `npm install` if `yarn.lock` does not exist).
1. Additional steps for **managed** projects:
- Run `expo prebuild` to convert the project to a bare one.
- Configure the Android similarly to the step 3 from [Local Steps](#local-steps).
1. Additional step for **managed** projects: Run `expo prebuild` to convert the project to a bare one.
1. Restore a previously saved cache identified by the `cache.key` value in the build profile. ([Learn more](../build/eas-json/).)
1. Run the `eas-build-post-install` script from package.json if defined.
1. Restore the keystore (if it was included in the build request).
1. Inject the signing configuration into **build.gradl**. [Learn more](#configuring-gradle).
1. Run `./gradlew COMMAND` in the **android** directory inside your project.

- `COMMAND` is the command defined in your **eas.json** at `builds.android.PROFILE_NAME.gradleCommand`. It defaults to `:app:bundleRelease` which produces the AAB (Android App Bundle).
@@ -65,7 +59,7 @@ Your application's keystore should be kept private. **Under no circumstances sho

### Configuring Gradle

Let's focus on building a release app binary. Like we previously mentioned, your app binary needs to be signed with the keystore. Since we're building the project on a remote server, we had to come up with a way to provide Gradle with credentials which aren't, for security reasons, checked in to your repository. When running `eas build:configure`, we're writing the `android/app/eas-build.gradle` file with the following contents:
Your app binary needs to be signed with a keystore. Since we're building the project on a remote server, we had to come up with a way to provide Gradle with credentials which aren't, for security reasons, checked in to your repository. In one of the remote steps, we inject the signing configuration into your **build.gradle**. EAS Build creates the **android/app/eas-build.gradle** file with the following contents:

<!-- prettier-ignore -->
```groovy
@@ -85,75 +79,47 @@ android {
release {
// This is necessary to avoid needing the user to define a release build type manually
}
debug {
// This is necessary to avoid needing the user to define a debug build type manually
}
}
}
def isEasBuildConfigured = false
tasks.whenTaskAdded {
/* @info Don't read credentials.json if the task name contains debug */
def debug = gradle.startParameter.taskNames.any { it.toLowerCase().contains('debug') }
if (debug) {
return
}
/* @end */
// We need to configure EAS Build only once
if (isEasBuildConfigured) {
return
}
isEasBuildConfigured = true;
/* @info This is where we configure the release signing config */android.signingConfigs.release/* @end */ {
android.signingConfigs.release {
def credentialsJson = rootProject.file("../credentials.json");
if (credentialsJson.exists()) {
if (storeFile && !System.getenv("EAS_BUILD")) {
println("Path to release keystore file is already set, ignoring 'credentials.json'")
} else {
try {
def credentials = new groovy.json.JsonSlurper().parse(credentialsJson)
def keystorePath = Paths.get(credentials.android.keystore.keystorePath);
def storeFilePath = keystorePath.isAbsolute()
? keystorePath
: rootProject.file("..").toPath().resolve(keystorePath);
/* @info Use the data from credentials.json for the signing config */
storeFile storeFilePath.toFile()
storePassword credentials.android.keystore.keystorePassword
keyAlias credentials.android.keystore.keyAlias
if (credentials.android.keystore.containsKey("keyPassword")) {
keyPassword credentials.android.keystore.keyPassword
} else {
// key password is required by Gradle, but PKCS keystores don't have one
// using the keystore password seems to satisfy the requirement
keyPassword credentials.android.keystore.keystorePassword
} /* @end */
} catch (Exception e) {
println("An error occurred while parsing 'credentials.json': " + e.message)
}
}
def credentials = new groovy.json.JsonSlurper().parse(credentialsJson)
def keystorePath = Paths.get(credentials.android.keystore.keystorePath);
def storeFilePath = keystorePath.isAbsolute()
? keystorePath
: rootProject.file("..").toPath().resolve(keystorePath);
storeFile storeFilePath.toFile()
storePassword credentials.android.keystore.keystorePassword
keyAlias credentials.android.keystore.keyAlias
if (credentials.android.keystore.containsKey("keyPassword")) {
keyPassword credentials.android.keystore.keyPassword
} else {
if (storeFile == null) {
println("Couldn't find a 'credentials.json' file, skipping release keystore configuration")
}
// key password is required by Gradle, but PKCS keystores don't have one
// using the keystore password seems to satisfy the requirement
keyPassword credentials.android.keystore.keystorePassword
}
}
/* @info Use the above signing config for the release build type */
android.buildTypes.release {
signingConfig android.signingConfigs.release
} /* @end */
}
android.buildTypes.debug {
signingConfig android.signingConfigs.release
}
}
```

The most important part is the `release` signing config. It's configured to read the keystore and passwords from the **credentials.json** file at the project root. Even though you're not required to create this file on your own, it's created and populated with your credentials by EAS Build before running the build.

This file is imported in `android/app/build.gradle` like this:
This file is imported in **android/app/build.gradle** like this:

```groovy
// ...
13 changes: 5 additions & 8 deletions docs/pages/build-reference/build-configuration.md
Original file line number Diff line number Diff line change
@@ -42,14 +42,7 @@ This is your EAS Build configuration. It defines three build profiles named `dev

This step varies depending on the project type you have.

#### 3.1. Bare project

If you choose to configure the Android project, EAS CLI will update your Gradle project so we can build it on our servers.
This step patches **build.gradle** and includes our custom signing configuration. The configuration itself is saved to a separate file: **eas-build.gradle**.

If you also choose to configure the iOS project, there are no additional steps.

#### 3.2. Managed project
#### 3.1. Managed project

If you haven't configured your **app.json** with `android.package` and/or `ios.bundleIdentifier` yet, EAS CLI will prompt you to specify them.

@@ -60,6 +53,10 @@ If you haven't configured your **app.json** with `android.package` and/or `ios.b

In the example above, we defined exactly the same Android application id and iOS bundle identifier. However, they don't need to match.

#### 3.2. Bare project

There are no additional steps for bare workflow projects.

#### 5. Next steps

That's all there is to configuring a project to be compatible with EAS Build.