Hab*_*man 8 build ios cocoapods react-native expo
我正在尝试从 expo 托管项目构建 iOS 应用程序(模拟器)。构建在 Pod 安装步骤失败。
在 Expo SDK 44 中一切正常。但是当我升级到 SDK 45 甚至 46 时,我遇到了这个问题。
以下是来自 expo 服务器的一些日志:
跑博医生
Running "expo doctor"
- Finding all copies of expo-modules-autolinking
- Finding all copies of @expo/config-plugins
[stderr]
[02:48:23] Expected package @expo/config-plugins@^5.0.0
[stderr]
[02:48:23] Found invalid:
[stderr]
[02:48:23] @expo/config-plugins@4.1.5
[stderr]
[02:48:23] (for more info, run: npm why @expo/config-plugins)
- Finding all copies of @expo/prebuild-config
- Finding all copies of @unimodules/core
- Finding all copies of @unimodules/react-native-adapter
- Finding all copies of react-native-unimodules
[stderr]
[02:48:28] Some dependencies are incompatible with the installed expo package version:
[stderr]
[02:48:28] - react - expected version: 18.0.0 - actual version installed: 17.0.2
[stderr]
[02:48:28] - react-dom - expected version: 18.0.0 - actual version installed: 17.0.2
[stderr]
[02:48:28] - react-native - expected version: 0.69.4 - actual version installed: 0.68.2
[stderr]
[02:48:28] Your project may not work correctly until you install the correct versions of the packages.
[stderr]
To install the correct versions of these packages, please run: expo doctor --fix-dependencies,
[stderr]
or install individual packages by running expo install [package-name ...]
[stderr]
[02:48:31] Warning: Invalid version react-native@0.68.2 for expo sdkVersion 46.0.0. Use react-native@0.69.4
Command "expo doctor" failed.
bash exited with non-zero code: 1
Run Code Online (Sandbox Code Playgroud)
安装 Pod
Installing pods
Using Expo modules
Auto-generating `.xcode.env.local` with $NODE_BINARY=/Users/expo/.nvm/versions/node/v16.13.2/bin/node
Auto-linking React Native modules for target `Classima`: RNDateTimePicker, RNGestureHandler, RNReanimated, RNSVG, RNScreens, lottie-react-native, react-native-maps, react-native-netinfo, react-native-safe-area-context, react-native-slider, react-native-webview, and stripe-react-native
[Codegen] Generating ./build/generated/ios/React-Codegen.podspec.json
Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
[Codegen] Found FBReactNativeSpec
Fetching podspec for `RCT-Folly` from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`
Fetching podspec for `boost` from `../node_modules/react-native/third-party-podspecs/boost.podspec`
Fetching podspec for `glog` from `../node_modules/react-native/third-party-podspecs/glog.podspec`
Adding spec repo `trunk` with CDN `https://cdn.cocoapods.org/`
[!] CocoaPods could not find compatible versions for pod "RCT-Folly":
In snapshot (Podfile.lock):
RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
In Podfile:
RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
It seems like you've changed the version of the dependency `RCT-Folly` and it differs from the version stored in `Pods/Local Podspecs`.
You should run `pod update RCT-Folly --no-repo-update` to apply changes made locally.
Error: Compatible versions of some pods could not be resolved.
You are seeing this error because either:
- Versions in the Podfile.lock cached by EAS do not match required values for some of the libraries, it can be triggered when upgrading Expo SDK or any other library with native code. To fix that add the "cache.key" field (it can be set to any value) in the build profile in eas.json to invalidate the cache.
- Some of your npm packages have native code that depend on different versions of the same pod. Please see logs for more info.
Run Code Online (Sandbox Code Playgroud)
构建失败
Build failed: Compatible versions of some pods could not be resolved.
You are seeing this error because either:
- Versions in the Podfile.lock cached by EAS do not match required values for some of the libraries, it can be triggered when upgrading Expo SDK or any other library with native code. To fix that add the "cache.key" field (it can be set to any value) in the build profile in eas.json to invalidate the cache.
- Some of your npm packages have native code that depend on different versions of the same pod. Please see logs for more info.
Run Code Online (Sandbox Code Playgroud)
小智 8
我面临同样的问题,我尝试了“eas build -p ios --clear-cache”但没有任何改变。pod 安装时构建失败
这是日志:
Adding a custom script phase for Pod RNFBApp: [RNFB] Core Configuration
Auto-linking React Native modules for target `BallNConnect`: RNCAsyncStorage, RNCMaskedView, RNDateTimePicker, RNDeviceInfo, RNFBApp, RNFBFirestore, RNGestureHandler, RNReanimated, RNScreens, RNVectorIcons, lottie-ios, lottie-react-native, react-native-maps, and react-native-safe-area-context
Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
Fetching podspec for `RCT-Folly` from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`
Fetching podspec for `glog` from `../node_modules/react-native/third-party-podspecs/glog.podspec`
Adding spec repo `trunk` with CDN `https://cdn.cocoapods.org/`
CocoaPods 1.11.3 is available.
To update use: `sudo gem install cocoapods`
For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.11.3
[!] CocoaPods could not find compatible versions for pod "GoogleMaps":
In Podfile:
react-native-google-maps (from `/Users/expo/workingdir/build/node_modules/react-native-maps`) was resolved to 0.29.4, which depends on
Google-Maps-iOS-Utils (= 2.1.0) was resolved to 2.1.0, which depends on
GoogleMaps
react-native-google-maps (from `/Users/expo/workingdir/build/node_modules/react-native-maps`) was resolved to 0.29.4, which depends on
GoogleMaps (= 3.5.0)
CocoaPods could not find compatible versions for pod "nanopb":
In Podfile:
EXFirebaseCore (from `../node_modules/expo-firebase-core/ios`) was resolved to 4.1.1, which depends on
Firebase/Core (= 7.7.0) was resolved to 7.7.0, which depends on
FirebaseAnalytics (= 7.7.0) was resolved to 7.7.0, which depends on
nanopb (~> 2.30907.0)
RNFBFirestore (from `../node_modules/@react-native-firebase/firestore`) was resolved to 12.9.3, which depends on
Firebase/Firestore (= 8.8.0) was resolved to 8.8.0, which depends on
FirebaseFirestore (~> 8.8.0) was resolved to 8.8.0, which depends on
nanopb (~> 2.30908.0)
[stderr] [!] `<PBXResourcesBuildPhase UUID=`13B07F8E1A680F5B00A75B9A`>` attempted to initialize an object with an unknown UUID. `6D6F16C9EE89401295D6CEB6` for attribute: `files`. This can be the result of a merge and the unknown UUID is being discarded.
Error: Compatible versions of some pods could not be resolved.
You are seeing this error because either:
- Versions in the Podfile.lock cached by EAS do not match required values in Podspecs of some of the libraries. To fix that add the "cache.key" field (it can be set to any value) in the build profile in eas.json to invalidate the cache.
- Some of the pods used in your project depend on different versions of the same pod. See logs for more information.```
Run Code Online (Sandbox Code Playgroud)