Constants.manifest is null because the embedded app.config could not be read

Hey, folks. I want to contribute to Expo with a feature I need in one of my projects.

I’m following expo/CONTRIBUTING.md at master · expo/expo · GitHub and I can run the bare-expo app via yarn web.

When I try with yarn ios, which is the platform I’m currently interested in, the app seems to build but the script ends up failing with:

The following build commands failed:
        PhaseScriptExecution Generate\ Dynamic\ Macros /Users/Daniel/Library/Developer/Xcode/DerivedData/BareExpo-dqxzdpqfgwkqlafanothrrcrgkpc/Build/Intermediates.noindex/BareExpo.build/Debug-iphonesimulator/BareExpo.build/Script-21646C4123F2D18200CB927F.sh
(1 failure)

I can build and run the app via Xcode, though, but there I get a warning (yellow screen) first:

Constants.manifest is null because the embedded app.config could not be read. Ensure that you have installed the expo-constants build scripts if you need to read from Constants.manifest.

then an error (red screen):

Error: expo-linking needs access to the expo-constants manifest (app.json or app.config.js) to determine what URI scheme to use. Setup the manifest and rebuild: https://github.com/expo/expo/blob/master/packages/expo-constants/README.md

and then another warning:

Unable to start your application. Please refer to https://expo.fyi/no-registered-application for more information. 

I’ve read those but I’m not sure what to do, it seems for a bare project like this, everything should be already configured, and the CONTRIBUTING page doesn’t mention it either.

Something else that I don’t understand and that could be related is a warning about @unimodules/react-native-adapter that I get when just before start building the project:

bare-expo$ yarn ios
yarn run v1.22.10
$ export NODE_ENV="development" && ./scripts/start-simulator.sh
 ☛  Bootstrapping Expo in development mode
 ☛  Ensuring iOS project is setup...
 ✅ Has CocoaPods CLI
 ✅ Node modules installed
 ✅ Project CocoaPods installed
 ✅ Verified Metro Bundler is running.
 ☛  Running the iOS project...
warn Package @unimodules/react-native-adapter has been ignored because it contains invalid configuration. Reason: Option dependency.platforms.android must be a object, instead got object
info Found Xcode workspace "BareExpo.xcworkspace"
info Building (using "xcodebuild -workspace BareExpo.xcworkspace -configuration Debug -scheme BareExpo -destination id=3E4508D8-85D6-42E7-BAC1-2D6AEA9A8A90")
...

Could anyone help me with this?

hi there!
could you help to verify if this patch works for you?
or you could simply use the @kudo/bare-expo-shell-fix branch if necessary.

https://github.com/expo/expo/commit/0c05d9ecb72ee3503db9345bad76a19281799bc4

--- a/apps/bare-expo/ios/BareExpo.xcodeproj/project.pbxproj
+++ b/apps/bare-expo/ios/BareExpo.xcodeproj/project.pbxproj
@@ -383,7 +383,7 @@
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                        shellPath = /bin/bash;
-                       shellScript = "$SRCROOT/Build-Phases/generate-dynamic-macros.sh\n";
+                       shellScript = "bash -l -c \"$SRCROOT/Build-Phases/generate-dynamic-macros.sh\"\n";
                };
                21646C4223F2D1BA00CB927F /* Copy Bundle Resources Conditionally */ = {
                        isa = PBXShellScriptBuildPhase;
@@ -441,7 +441,7 @@
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                        shellPath = /bin/bash;
-                       shellScript = "$SRCROOT/Build-Phases/generate-dynamic-macros.sh\n";
+                       shellScript = "bash -l -c \"$SRCROOT/Build-Phases/generate-dynamic-macros.sh\"\n";
                };
                B2C0264C256BDB3E008FD925 /* Start Packager */ = {
                        isa = PBXShellScriptBuildPhase;

Thanks!

I’m trying out your branch, and when I run bundle exec pod install in apps/bare-expo/ios I now get:

[!] The following Swift pods cannot yet be integrated as static libraries:

The Swift pod `ExpoModulesCore` depends upon `React-Core`, which does not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set `use_modular_headers!` globally in your Podfile, or specify `:modular_headers => true` for particular dependencies.

thus the pods project is not generated and I can’t compile the workspace.

I’ve made sure I’m using ruby 2.7, as the contributing guide says.

I’ve sent you a message in the Expo discord, in case you want to continue the troubleshooting there.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.