我的 React Native 应用程序正在多台 macOS 计算机上构建。最近,我遇到了其中一个问题,因为在 pod 安装过程中构建开始失败。
pod install --deployment
在所有服务器(有问题的服务器除外)上,上述命令成功安装了所需的 Pod,并且 Podfile.lock 文件保持不变,但在其中一台服务器上我得到:
[!] There were changes to the podfile in deployment mode:
M hermes-engine
Podfile.lock确实被修改并包含以下内容:
hermes-engine:
:podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
:tag: ''
而文件的原始内容是:
hermes-engine:
:podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
:tag: hermes-2023-08-07-RNv0.72.4-813b2def12bc9df02654b3e3653ae4a68d0572e0
在
tag
期间从该文件中删除 pod install
值可能是什么原因?
更新:
所有构建服务器都安装了相同的工具:
工具 | Mac1(好) | Mac2(好) | Mac3(有问题) |
---|---|---|---|
操作系统 | macOS 13.6 | macOS 13.3.1 | macOS 13.4.1 |
外壳 | 5.9 | 5.9 | 5.9 |
节点 | 18.17.1 | 18.17.0 | 18.17.1 |
纱线 | 2019年1月22日 | 2019年1月22日 | 2019年1月22日 |
npm | 9.6.7 | 9.6.7 | 9.6.7 |
可可豆荚 | 1.12.1 | 1.12.1 | 1.12.1 |
Xcode | 14.3.1 | 14.3 | 14.3.1 |
Java | 17.0.7 | 17.0.7 | 17.0.8 |
红宝石 | 2.6.10 | 2.6.10 | 2.6.10 |
我们过去遇到过类似的问题,并花了一些努力来确定根本原因。最终,问题源于我们服务器上安装的不同版本的工具。
要诊断此问题,您可以使用终端比较以下工具的版本:
xcodebuild -version
pod --version
node -v
另请检查 cocoapods 补丁版本:
gem list cocoapods-patch
通过比较这些版本,您可能会发现差异。这强调了为大型项目维护标准化工具集的重要性。通常,此类标准记录在 README.md 文件中,所有团队成员遵守此通用工具集以确保一致性至关重要。