Open berilsanda opened 1 year ago
Same here, expo 48
expo-env-info 1.0.5 environment info:
System:
OS: macOS 13.2.1
Shell: 5.8.1 - /bin/zsh
Binaries:
Node: 16.13.0 - ~/.nvm/versions/node/v16.13.0/bin/node
Yarn: 1.22.19 - /opt/homebrew/bin/yarn
npm: 8.1.0 - ~/.nvm/versions/node/v16.13.0/bin/npm
Watchman: 2023.03.13.00 - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.11.3 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1
Android SDK:
API Levels: 30, 31, 33
Build Tools: 29.0.2, 30.0.3, 31.0.0, 33.0.0
System Images: android-33 | Google APIs ARM 64 v8a
IDEs:
Android Studio: 2021.3 AI-213.7172.25.2113.9014738
Xcode: 14.2/14C18 - /usr/bin/xcodebuild
npmPackages:
expo: ^48.0.0 => 48.0.9
react: 18.2.0 => 18.2.0
react-dom: 18.2.0 => 18.2.0
react-native: 0.71.4 => 0.71.4
npmGlobalPackages:
eas-cli: 3.8.1
expo-cli: 6.3.2
Expo Workflow: managed
Thanks for reporting this issue! In order of usefullness, here are some things you can provide to help us root cause the problem:
A simple app where you’ve been able to reproduce this issue. Please share: - the app code - links to your update. Also whether you are loading via ios or android - link to your build which you tried to load the update from
In your existing app, please share:
package.json
at the time you made the buildpackage.json
at the time you made the problematic update Same here. @berilsanda did you figure out the issue? @mikkan-39
@quinlanj In this image the link is gray:
Should it normally be blue? Is gray indicating something about the link is inactive?
@FRCassarino
Should it normally be blue? Is gray indicating something about the link is inactive?
I have another project with working eas update it show the same gray link
Same here. @berilsanda did you figure out the issue? @mikkan-39
nope still got the issue,
@quinlanj
In your existing app, please share:
package.json
at the time you made the buildpackage.json
at the time you made the problematic update
sadly I can't attach more info from the time I created this thread since I tried to undo my expo SDK update, delete the build, channel, branch and recreate it multiple times
but since I still got the issues I will give more info that I get after some debugging process
following the debugging step Viewing network requests I get that my accept header is missing the multipart/mixed value so I decompile the apk using APK Studio and then add it to my AndroidManifest.xml by editing this line
<meta-data android:name="expo.modules.updates.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY" android:value="{"expo-channel-name":"preview"}"/>
to
<meta-data android:name="expo.modules.updates.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY" android:value="{"expo-channel-name":"preview","accept":"application/expo+json, application/json, multipart/mixed"}"/>
also I just want to make sure by Inspecting expo-updates configuration after prebuild that the properties on my AndroidManifest.xml are right since before upgrading to expo sdk 43 (previously my app is on expo sdk 42) my expo.modules.updates.EXPO_UPDATE_URL is still using the old https://exp.host/@hkgusti/mobile-absensi even thought I already use eas and my updates.url on app.json already set to "https://u.expo.dev/5f3dfd81-a98f-4031-b0ab-6df77e72c5b3"
after add the missing key on AndroidManifest.xml I still get the error but this time the error is different I tried to check adb logcat it seems that my update is failed to download and the problem for this Failed to parse manifest data
error is this
04-19 15:12:47.150 17949 20801 E RemoteLoader: Failed to parse manifest data 04-19 15:12:47.150 17949 20801 E RemoteLoader: java.io.IOException: Manifest string is not a valid JSONObject or JSONArray: -------ExpoManifestBoundary-saFsqFEdRTOosSxVfA8X6w 04-19 15:12:47.150 17949 20801 E RemoteLoader: Content-Disposition: form-data; name="manifest" 04-19 15:12:47.150 17949 20801 E RemoteLoader: Content-Type: application/json 04-19 15:12:47.150 17949 20801 E RemoteLoader: 04-19 15:12:47.150 17949 20801 E RemoteLoader: {"id":"b1a... ---UPDATE FILE--- 04-19 15:12:47.150 17949 20801 E RemoteLoader: -------ExpoManifestBoundary-saFsqFEdRTOosSxVfA8X6w 04-19 15:12:47.150 17949 20801 E RemoteLoader: Content-Disposition: form-data; name="extensions" 04-19 15:12:47.150 17949 20801 E RemoteLoader: Content-Type: application/json 04-19 15:12:47.150 17949 20801 E RemoteLoader: 04-19 15:12:47.151 17949 20801 E RemoteLoader: {"assetRequ... ---UPDATE FILE--- 04-19 15:12:47.151 17949 20801 E RemoteLoader: at expo.modules.updates.loader.FileDownloader.extractUpdateResponseJson(FileDownloader.java:267) 04-19 15:12:47.151 17949 20801 E RemoteLoader: at expo.modules.updates.loader.FileDownloader.access$100(FileDownloader.java:36) 04-19 15:12:47.151 17949 20801 E RemoteLoader: at expo.modules.updates.loader.FileDownloader$2.onResponse(FileDownloader.java:114) 04-19 15:12:47.151 17949 20801 E RemoteLoader: at expo.modules.updates.loader.FileDownloader$4.onResponse(FileDownloader.java:242) 04-19 15:12:47.151 17949 20801 E RemoteLoader: at okhttp3.RealCall$AsyncCall.execute(RealCall.java:203) 04-19 15:12:47.151 17949 20801 E RemoteLoader: at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) 04-19 15:12:47.151 17949 20801 E RemoteLoader: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 04-19 15:12:47.151 17949 20801 E RemoteLoader: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 04-19 15:12:47.151 17949 20801 E RemoteLoader: at java.lang.Thread.run(Thread.java:923) 04-19 15:12:47.151 17949 20801 E RemoteLoader: Caused by: org.json.JSONException: Value -------ExpoManifestBoundary-saFsqFEdRTOosSxVfA8X6w of type java.lang.String cannot be converted to JSONArray 04-19 15:12:47.151 17949 20801 E RemoteLoader: at org.json.JSON.typeMismatch(JSON.java:112) 04-19 15:12:47.151 17949 20801 E RemoteLoader: at org.json.JSONArray.
(JSONArray.java:98) 04-19 15:12:47.151 17949 20801 E RemoteLoader: at org.json.JSONArray. (JSONArray.java:110) 04-19 15:12:47.151 17949 20801 E RemoteLoader: at expo.modules.updates.loader.FileDownloader.extractUpdateResponseJson(FileDownloader.java:258) 04-19 15:12:47.151 17949 20801 E RemoteLoader: ... 8 more 04-19 15:12:47.151 17949 20801 E LoaderTask: Failed to download remote update 04-19 15:12:47.151 17949 20801 E LoaderTask: java.io.IOException: Manifest string is not a valid JSONObject or JSONArray: -------ExpoManifestBoundary-saFsqFEdRTOosSxVfA8X6w 04-19 15:12:47.151 17949 20801 E LoaderTask: Content-Disposition: form-data; name="manifest" 04-19 15:12:47.151 17949 20801 E LoaderTask: Content-Type: application/json 04-19 15:12:47.151 17949 20801 E LoaderTask: 04-19 15:12:47.151 17949 20801 E LoaderTask: {"id" ---UPDATE FILE--- 04-19 15:12:47.152 17949 20801 E LoaderTask: -------ExpoManifestBoundary-saFsqFEdRTOosSxVfA8X6w-- 04-19 15:12:47.152 17949 20801 E LoaderTask: 04-19 15:12:47.152 17949 20801 E LoaderTask: at expo.modules.updates.loader.FileDownloader.extractUpdateResponseJson(FileDownloader.java:267) 04-19 15:12:47.152 17949 20801 E LoaderTask: at expo.modules.updates.loader.FileDownloader.access$100(FileDownloader.java:36) 04-19 15:12:47.152 17949 20801 E LoaderTask: at expo.modules.updates.loader.FileDownloader$2.onResponse(FileDownloader.java:114) 04-19 15:12:47.152 17949 20801 E LoaderTask: at expo.modules.updates.loader.FileDownloader$4.onResponse(FileDownloader.java:242) 04-19 15:12:47.152 17949 20801 E LoaderTask: at okhttp3.RealCall$AsyncCall.execute(RealCall.java:203) 04-19 15:12:47.152 17949 20801 E LoaderTask: at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) 04-19 15:12:47.152 17949 20801 E LoaderTask: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 04-19 15:12:47.152 17949 20801 E LoaderTask: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 04-19 15:12:47.152 17949 20801 E LoaderTask: at java.lang.Thread.run(Thread.java:923) 04-19 15:12:47.152 17949 20801 E LoaderTask: Caused by: org.json.JSONException: Value -------ExpoManifestBoundary-saFsqFEdRTOosSxVfA8X6w of type java.lang.String cannot be converted to JSONArray 04-19 15:12:47.152 17949 20801 E LoaderTask: at org.json.JSON.typeMismatch(JSON.java:112) 04-19 15:12:47.152 17949 20801 E LoaderTask: at org.json.JSONArray. (JSONArray.java:98) 04-19 15:12:47.152 17949 20801 E LoaderTask: at org.json.JSONArray. (JSONArray.java:110) 04-19 15:12:47.152 17949 20801 E LoaderTask: at expo.modules.updates.loader.FileDownloader.extractUpdateResponseJson(FileDownloader.java:258) 04-19 15:12:47.152 17949 20801 E LoaderTask: ... 8 more
the update file can be accessed on update from u.expo.dev
Also, I have another project with the same issue old expo project tried to upgrade to eas -> can't receive update from eas
but when I tried to recreate the app on a new project with 100% same code it can receive the update just fine I wonder if migrating from the old expo project to eas mostly give this kind of error (maybe eas update file can't be received or parsed on old expo-updates dependencies?)
Same here. Any workaround is appreciated.
I figured it out. In the app.config.js u have to specify
requestHeaders: {
"expo-runtime-version": xxx,
"expo-channel-name": xxx
},
I figured it out. In the app.config.js u have to specify
requestHeaders: { "expo-runtime-version": xxx, "expo-channel-name": xxx },
where did u put it on app config? i tried it on app json as this docs state but it give me error when i build the app
EDIT: figure it out where to add but it still give me failed to parse manifest data 😔
even adding useClassicUpdates
still give an error
I figured it out. In the app.config.js u have to specify
requestHeaders: { "expo-runtime-version": xxx, "expo-channel-name": xxx },
Thanks, it worked for me. Earlier I had specified expo.runtimeVersion as "1.0.0", maybe that's why it was failing without expo.updates.requestHeaders.expo-runtime-version: "1.0.0"
or maybe because I'm using dynamic app.json aka app.config.js
Build/Submit details page URL
https://expo.dev/accounts/hkgusti/projects/mobile-absensi/builds/5855f21e-4482-42f8-8cb8-a7a4aaff34ae
Summary
EAS Update didn't do any update on my phone
I have an internal build with channel "staging", this error came when
npx eas build --profile staging --platform android
npx eas update --branch staging --message "Update fix issue"
(This update work perfectly)npx eas build --profile staging --platform android
download the app and install it after uninstalling the previous appnpx eas update --branch staging_temp --message "Temp update"
npx eas channel:edit staging --branch staging_temp
and get the message "Users with builds on channel staging will now receive the active update on staging_temp"That way the update should be downloaded but it didn't. I tried to force quit and close open the app multiple times but it still didn't receive the update.
I can find the new update, new branch on expo dev dashboard or by using
npx branch/update:list
, on my staging channel it says the linked branch is staging_tempI didn't do any changes to my project, app.json, or eas config/setting whatsoever I just run the build and update command. Tried to wait for an hour for the update to roll, even my previous build and the newest one happened in less than 30 minutes so I don't think it's some server problem
/// UPDATE ///
So it seems that I get "failed to download manifest error" while trying to fetch new update and when I try to open my update URL it says
even though I already set my runtime-version to
Managed or bare?
Managed
Environment
expo-env-info 1.0.5 environment info: System: OS: Windows 10 10.0.22000 Binaries: Node: 16.19.1 - C:\Program Files\nodejs\node.EXE Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD npm: 8.19.3 - C:\Program Files\nodejs\npm.CMD npmPackages: expo: ^43.0.0 => 43.0.5 react: 17.0.1 => 17.0.1 react-dom: 17.0.1 => 17.0.1 react-native: 0.64.3 => 0.64.3 react-native-web: 0.17.1 => 0.17.1 Expo Workflow: managed
expo doctor 🎉 Didn't find any issues with the project!
eas.json
Error output
No response
Reproducible demo or steps to reproduce from a blank project
See environment