'EXDevMenu-Swift.h' file not found
#import <EXDevMenu-Swift.h>
After updating react-native-firebase
expo doctor
✔ Found all copies of expo-modules-autolinking
Expected package expo-modules-autolinking@~0.8.1
Found invalid:
expo-modules-autolinking@0.9.0
(for more info, run: npm why expo-modules-autolinking)
✔ Found all copies of @expo/config-plugins
All copies of @expo/config-plugins satisfy ^4.1.0
✔ Found all copies of @expo/prebuild-config
All copies of @expo/prebuild-config satisfy ^4.0.0
I am using expo 45.0.6 and the following plugins
"plugins": [
"@react-native-firebase/app",
["expo-build-properties", {"ios": {"useFrameworks": "dynamic"}}],
[
"expo-media-library",
{
"photosPermission": "Allow $(PRODUCT_NAME) to access your photos.",
"savePhotosPermission": "Allow $(PRODUCT_NAME) to save photos.",
"isAccessMediaLocationEnabled": true
}
]
]
We’re experiencing the exact same error while attempting to update to SDK 45 (specifically 45.0.5). However, we are not using react-native-firebase.
It’s originating in the expo-dev-menu pod’s EXDevMenuAppInfo.m file (node_modules/expo-dev-menu/ios/EXDevMenuAppInfo.m). Doesn’t look like there’s a EXDevMenu-Swift.h file anywhere in our project.
Our Expo Doctor returns free of issues. Here’s the error in Xcode
/Users/expo/workingdir/build/node_modules/expo-dev-menu/ios/EXDevMenuAppInfo.m:3:9: fatal error: 'EXDevMenu-Swift.h' file not found
#import <EXDevMenu-Swift.h>
^~~~~~~~~~~~~~~~~~~
We see the same error when downgrading to expo-dev-client@0.8.6 using a Expo bare app (in the process of upgrading from sdk 44 to sdk 45). Our Podfile uses the following use_frameworks configuration
use_frameworks! :linkage => :static
I’ve included our entire Podfile below in case it can be helpful
require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking")
require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods")
require File.join(File.dirname(`node --print "require.resolve('@react-native-community/cli-platform-ios/package.json')"`), "native_modules")
platform :ios, '12.0'
install! 'cocoapods', :deterministic_uuids => false
require 'json'
podfile_properties = JSON.parse(File.read('./Podfile.properties.json')) rescue {}
use_modular_headers!
use_frameworks! :linkage => :static
target 'Joro' do
use_expo_modules!
config = use_native_modules!
# Flags change depending on the env values.
flags = get_default_flags()
pod 'RNGoogleSignin', :path => '../node_modules/@react-native-google-signin/google-signin'
pod 'expo-dev-launcher', path: '../node_modules/expo-dev-launcher', :configurations => :debug
pod 'expo-dev-menu', path: '../node_modules/expo-dev-menu', :configurations => :debug
use_react_native!(
:path => config[:reactNativePath],
:hermes_enabled => flags[:hermes_enabled],
:fabric_enabled => flags[:fabric_enabled],
# An absolute path to your application root.
:app_path => "#{Pod::Config.instance.installation_root}/.."
)
# Uncomment to opt-in to using Flipper
#
# if !ENV['CI']
# use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3', 'Flipper-RSocket' => '1.3.1')
# end
post_install do |installer|
react_native_post_install(installer)
__apply_Xcode_12_5_M1_post_install_workaround(installer)
# Workaround `Cycle inside FBReactNativeSpec` error for react-native 0.64
# Reference: https://github.com/software-mansion/react-native-screens/issues/842#issuecomment-812543933
installer.pods_project.targets.each do |target|
if (target.name&.eql?('FBReactNativeSpec'))
target.build_phases.each do |build_phase|
if (build_phase.respond_to?(:name) && build_phase.name.eql?('[CP-User] Generate Specs'))
target.build_phases.move(build_phase, 0)
end
end
end
end
end
post_integrate do |installer|
begin
expo_patch_react_imports!(installer)
rescue => e
Pod::UI.warn e
end
begin
expo_patch_react_imports!(installer)
rescue => e
Pod::UI.warn e
end
begin
expo_patch_react_imports!(installer)
rescue => e
Pod::UI.warn e
end
end
end