@radhya/mach 2.0.41 → 2.0.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -3
- package/dist/index.js +173 -157
- package/docs/ota.md +71 -0
- package/expo-plugin/index.js +5 -4
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -145,15 +145,21 @@ mach ota rollback --update-id <updateId>
|
|
|
145
145
|
mach ota promote --update-id <updateId>
|
|
146
146
|
```
|
|
147
147
|
|
|
148
|
-
|
|
148
|
+
`mach ota setup` uses the open-source `expo-updates` runtime for both Expo and bare React Native apps while keeping publishing, manifests, assets, channels, metrics, and rollback on Mach. It writes the `ota` config, installs or refreshes the compatible project-local plugin when approved, and wires `@radhya/mach/expo-plugin`. Updates are served from Mach instead of EAS Update.
|
|
149
|
+
|
|
150
|
+
For bare React Native, setup first installs Expo Modules when needed, then uses the installed `expo-updates configuration:syncnative` tool to update the committed Android and iOS projects. It does not run Expo prebuild or replace the native folders. Run setup from a clean branch so you can review the package and native integration changes.
|
|
151
|
+
|
|
152
|
+
Create and install one new native build after the initial setup. Previously installed binaries keep the update URL embedded when they were built and cannot be retrofitted by an OTA publish.
|
|
149
153
|
|
|
150
154
|
With the default `ON_LOAD` behavior, the first cold launch checks for and downloads a compatible update. The next cold launch runs it. Mach records unique downloaded, applied, and failed devices automatically from Expo Updates requests; app code does not call a metrics endpoint and never receives storage credentials.
|
|
151
155
|
|
|
152
156
|
Command flags always win over config values. For example, `mach ota publish --channel staging --runtime-version 1.2.0` overrides `ota.channel` and `ota.runtimeVersion`.
|
|
153
157
|
|
|
154
|
-
Runtime
|
|
158
|
+
Runtime precedence is `--runtime-version`, `ota.runtimeVersion`, `ota.runtimeVersionPolicy`, Expo config, then package version fallback. A configured Mach policy therefore replaces stale `runtimeVersion` values left in Expo config. Runtime version is the OTA compatibility boundary: Mach stores it on each build and serves updates only to matching platform/channel/runtime combinations. Build, verify, and publish commands stop when the project-local Expo plugin would embed a different runtime.
|
|
159
|
+
|
|
160
|
+
Bare React Native uses the same Expo Updates protocol and the same Mach endpoint as Expo. `mach-react-native` remains reserved for a future Mach-owned native runtime and cannot currently be selected for publishing.
|
|
155
161
|
|
|
156
|
-
|
|
162
|
+
See [OTA Updates](docs/ota.md) for setup behavior, bare React Native requirements, runtime matching, and validation.
|
|
157
163
|
|
|
158
164
|
## Deep Links
|
|
159
165
|
|