expo / expo

An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web.
https://docs.expo.dev
MIT License
34.24k stars 5.48k forks source link

lottie causing iOS build failure when upgrading to Expo 43 #14704

Closed haibert closed 3 years ago

haibert commented 3 years ago

Summary

I am trying to update to expo v43 and iOS is failing with the following error.

Installing pods
Using Expo modules
Auto-linking React Native modules for target `Stacksharetest`: RNCAsyncStorage, RNCMaskedView, RNDateTimePicker, RNFastImage, RNGestureHandler, RNReanimated, RNSVG, RNScreens, RNSharedElement, RNStaticSafeAreaInsets, RNVectorIcons, expo-dev-client, expo-dev-launcher, expo-dev-menu, expo-dev-menu-interface, lottie-react-native, react-native-blur, react-native-date-picker, react-native-safe-area-context, and react-native-view-shot
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.2 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.2
[!] CocoaPods could not find compatible versions for pod "lottie-ios":
  In snapshot (Podfile.lock):
    lottie-ios (= 3.1.9, ~> 3.1.8)
  In Podfile:
    lottie-react-native (from `../node_modules/lottie-react-native`) was resolved to 4.0.3, which depends on
      lottie-ios (~> 3.2.3)
You have either:
 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
 * changed the constraints of dependency `lottie-ios` inside your development pod `lottie-react-native`.
   You should run `pod update lottie-ios` to apply changes you've made.
[stderr] [!] `<PBXResourcesBuildPhase UUID=`13B07F8E1A680F5B00A75B9A`>` attempted to initialize an object with an unknown UUID. `0F9DBD2FF5B04E24ADDD626D` for attribute: `files`. This can be the result of a merge and the unknown UUID is being discarded.
Error: Compatible version 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 "cache.key" field (it can be set to any value) 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.

Managed or bare workflow? If you have made manual changes inside of the ios/ or android/ directories in your project, the answer is bare!

managed

What platform(s) does this occur on?

iOS

Package versions


{
    "main": "node_modules/expo/AppEntry.js",
    "scripts": {
        "start": "expo start",
        "android": "expo start --android",
        "ios": "expo start --ios",
        "web": "expo start --web",
        "eject": "expo eject"
    },
    "dependencies": {
        "@expo-google-fonts/poppins": "^0.2.0",
        "@expo/vector-icons": "^12.0.0",
        "@gorhom/bottom-sheet": "4.0.0-alpha.25",
        "@motify/skeleton": "^0.16.0",
        "@react-native-async-storage/async-storage": "~1.15.0",
        "@react-native-community/blur": "^3.6.0",
        "@react-native-community/datetimepicker": "3.5.2",
        "@react-native-community/masked-view": "0.1.10",
        "@react-navigation/bottom-tabs": "5.x",
        "@react-navigation/drawer": "^5.x",
        "@react-navigation/native": "^5.x",
        "@react-navigation/stack": "^5.x",
        "chroma-js": "^2.1.2",
        "eslint": "^7.32.0",
        "eslint-config-airbnb": "^18.2.1",
        "eslint-plugin-import": "^2.24.2",
        "eslint-plugin-jsx-a11y": "^6.4.1",
        "eslint-plugin-react": "^7.26.1",
        "eslint-plugin-react-native": "^3.11.0",
        "expo": "^43.0.0-beta.3",
        "expo-app-loading": "1.1.4",
        "expo-application": "~4.0.0",
        "expo-av": "~10.1.0",
        "expo-barcode-scanner": "~11.1.0",
        "expo-camera": "~12.0.1",
        "expo-constants": "~12.1.0",
        "expo-dev-client": "~0.6.0",
        "expo-device": "~4.0.1",
        "expo-file-system": "~13.0.1",
        "expo-font": "~10.0.1",
        "expo-haptics": "~11.0.1",
        "expo-image-manipulator": "~10.1.0",
        "expo-image-picker": "~11.0.1",
        "expo-linear-gradient": "~10.0.1",
        "expo-media-library": "~13.0.1",
        "expo-notifications": "~0.13.1",
        "expo-sqlite": "~10.0.1",
        "expo-status-bar": "~1.1.0",
        "expo-task-manager": "~10.0.1",
        "expo-updates": "~0.10.2",
        "formik": "^2.2.9",
        "lottie-react-native": "4.0.3",
        "moment": "^2.29.1",
        "moti": "^0.16.0",
        "react": "17.0.1",
        "react-dom": "17.0.1",
        "react-native": "0.64.2",
        "react-native-big-list": "1.4.2",
        "react-native-console-time-polyfill": "^1.2.3",
        "react-native-date-picker": "^3.3.2",
        "react-native-elements": "^3.3.2",
        "react-native-fast-image": "^8.5.11",
        "react-native-gesture-handler": "~1.10.2",
        "react-native-paper": "^4.9.2",
        "react-native-qrcode-svg": "^6.1.1",
        "react-native-reanimated": "~2.2.0",
        "react-native-redash": "16.2.0",
        "react-native-safe-area-context": "3.3.2",
        "react-native-screens": "~3.8.0",
        "react-native-shared-element": "0.8.2",
        "react-native-static-safe-area-insets": "^2.1.1",
        "react-native-svg": "12.1.1",
        "react-native-vector-icons": "^8.1.0",
        "react-native-view-shot": "3.1.2",
        "react-native-web": "0.17.1",
        "react-native-windows": "^0.64.3",
        "react-navigation-shared-element": "^3.1.2",
        "react-redux": "^7.2.4",
        "recyclerlistview": "^3.0.5",
        "redux": "^4.1.1",
        "redux-devtools-extension": "^2.13.9",
        "redux-persist": "^6.0.0",
        "redux-thunk": "^2.3.0",
        "sentry-expo": "^4.0.0",
        "yup": "^0.32.9",
        "yup-phone": "^1.2.19"
    },
    "devDependencies": {
        "@babel/core": "~7.9.0",
        "eslint-plugin-react-hooks": "^4.2.0",
        "typescript": "~4.0.0"
    },
    "private": true
}

Environment

Expo CLI 4.12.1 environment info: System: OS: macOS 11.6 Shell: 5.8 - /bin/zsh Binaries: Node: 14.15.1 - /usr/local/bin/node Yarn: 1.22.10 - /usr/local/bin/yarn npm: 7.8.0 - /usr/local/bin/npm Watchman: 2021.10.04.00 - /usr/local/bin/watchman Managers: CocoaPods: 1.10.1 - /usr/local/bin/pod SDKs: iOS SDK: Platforms: iOS 15.0, DriverKit 20.4, macOS 11.3, tvOS 15.0, watchOS 8.0 IDEs: Android Studio: 4.1 AI-201.8743.12.41.6858069 Xcode: 13.0/13A233 - /usr/bin/xcodebuild npmPackages: expo: ^43.0.0-beta.3 => 43.0.0-beta.3 react: 17.0.1 => 17.0.1 react-dom: 17.0.1 => 17.0.1 react-native: 0.64.2 => 0.64.2 react-native-web: 0.17.1 => 0.17.1 npmGlobalPackages: expo-cli: 4.12.1 Expo Workflow: managed

Reproducible demo or steps to reproduce from a blank project

I will need to link my whole repo because its a build failure. https://github.com/haibert/sh43

Stacktrace (if a crash is involved)

No response

haibert commented 3 years ago
   "development": {
            "developmentClient": true,
            "distribution": "internal",
            "cache": {
                "key": "1"
            }
        }

adding cache.key to eas.json fixed the issue.