-
Notifications
You must be signed in to change notification settings - Fork 11
Description
Old Version
0.72.10
New Version
0.73.5
Description
If you run pod install locally, running with a version of Xcode that is version 14.3.1 or newer, the checksum for the glog podspec will be different than when you do the same with an Xcode version older than 14.3.1.
The source is the following code:
https://github.com/facebook/react-native/blob/1387725aabd42e02646899a36a2f76731268191c/packages/react-native/third-party-podspecs/glog.podspec#L41-L42
These lines cause DEFINES_MODULE to flip between YES and NO in the generated podspec, which results in different checksums for the file.
The source of the checksum diff is from this PR:
facebook/react-native#41058
I don't think cocoapods has a good general answer to having lockfiles shared between Xcode versions (at least not with the level of dynamic code in podspec files that react-native – necessarily – uses).
So I'm not sure if there's actually a way to fix this. And I do think that having glog install work at all on Xcode pre-14.3.1 is more important than being able to share a Podfile.lock with consistent hashes between environments running very different versions of Xcode.
But creating this issue in any case to flag the problem.
Steps to reproduce
- Set up a fresh repo with react-native 0.73 or newer (with for instance Xcode 15.0).
- Run pod install and commit the lockfile.
- Push your code to CI or have a colleague pull your code (and say they are running Xcode 14.2 – the default on Github actions)
- Run pod install on that machine
- They will either get a diff in the Podfile.lock, or if running with
--deployment, get an install error, since checksums do not match
Affected Platforms
Build - MacOS
Output of npx react-native info
info Fetching system and libraries information...
System:
OS: macOS 13.6.4
CPU: (10) arm64 Apple M2 Pro
Memory: 520.89 MB / 16.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 20.10.0
path: ~/.nvm/versions/node/v20.10.0/bin/node
Yarn:
version: 1.22.19
path: /opt/homebrew/bin/yarn
npm:
version: 10.2.3
path: ~/.nvm/versions/node/v20.10.0/bin/npm
Watchman:
version: 2023.12.04.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.15.2
path: /Users/stiaje/.rbenv/shims/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 23.2
- iOS 17.2
- macOS 14.2
- tvOS 17.2
- visionOS 1.0
- watchOS 10.2
Android SDK:
API Levels:
- "23"
- "26"
- "27"
- "28"
- "29"
- "30"
- "31"
- "33"
Build Tools:
- 23.0.1
- 25.0.2
- 25.0.3
- 26.0.1
- 26.0.2
- 27.0.0
- 27.0.3
- 28.0.2
- 28.0.3
- 29.0.2
- 30.0.2
- 30.0.3
- 31.0.0
- 33.0.0
System Images:
- android-30 | Google APIs Intel x86 Atom
- android-31 | Google APIs Intel x86 Atom_64
Android NDK: Not Found
IDEs:
Android Studio: 2022.3 AI-223.8836.35.2231.11005911
Xcode:
version: 15.2/15C500b
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.6
path: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/javac
Ruby:
version: 3.0.6
path: /Users/stiaje/.rbenv/shims/ruby
npmPackages:
"@react-native-community/cli": Not Found
react:
installed: 18.2.0
wanted: 18.2.0
react-native:
installed: 0.73.5
wanted: 0.73.5
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: false
iOS:
hermesEnabled: true
newArchEnabled: false
Stacktrace or Logs
pod install --deployment
shell: /bin/bash -e {0}
Framework build type is static library
[Codegen] Generating ./build/generated/ios/React-Codegen.podspec.json
[Codegen] generating an empty RCTThirdPartyFabricComponentsProvider
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`
[Codegen] Found rncore
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`
Fetching podspec for `hermes-engine` from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`
[Hermes] Using release tarball from URL: https://repo1.maven.org/maven2/com/facebook/react/react-native-artifacts/0.73.5/react-native-artifacts-0.73.5-hermes-ios-debug.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 16.2M 100 16.2M 0 0 40.0M 0 --:--:-- --:--:-- --:--:-- 40.1M
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
97 12.3M 97 11.9M 0 0 35.7M 0 --:--:-- --:--:-- --:--:-- 35.7M
100 12.3M 100 12.3M 0 0 35.8M 0 --:--:-- --:--:-- --:--:-- 35.7M
Adding spec repo `trunk` with CDN `https://cdn.cocoapods.org/`
Verifying no changes
[!] There were changes to the lockfile in deployment mode:
SPEC CHECKSUMS:
glog:
New Lockfile: 035f1e36e53b355cf70f6434d161b36e7d21fecd
Old Lockfile: c5d68082e772fa1c511173d6b30a9de2c05a69a2
Reproducer
https://github.com/stianjensen/test-rn-73-glog-pod-install
Screenshots and Videos
No response