[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:closed
  • Created 3 years ago
  • Comments:5 (4 by maintainers)

github_iconTop GitHub Comments

3reactions
redpandatronicsukcommented, Jan 27, 2021

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 found error. This is caused by changing platform :ios from 10.0 to 11.0. So I changed it back to ‘10.0’, but then pod install exits with an error. As a workaround I changed s.platform = :ios, '11.0' to s.platform = :ios, '10.0' in all EX*.podspec files in node_modules/expo-*.

I think when using EXPO_USE_SOURCE=1, it is okay to have s.platform = :ios, '10.0'?

I’ve also had another look at my expo-updates configuration 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?

../node_modules/expo-updates/bundle-expo-assets.sh
../node_modules/react-native/scripts/react-native-xcode.sh
../node_modules/expo-constants/scripts/get-app-config-ios.sh
../node_modules/expo-updates/scripts/create-manifest-ios.sh

i.e. are all 4 scripts still needed?

Thanks for your help

0reactions
reyanshmishracommented, Oct 15, 2022

any update on this I am having the same issue.

Read more comments on GitHub >

github_iconTop Results From Across the Web

No results found

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found