[expo-bare][prebuilt modules]'EXUpdates/EXUpdatesAppController.h' file not found - release build only iOS
See original GitHub issue🐛 Bug Report
After the last batch of expo-* updates I get a build error in Xcode when trying to archive (simulator and device connected with cable work fine). The error message is: (...)/ios/myditation/AppDelegate.h:5:9: 'EXUpdates/EXUpdatesAppController.h' file not found and comes from this line in: #import <EXUpdates/EXUpdatesAppController.h> in AppDelegate.h.
Could this be because of the new prebuilt modules? I have also tried EXPO_USE_SOURCE=1 pod install as suggested here: https://github.com/expo/fyi/blob/master/prebuilt-modules.md
but that then cause the seemingly unrealted error: (...)/ios/Pods/Firebase/CoreOnly/Sources/Firebase.h:15:9: 'FirebaseCore/FirebaseCore.h' file not found, which I haven’t seen before.
I have also notices that during the pod install it doesn’t log Installing EXUpdates 0.4.1, here is the complete output:
EXPO_USE_SOURCE=1 pod install
Installing unimodules:
expo-application@3.0.0 from ../node_modules/expo-application/ios
expo-av@9.0.0 from ../node_modules/expo-av/ios
expo-blur@9.0.0 from ../node_modules/expo-blur/ios
expo-constants@10.0.0 from ../node_modules/expo-constants/ios
expo-file-system@10.0.0 from ../node_modules/expo-file-system/ios
expo-font@9.0.0 from ../node_modules/expo-font/ios
expo-image-loader@1.3.0 from ../node_modules/expo-image-loader/ios
expo-image-picker@10.0.0 from ../node_modules/expo-image-picker/ios
expo-keep-awake@9.0.0 from ../node_modules/expo-keep-awake/ios
expo-linear-gradient@9.0.0 from ../node_modules/expo-linear-gradient/ios
expo-localization@10.0.0 from ../node_modules/expo-localization/ios
expo-notifications@0.9.0 from ../node_modules/expo-notifications/ios
expo-permissions@11.0.0 from ../node_modules/expo-permissions/ios
expo-splash-screen@0.9.0 from ../node_modules/expo-splash-screen/ios
expo-updates@0.4.1 from ../node_modules/expo-updates/ios
unimodules-app-loader@1.4.0 from ../node_modules/unimodules-app-loader/ios
unimodules-barcode-scanner-interface@5.4.0 from ../node_modules/unimodules-barcode-scanner-interface/ios
unimodules-camera-interface@5.4.0 from ../node_modules/unimodules-camera-interface/ios
unimodules-constants-interface@5.4.0 from ../node_modules/unimodules-constants-interface/ios
unimodules-core@6.0.0 from ../node_modules/@unimodules/core/ios
unimodules-face-detector-interface@5.4.0 from ../node_modules/unimodules-face-detector-interface/ios
unimodules-file-system-interface@5.4.0 from ../node_modules/unimodules-file-system-interface/ios
unimodules-font-interface@5.4.0 from ../node_modules/unimodules-font-interface/ios
unimodules-image-loader-interface@5.4.0 from ../node_modules/unimodules-image-loader-interface/ios
unimodules-permissions-interface@5.4.0 from ../node_modules/unimodules-permissions-interface/ios
unimodules-react-native-adapter@5.7.0 from ../node_modules/@unimodules/react-native-adapter/ios
unimodules-sensors-interface@5.4.0 from ../node_modules/unimodules-sensors-interface/ios
unimodules-task-manager-interface@5.4.0 from ../node_modules/unimodules-task-manager-interface/ios
Found some duplicated unimodule packages. Installed the ones with the highest version number.
Make sure following dependencies of your project are resolving to one specific version:
expo-file-system, expo-constants, expo-permissions
RNFBAnalytics: Using overridden static_framework value of 'true'
RNFBApp: Using overridden static_framework value of 'true'
Adding a custom script phase for Pod RNFBApp: [RNFB] Core Configuration
RNFBAuth: Using overridden static_framework value of 'true'
RNFBCrashlytics: Using overridden static_framework value of 'true'
Adding a custom script phase for Pod RNFBCrashlytics: [RNFB] Crashlytics Configuration
RNFBDatabase: Using overridden static_framework value of 'true'
RNFBDynamicLinks: Using overridden static_framework value of 'true'
RNFBFirestore: Using overridden static_framework value of 'true'
RNFBFunctions: Using overridden static_framework value of 'true'
RNFBMessaging: Using overridden static_framework value of 'true'
RNFBStorage: Using overridden static_framework value of 'true'
Auto-linking React Native modules for target `myditation`: RCTAppleHealthKit, RNAppleAuthentication, RNCAsyncStorage, RNCMaskedView, RNCPicker, RNDateTimePicker, RNDeviceInfo, RNFBAnalytics, RNFBApp, RNFBAuth, RNFBCrashlytics, RNFBDatabase, RNFBDynamicLinks, RNFBFirestore, RNFBFunctions, RNFBMessaging, RNFBStorage, RNGestureHandler, RNGoogleSignin, RNIap, RNReanimated, RNSVG, RNScreens, RNVectorIcons, lottie-ios, lottie-react-native, react-native-audiokit, react-native-fbsdk, react-native-music-control, react-native-netinfo, react-native-safe-area-context, react-native-slider, and react-native-webview
Analyzing dependencies
RNFBAnalytics: Using overridden static_framework value of 'true'
RNFBApp: Using overridden static_framework value of 'true'
RNFBAuth: Using overridden static_framework value of 'true'
RNFBCrashlytics: Using overridden static_framework value of 'true'
RNFBDatabase: Using overridden static_framework value of 'true'
RNFBDynamicLinks: Using overridden static_framework value of 'true'
RNFBFirestore: Using overridden static_framework value of 'true'
RNFBFunctions: Using overridden static_framework value of 'true'
RNFBMessaging: Using overridden static_framework value of 'true'
RNFBStorage: Using overridden static_framework value of 'true'
Downloading dependencies
Installing EXAV 9.0.0
Installing EXFileSystem 10.0.0
Installing EXNotifications 0.9.0
Installing EXSplashScreen 0.9.0
Generating Pods project
Integrating client project
Pod installation complete! There are 89 dependencies from the Podfile and 120 total pods installed.
[!] Your project does not explicitly specify the CocoaPods master specs repo. Since CDN is now used as the default, you may safely remove it from your repos directory via `pod repo remove master`. To suppress this warning please add `warn_for_unused_master_specs_repo => false` to your Podfile.
as you can see the near the bottom there are only 4 Installing EX... lines, but I have more expo- dependencies in package.json:
{
"name": "...",
"version": "5.1.0",
"private": true,
"devDependencies": {
"@babel/core": "^7.8.4",
"@babel/runtime": "^7.8.4",
"@react-native-community/eslint-config": "^1.1.0",
"babel-jest": "^25.1.0",
"detox": "^17.14.6",
"eslint": "^6.5.1",
"jest": "^25.1.0",
"metro-react-native-babel-preset": "^0.59.0",
"react-test-renderer": "16.13.1"
},
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"build:ios": "react-native bundle --entry-file='index.js' --bundle-output='./ios/main.jsbundle' --dev=false --platform='ios'",
"apk": "cd android && ./gradlew assembleRelease",
"rename": "node ./bin/rename.js",
"start": "react-native start",
"test": "jest",
"postinstall": "npx jetify && patch-package",
"web": "expo start --web"
},
"jest": {
"preset": "react-native"
},
"detox": {
"configurations": {
"ios.sim.debug": {
"binaryPath": "(...)/Build/Products/Debug-iphonesimulator/myditation.app",
"build": "xcodebuild -workspace ios/myditation.xcworkspace -scheme myditation -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"device": {
"type": "iPhone 8"
}
}
},
"test-runner": "jest"
},
"dependencies": {
"@expo/react-native-action-sheet": "^3.8.0",
"@expo/vector-icons": "^12.0.3",
"@invertase/react-native-apple-authentication": "^2.1.0",
"@react-native-community/async-storage": "^1.12.1",
"@react-native-community/datetimepicker": "^3.0.9",
"@react-native-community/google-signin": "^5.0.0",
"@react-native-community/masked-view": "^0.1.10",
"@react-native-community/netinfo": "^5.9.10",
"@react-native-community/picker": "^1.8.1",
"@react-native-community/slider": "^3.0.3",
"@react-native-firebase/analytics": "10.5.1",
"@react-native-firebase/app": "10.5.0",
"@react-native-firebase/auth": "10.5.1",
"@react-native-firebase/crashlytics": "10.5.1",
"@react-native-firebase/database": "10.5.1",
"@react-native-firebase/dynamic-links": "10.5.1",
"@react-native-firebase/firestore": "10.5.1",
"@react-native-firebase/functions": "10.5.1",
"@react-native-firebase/messaging": "10.5.1",
"@react-native-firebase/storage": "10.5.1",
"@thehanimo/react-native-audiokit": "(...)/react-native-modules/react-native-audiokit-master",
"algoliasearch": "^4.8.4",
"capitalize": "^2.0.3",
"color": "^3.1.3",
"currency-symbol-map": "^5.0.1",
"email-validator": "^2.0.4",
"es6-tween": "^5.5.11",
"expo-asset": "^8.2.2",
"expo-av": "9.0.0",
"expo-blur": "9.0.0",
"expo-file-system": "10.0.0",
"expo-font": "9.0.0",
"expo-image-picker": "10.0.0",
"expo-keep-awake": "9.0.0",
"expo-linear-gradient": "9.0.0",
"expo-localization": "10.0.0",
"expo-notifications": "^0.9.0",
"expo-permissions": "11.0.0",
"expo-splash-screen": "^0.9.0",
"expo-updates": "^0.4.1",
"expo-video-player": "^1.6.1",
"global": "^4.4.0",
"i18n-js": "^3.8.0",
"iap-receipt-validator": "^1.0.6",
"jshint": "^2.12.0",
"lodash": "^4.17.20",
"lottie-ios": "3.1.9",
"lottie-react-native": "3.5.0",
"moment": "^2.29.1",
"moment-duration-format": "^2.3.2",
"patch-package": "^6.2.2",
"postinstall-postinstall": "^2.1.0",
"react": "16.13.1",
"react-firebase-hooks": "^2.2.0",
"react-firebase-pagination-hooks": "^1.0.0",
"react-instantsearch": "^6.8.3",
"react-native": "0.63.4",
"react-native-animatable": "^1.3.3",
"react-native-calendars": "^1.1129.0",
"react-native-circular-progress": "^1.3.6",
"react-native-collapsible": "^1.5.3",
"react-native-conical-gradient-progress": "^1.0.0",
"react-native-device-info": "^8.0.1",
"react-native-event-listeners": "^1.0.7",
"react-native-expo-image-cache": "4.1.0",
"react-native-fbsdk": "^3.0.0",
"react-native-gesture-handler": "^1.9.0",
"react-native-gifted-chat": "^0.16.3",
"react-native-iap": "^5.2.3",
"react-native-iphone-x-helper": "^1.3.1",
"react-native-markdown-display": "^7.0.0-alpha.2",
"react-native-modal-datetime-picker": "^9.1.0",
"react-native-music-control": "^1.3.0",
"react-native-onboarding-component": "^0.0.5",
"react-native-progress-circle": "^2.1.0",
"react-native-reanimated": "^1.13.2",
"react-native-round-flags": "^1.0.4",
"react-native-safe-area-context": "^3.1.9",
"react-native-screens": "^2.16.1",
"react-native-scroll-bottom-sheet": "^0.7.0",
"react-native-size-matters": "^0.4.0",
"react-native-svg": "^12.1.0",
"react-native-swipe-gestures": "^1.0.5",
"react-native-timeline-flatlist": "^0.7.3",
"react-native-unimodules": "^0.12.0",
"react-native-vector-icons": "^8.0.0",
"react-native-webview": "^11.2.1",
"react-navigation": "4.4.3",
"react-navigation-drawer": "^2.6.0",
"react-navigation-stack": "^2.10.2",
"react-navigation-tabs": "^2.10.1",
"rn-apple-healthkit": "^0.8.0",
"tone": "^14.7.77",
"url": "^0.11.0"
}
}
Podfile:
$RNFirebaseAsStaticFramework = true
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
require_relative '../node_modules/react-native-unimodules/cocoapods.rb'
platform :ios, '11.0'
install! 'cocoapods', :deterministic_uuids => false
target 'myditation' do
use_unimodules!(exclude: ['expo-face-detector'])
config = use_native_modules!
use_react_native!(:path => config["reactNativePath"])
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
use_frameworks!
# Enables Flipper.
#
# Note that if you have use_frameworks! enabled, Flipper will not work and
# you should disable these next few lines.
# use_flipper!
# post_install do |installer|
# flipper_post_install(installer)
# end
post_install do |installer|
end
end
Environment - output of expo diagnostics & the platform(s) you’re targeting
Expo CLI 4.0.17 environment info:
System:
OS: macOS 11.1
Shell: 5.8 - /bin/zsh
Binaries:
Node: 15.5.0 - /usr/local/bin/node
Yarn: 1.22.10 - /usr/local/bin/yarn
npm: 7.3.0 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
Managers:
CocoaPods: 1.10.1 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 14.3, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2
Android SDK:
API Levels: 22, 23, 25, 26, 27, 28
Build Tools: 23.0.1, 23.0.3, 25.0.0, 25.0.1, 25.0.2, 25.0.3, 26.0.0, 26.0.1, 26.0.2, 27.0.3, 28.0.2, 28.0.3
System Images: android-28 | Google Play Intel x86 Atom
IDEs:
Android Studio: 3.5 AI-191.8026.42.35.5900203
Xcode: 12.3/12C33 - /usr/bin/xcodebuild
npmPackages:
react: 16.13.1 => 16.13.1
react-native: 0.63.4 => 0.63.4
react-navigation: 4.4.3 => 4.4.3
Expo Workflow: bare
Issue Analytics
- State:
- Created 3 years ago
- Comments:5 (4 by maintainers)
Top Related StackOverflow Question
Thanks for your very fast respionse @brentvatne. I’ve rolled back to a recent commit when it was still building without errors and then applied changes step by step to try and fix the build error.
I have also updated the Firebase dependencies, that doesn’t cause the
'FirebaseCore/FirebaseCore.h' file not founderror. This is caused by changingplatform :iosfrom10.0to11.0. So I changed it back to ‘10.0’, but thenpod installexits with an error. As a workaround I changeds.platform = :ios, '11.0'tos.platform = :ios, '10.0'in allEX*.podspecfiles innode_modules/expo-*.I think when using
EXPO_USE_SOURCE=1, it is okay to haves.platform = :ios, '10.0'?I’ve also had another look at my
expo-updatesconfiguration and noticed that the configuration instructions have changed to when I configured it when expo-updates was first released for the bare workflow. I have no Build Phase with the name Bundle React Native code and images., but instead Bundle Expo Assets. I think the original configuration instructions for expo-updates asked to rename the build phase. Anyhow, what should be the correct contents of that build step?i.e. are all 4 scripts still needed?
Thanks for your help
any update on this I am having the same issue.