vxrn 1.17.1 → 1.17.2
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/expo-plugin.cjs +30 -15
- package/package.json +11 -11
package/expo-plugin.cjs
CHANGED
|
@@ -173,8 +173,8 @@ const plugin = (config, options = {}) => {
|
|
|
173
173
|
if (next !== podfile) {
|
|
174
174
|
fs.writeFileSync(podfilePath, next, 'utf8')
|
|
175
175
|
console.info(
|
|
176
|
-
'[vxrn] patched Podfile to
|
|
177
|
-
' to disable: set "one.disableExpoUpdatesIosShellScriptPatch": "true" in ios/Podfile.properties.json'
|
|
176
|
+
'[vxrn] patched Podfile to generate the EXUpdates embedded manifest with EXPO_NO_METRO_WORKSPACE_ROOT=1\n' +
|
|
177
|
+
' to disable patch entirely: set "one.disableExpoUpdatesIosShellScriptPatch": "true" in ios/Podfile.properties.json'
|
|
178
178
|
)
|
|
179
179
|
}
|
|
180
180
|
return config
|
|
@@ -184,7 +184,6 @@ const plugin = (config, options = {}) => {
|
|
|
184
184
|
])
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
|
|
188
187
|
/**
|
|
189
188
|
* RN disables Metro minification for iOS Hermes Release, expecting
|
|
190
189
|
* hermesc -O to handle bytecode optimization. For large One/VxRN bundles
|
|
@@ -654,19 +653,32 @@ function injectSwift6WorkaroundIntoPodfile(podfile) {
|
|
|
654
653
|
|
|
655
654
|
/**
|
|
656
655
|
* Replace the EXUpdates pod's "Generate updates resources for expo-updates"
|
|
657
|
-
* Xcode build phase
|
|
658
|
-
*
|
|
656
|
+
* Xcode build phase. The wrapped script exports
|
|
657
|
+
* `EXPO_NO_METRO_WORKSPACE_ROOT=1` and runs Expo's real
|
|
658
|
+
* `create-updates-resources-ios.sh`, producing an `app.manifest` whose
|
|
659
|
+
* `nsBundleDir`/`nsBundleFilename` entries match the asset paths vxrn's
|
|
660
|
+
* iOS bundler writes into the `.app`. `expo-asset`'s runtime transformer
|
|
661
|
+
* then resolves project-local `require()`'d assets to real local file
|
|
662
|
+
* URIs.
|
|
663
|
+
*
|
|
664
|
+
* For this to actually produce non-blank URIs the app's Metro config
|
|
665
|
+
* also needs to pin `server.unstable_serverRoot` to `projectRoot` for
|
|
666
|
+
* release-shaped native bundles. Without that, vxrn writes assets at
|
|
667
|
+
* workspace-rooted paths while the manifest points at project-rooted
|
|
668
|
+
* paths and the mismatch leaves project-local images blank. `node_modules`
|
|
669
|
+
* assets resolve correctly either way.
|
|
659
670
|
*
|
|
660
|
-
*
|
|
661
|
-
* `
|
|
662
|
-
*
|
|
663
|
-
*
|
|
664
|
-
*
|
|
665
|
-
* side-effects fire — only the Metro bundle step is skipped.
|
|
671
|
+
* Disable the patch entirely: set
|
|
672
|
+
* `"one.disableExpoUpdatesIosShellScriptPatch": "true"` in
|
|
673
|
+
* `ios/Podfile.properties.json`. The upstream script will then run
|
|
674
|
+
* untouched, which on most pnpm monorepos fails to resolve the One entry
|
|
675
|
+
* file and aborts the build.
|
|
666
676
|
*
|
|
667
|
-
*
|
|
668
|
-
*
|
|
677
|
+
* See the "Monorepo asset resolution" section of the OTA Updates docs for
|
|
678
|
+
* the full picture (server-root pinning + this manifest mode together).
|
|
669
679
|
*/
|
|
680
|
+
// Preserved verbatim so existing patched Podfiles re-trigger the idempotency
|
|
681
|
+
// check on next pod install instead of getting the patch injected twice.
|
|
670
682
|
const EXPO_UPDATES_METRO_SKIP_MARKER =
|
|
671
683
|
'# [vxrn/one] skip expo-updates Expo Metro for embedded manifest'
|
|
672
684
|
|
|
@@ -702,9 +714,12 @@ function injectExpoUpdatesIosResourcesPatchIntoPodfile(podfile) {
|
|
|
702
714
|
fi
|
|
703
715
|
|
|
704
716
|
mkdir -p "$RESOURCE_DEST"
|
|
705
|
-
"\${NODE_BINARY:-node}" -e "const c=require('node:crypto');const f=require('node:fs');f.writeFileSync(process.argv[1],JSON.stringify({id:c.randomUUID(),commitTime:Date.now(),assets:[]}))" "$RESOURCE_DEST/app.manifest"
|
|
706
717
|
|
|
707
|
-
|
|
718
|
+
# generate a real EXUpdates manifest. requires the app's Metro
|
|
719
|
+
# config to pin server.unstable_serverRoot to the project root
|
|
720
|
+
# for release-shaped native bundles; otherwise asset paths in
|
|
721
|
+
# the manifest won't match what vxrn writes into the .app.
|
|
722
|
+
export EXPO_NO_METRO_WORKSPACE_ROOT=1
|
|
708
723
|
|
|
709
724
|
#{original_script}
|
|
710
725
|
SCRIPT
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vxrn",
|
|
3
|
-
"version": "1.17.
|
|
3
|
+
"version": "1.17.2",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -59,16 +59,16 @@
|
|
|
59
59
|
"@expo/config-plugins": "~55.0.6",
|
|
60
60
|
"@hono/node-server": "^1.19.10",
|
|
61
61
|
"@react-native/dev-middleware": "^0.83.4",
|
|
62
|
-
"@vxrn/compiler": "1.17.
|
|
63
|
-
"@vxrn/debug": "1.17.
|
|
64
|
-
"@vxrn/query-string": "1.17.
|
|
65
|
-
"@vxrn/resolve": "1.17.
|
|
66
|
-
"@vxrn/safe-area": "1.17.
|
|
67
|
-
"@vxrn/url-parse": "1.17.
|
|
68
|
-
"@vxrn/utils": "1.17.
|
|
69
|
-
"@vxrn/vendor": "1.17.
|
|
70
|
-
"@vxrn/vite-flow": "1.17.
|
|
71
|
-
"@vxrn/vite-plugin-metro": "1.17.
|
|
62
|
+
"@vxrn/compiler": "1.17.2",
|
|
63
|
+
"@vxrn/debug": "1.17.2",
|
|
64
|
+
"@vxrn/query-string": "1.17.2",
|
|
65
|
+
"@vxrn/resolve": "1.17.2",
|
|
66
|
+
"@vxrn/safe-area": "1.17.2",
|
|
67
|
+
"@vxrn/url-parse": "1.17.2",
|
|
68
|
+
"@vxrn/utils": "1.17.2",
|
|
69
|
+
"@vxrn/vendor": "1.17.2",
|
|
70
|
+
"@vxrn/vite-flow": "1.17.2",
|
|
71
|
+
"@vxrn/vite-plugin-metro": "1.17.2",
|
|
72
72
|
"citty": "^0.1.6",
|
|
73
73
|
"dotenv": "^17.2.1",
|
|
74
74
|
"dotenv-expand": "^12.0.2",
|