| 09bd1012 | 22-Nov-2022 |
Umberto Ghio <[email protected]> |
Add requestHeaders option in app.js to avoid issues with expo prebuild when using release channels outside EAS build (#18737)
# Why
On the documentation
[https://docs.expo.dev/bare/updating-your
Add requestHeaders option in app.js to avoid issues with expo prebuild when using release channels outside EAS build (#18737)
# Why
On the documentation
[https://docs.expo.dev/bare/updating-your-app/](https://docs.expo.dev/bare/updating-your-app/)
is stated that you can configura the release channel manually by adding
`expo.modules.updates.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY` or
`EXUpdatesRequestHeaders` in their respective places.
However, `expo prebuild` does not consider this option resulting in
missing or removed release channel configuration.
The proposed solution introduces a new configuration option in app.json
updates section called `requestHeaders` that allows to handle this
configuration automatically, just like `codeSigningMetadata`.
# How
I followed precisely how `codeSigningMetadata` option is implemented
(styles, names, etc) and modified:
`packages/@expo/config-types/src/ExpoConfig.ts`
Added `requestHeaders` option under updates in order to update the
schema
`packages/@expo/config-plugins`
I updated iOS and Android Updates.ts and added the relative helpers and
tests, closely follwing how `codeSigningMetadata` was implemented
It is possible now to add the updates request headers directly in
`app.json` and have `expo prebuild` handle this configuration
automatically.
# Test Plan
I have included the relative tests following the behavior of
`codeSigningMetadata` option.
I have also tested on a real project by copying the builds of
config-plugins in the node_modules folder.

# Checklist
- [X] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [X] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [X] This diff will work correctly for `expo prebuild` & EAS Build (eg:
updated a module plugin).
NOTE: I have updated the relevant documentation page
`docs/pages/bare/updating-your-app.md` but not the `app.json /
app.config.js` as I thought adding instructions to add release channel
information in app.js may confuse managed expo users.
Co-authored-by: Will Schurman <[email protected]>
Co-authored-by: Douglas Lowder <[email protected]>
Co-authored-by: Bartosz Kaszubowski <[email protected]>
Co-authored-by: Douglas Lowder <[email protected]>
show more ...
|