[iOS] FBReactNativeSpec pod checksum is not stable (RN 0.64.0)
See original GitHub issueDescription
The SPEC CHECKSUM
for FBReactNativeSpec
in ios/Podfile.lock
varies between development machines. This is caused by local paths in the output of pod ipc spec FBReactNativeSpec.podspec
, such as output_files
and prepare_command
. This causes the Podfile.lock to constantly change when pod install
is run on different developers’ machines.
React Native version: 0.64.0
This happens for a clean install of React Native 0.64.0. Previous versions are not affected (pod ipc spec
does not include local paths).
System:
OS: macOS 11.2.3
CPU: (16) x64 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
Memory: 5.41 GB / 32.00 GB
Shell: 5.8 - /bin/zsh
Binaries:
Node: 14.15.5 - /var/folders/tq/3s__skh57_300l201pdk9gjh0000gn/T/yarn--1616135350751-0.5787894354182639/node
Yarn: 1.22.0 - /var/folders/tq/3s__skh57_300l201pdk9gjh0000gn/T/yarn--1616135350751-0.5787894354182639/yarn
npm: 6.14.11 - ~/.nvm/versions/node/v14.15.5/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
Managers:
CocoaPods: 1.10.1 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 14.4, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2
Android SDK:
API Levels: 28, 29
Build Tools: 28.0.3, 29.0.2, 29.0.3, 30.0.0
System Images: android-21 | Google APIs ARM EABI v7a, android-21 | Google APIs Intel x86 Atom, android-29 | Google Play Intel x86 Atom
Android NDK: Not Found
IDEs:
Android Studio: 4.1 AI-201.8743.12.41.7042882
Xcode: 12.4/12D4e - /usr/bin/xcodebuild
Languages:
Java: 1.8.0_252 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: 17.0.1 => 17.0.1
react-native: 0.64.0 => 0.64.0
react-native-macos: Not Found
npmGlobalPackages:
*react-native*: Not Found
✨ Done in 4.48s.
Steps To Reproduce
npx react-native init TestProject
cd TestProject/ios && pod install
ios/Podfile.lock
now has a checksum that matches pod ipc spec FBReactNativeSpec.podspec | openssl sha1
in node_modules/react-native/React/FBReactNativeSpec
, and pod ipc spec FBReactNativeSpec.podspec
contains local paths, such as:
{
"script_phases": {
"name": "Generate Specs",
"input_files": [
"/Users/thaapasa/rn/PodTestProject/node_modules/react-native/scripts/../Libraries"
],
"output_files": [
"$(DERIVED_FILE_DIR)/codegen-FBReactNativeSpec.log",
"/Users/thaapasa/rn/PodTestProject/node_modules/react-native/scripts/../React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h",
"/Users/thaapasa/rn/PodTestProject/node_modules/react-native/scripts/../React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm"
],
"script": "set -o pipefail\n\nbash -l -c 'SRCS_DIR=/Users/thaapasa/rn/PodTestProject/node_modules/react-native/scripts/../Libraries CODEGEN_MODULES_OUTPUT_DIR=/Users/thaapasa/rn/PodTestProject/node_modules/react-native/scripts/../React/FBReactNativeSpec/FBReactNativeSpec CODEGEN_MODULES_LIBRARY_NAME=FBReactNativeSpec /Users/thaapasa/rn/PodTestProject/node_modules/react-native/scripts/generate-specs.sh' 2>&1 | tee \"${SCRIPT_OUTPUT_FILE_0}\"",
"execution_position": "before_compile",
"show_env_vars_in_log": true
},
"prepare_command": "mkdir -p /Users/thaapasa/rn/PodTestProject/node_modules/react-native/scripts/../React/FBReactNativeSpec/FBReactNativeSpec && touch /Users/thaapasa/rn/PodTestProject/node_modules/react-native/scripts/../React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h /Users/thaapasa/rn/PodTestProject/node_modules/react-native/scripts/../React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm"
}
Expected Results
pod ipc spec FBReactNativeSpec.podspec
should give identical output on different developer machines; i.e. not containing absolute local paths.
Snack, code example, screenshot, or link to a repository:
Issue Analytics
- State:
- Created 3 years ago
- Reactions:51
- Comments:17
Top GitHub Comments
We are also still running into this issue with our team, and are constantly ping-ponging changes to our
Podfile.lock
with just this one line.For reference, this is what I now run to fix this bug (and a bug with nvm) in yarn postinstall script: