Error with `pod install` using Expo 42 & `use_frameworks!`
See original GitHub issueSummary
Enabling use_frameworks!
with Expo 42 in a bare workflow causes pod install
to fail because @unimodules/core
includes statically linked binaries.
Managed or bare workflow? If you have ios/
or android/
directories in your project, the answer is bare!
bare
What platform(s) does this occur on?
iOS
SDK Version (managed workflow only)
No response
Environment
Expo CLI 4.9.1 environment info:
System:
OS: macOS 11.4
Shell: 5.8 - /bin/zsh
Binaries:
Node: 12.22.1 - ~/.nvm/versions/node/v12.22.1/bin/node
Yarn: 1.19.1 - /usr/local/bin/yarn
npm: 6.14.10 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
Managers:
CocoaPods: 1.10.2 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 14.5, DriverKit 20.4, macOS 11.3, tvOS 14.5, watchOS 7.4
Android SDK:
API Levels: 23, 25, 26, 27, 28, 29
Build Tools: 23.0.1, 23.0.2, 25.0.2, 27.0.3, 28.0.0, 28.0.2, 28.0.3, 29.0.1, 29.0.2
System Images: android-26 | Google APIs Intel x86 Atom
IDEs:
Android Studio: 4.0 AI-193.6911.18.40.6626763
Xcode: 12.5.1/12E507 - /usr/bin/xcodebuild
npmPackages:
expo: ~42.0.1 => 42.0.3
react: 16.13.1 => 16.13.1
react-dom: 16.13.1 => 16.13.1
react-native: ~0.63.4 => 0.63.4
react-native-web: ~0.13.12 => 0.13.18
npmGlobalPackages:
expo-cli: 4.9.1
Expo Workflow: bare
Reproducible demo or steps to reproduce from a blank project
Demo project created using the steps below: https://github.com/carsondarling/expo42_use_frameworks_error_demo
Steps to Reproduce
expo init --npm --template bare-minimum
- Update Podfile to enable
use_frameworks!
:
# ios/Podfile
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/react-native-unimodules/cocoapods.rb'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
platform :ios, '11.0'
target 'expo42useframeworkserrordemo' do
use_frameworks!
use_unimodules!
config = use_native_modules!
use_react_native!(:path => config["reactNativePath"])
# 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')
# post_install do |installer|
# flipper_post_install(installer)
# end
# end
end
cd ios && pod install
- Pod install fails with the following error:
[!] The 'Pods-expo42useframeworkserrordemo' target has transitive dependencies that include statically linked binaries: (/Users/cdarling/Workspace/expo42_use_frameworks_error_demo/node_modules/@unimodules/core/ios/UMCore.xcframework)
Ignoring digest-crc-0.6.3 because its extensions are not built. Try: gem pristine digest-crc --version 0.6.3
Installing unimodules:
expo-application@3.2.0 from ../node_modules/expo-application/ios
expo-constants@11.0.1 from ../node_modules/expo-constants/ios
expo-error-recovery@2.2.0 from ../node_modules/expo-error-recovery/ios
expo-file-system@11.1.3 from ../node_modules/expo-file-system/ios
expo-font@9.2.1 from ../node_modules/expo-font/ios
expo-image-loader@2.2.0 from ../node_modules/expo-image-loader/ios
expo-keep-awake@9.2.0 from ../node_modules/expo-keep-awake/ios
expo-modules-core@0.2.0 from ../node_modules/expo-modules-core/ios
expo-splash-screen@0.11.2 from ../node_modules/expo-splash-screen/ios
expo-structured-headers@1.1.1 from ../node_modules/expo-structured-headers/ios
expo-updates@0.8.3 from ../node_modules/expo-updates/ios
expo-updates-interface@0.2.2 from ../node_modules/expo-updates-interface/ios
unimodules-app-loader@2.2.0 from ../node_modules/unimodules-app-loader/ios
unimodules-core@7.1.1 from ../node_modules/@unimodules/core/ios
unimodules-react-native-adapter@6.3.5 from ../node_modules/@unimodules/react-native-adapter/ios
unimodules-task-manager-interface@6.2.0 from ../node_modules/unimodules-task-manager-interface/ios
Auto-linking React Native modules for target `expo42useframeworkserrordemo`: RNGestureHandler, RNReanimated, and RNScreens
Analyzing dependencies
Downloading dependencies
[!] The 'Pods-expo42useframeworkserrordemo' target has transitive dependencies that include statically linked binaries: (/Users/cdarling/Workspace/expo42_use_frameworks_error_demo/node_modules/@unimodules/core/ios/UMCore.xcframework)
Issue Analytics
- State:
- Created 2 years ago
- Reactions:2
- Comments:17 (6 by maintainers)
Top Results From Across the Web
Add Expo to an existing project
Learn how to add Expo SDK to an existing React Native project. ... To use Expo modules in your app, you will need...
Read more >target has transitive dependencies that include statically ...
Enabling use_frameworks! with Expo 42 in a bare workflow causes pod install to fail because @unimodules/core includes statically linked binaries.
Read more >Swift pods cannot yet be integrated as static libraries ...
I got this error message when doing " pod install " or " pod install --repo-update " or " pod update " and...
Read more >Pod install failed using "expo run:ios : r/reactnative - Reddit
Pod install failed using "expo run:ios · Did you recently update your expo SDK? · Try upgrading your firebase libraries (whatever your using)...
Read more >Introducing Istio Service Mesh for Microservices [Book] - O'Reilly
In the past, developers have often tried to use frameworks (EJBs, CORBA, ... This provides autoremoval of error-prone pods from the load-balancing pool....
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Hey @carsondarling 👋 Thanks for reporting this issue to us and I apologize this is the case for you 🙇 Looks like it’s related to the prebuilt binary of unimodules core, so the solution might be to compile the package from sources. There are two ways to do this:
$ExpoUseSources = ['@unimodules/core']
somewhere at the top of your podfile (if it still breaks for another package then you can add it there too).EXPO_USE_SOURCE=1 pod install
which entirely opts-out from using the prebuilt binaries from.xcframework
filesIt’s definitely not a long-term solution, but I’d appreciate if you can let me know if that helps, at least for now 🙂
Hey all! #14523 is going to fix these problems, we will keep you informed here 🙂 cc @Kudo