expo: Can't create a working ios release build for ejected app.
đ Bug Report
Iâve already run expo publish. I think my manifest file may be invalid. How can I debug this and figure out whatâs causing the issue? It works just fine in âdebugâ configuration.
Environment
Expo CLI 3.17.21 environment info: System: OS: macOS 10.15.4 Shell: 3.2.57 - /bin/bash Binaries: Node: 13.11.0 - ~/.nvm/versions/node/v13.11.0/bin/node Yarn: 1.22.4 - /usr/local/bin/yarn npm: 6.13.7 - ~/.nvm/versions/node/v13.11.0/bin/npm Watchman: 4.9.0 - /usr/local/bin/watchman IDEs: Android Studio: 3.2 AI-181.5540.7.32.5056338 Xcode: 11.4/11E146 - /usr/bin/xcodebuild npmPackages: expo: ^37.0.0 => 37.0.3 react: ~16.9.0 => 16.9.0 react-native: ~0.61.5 => 0.61.5 react-navigation: ^2.18.2 => 2.18.3 npmGlobalPackages: expo-cli: 3.17.21
Steps to Reproduce
Creating release build in xcode.
Expected Behavior
App doesnât crash on startup.
Actual Behavior
App crashes on startup with this error in xcode.
*** Terminating app due to uncaught exception âNSInternalInconsistencyExceptionâ, reason: âThe embedded manifest is invalid. If you are making a release build for the first time, make sure you have run expo publish at least once.â
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 6
- Comments: 42 (14 by maintainers)
expo is killing me after ejecting. Itâs like a crazy ex that doesnât want to leave you alone.
I ejected from the managed workflow to the bare workflow and I get the exact same error when trying a release build on iOS. My release builds on Android also crash immediately. There I can observe the error
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2in Android Logcat after runningreact native --variant=release.My
ios/<your-project-name>/Supporting/app.manifestas well as myios/<your-project-name>/Supporting/app.bundleare just{}- two empty objects.I read through all of the discussion here - I donât have any
publishBundlePathnorpublishManifestPathin myapp.jsonand of course noexpokitpackage in mypackage.json.Perhaps my problem is worth a separate issue?!
UPDATE: After updating
expo-clifrom3.17.21to3.17.24and runningexpo publishagain, theapp.manifestnow has content and the iOS release build as well as the Android release build worked đRequest: After spending almost 2 days on trying to resolve these release build issues: I was not aware that by ejecting from the managed workflow, I now have to deal with the package
expo-updatesand read through itâs embedded assets documentation to spot that I have to runexpo publish. A guide with âstuff to do after ejecting from the managed workflowâ would be awesome. Iâd also be happy to kick-off/contribute to such a guide in the docs.2 Questions:
expo publishbefore every new release build of my app in order to create theapp.manifestandapp.bundlefiles?app.manifestandapp.bundleare in the.gitignorefile. Why? Shouldnât I rather add them to version control after ejecting from the managed workflow to the bare workflow?@Andruschenko - sorry for the confusion! we just released expo-updates a couple of weeks ago and in some cases the workflow isnât as ergonomic or clear as it could be.
what currently happens
if you have not published yet, you will see this in your logs when you run a release build on ios:
if you have not published yet, you will see this in your logs when you run a release build on android:
what we are working on
we are investigating changing expo-updates such that a bundle is created at the time when a build is performed, rather than requiring you to publish beforehand. @esamelson is working on this now.
how we will improve the clarity around the current process of creating release builds
expokitandexpo-updatesin the same project, because they are incompatible (https://github.com/expo/expo-cli/commit/2c0176b297ea1d66c976a98bdd3ebb420927709d) - this is the problem that led to this particular issue being created.to address your questions specifically:
@brentvatne Thanks for your elaborate reply and @esamelson and your efforts to make the transition to the bare workfllow smoother.
The reason I spent 2 days on this is because I was first only attempting a release build on Android. Since I got very irritating errors I first suspected the issue to be unrelated to Expo and spent a lot of time of trying different fixes. When I finally attempted a release build on iOS, I quickly got to this issue here which helped me to finally resolve it - that being said, thanks for adding some information on eject about publishing before release builds.
I really enjoyed the managed workflow experience of Expo and am looking forward to using the bare workflow after this first hick-up. Keep up the great work!
PS I wanted to thank you for your active support on this and your follow up. I donât know if you guys are on payroll or not but we really appreciate this project/package. Please keep up the great work.
My project name was changed in my app.json which meant that expo publish was creating a folder with that name and putting the manifest in there instead of the original package name of my XCode project. Changing the app.json name back to the old one did the trick and I was able to simply change my project name in XCode.
@Andruschenko - my bad, we actually do show a relevant error on android â i can see why you would have missed it though because i did too. android logs scroll by so fast đ