用M1升级React Native后.经常得到CompileC clang错误.Intermediates.noinde



将React Native升级到68.6并切换回任何分支后。经常得到CompileC clang错误。我经常在安装新包或使用react native从一个版本升级到另一个版本时看到这个错误。

一些pod使用了错误的目标版本,但在构建时不是这样。

我试过的步骤:

  1. 在xcode和visual studio中切换目标版本。它似乎有些东西被缓存在xcode或模拟器
  2. 使用我的clean start命令的各个部分,别名为
watchman watch-del-all && killall -9 node && rm -rf yarn.lock package-lock.json node_modules ios/Pods ios/Podfile.lock android/app/build && npm install && cd ios && pod update && cd .. && npm start -- --reset-cache"
  1. 使用pod deintegrate, pod setup, pod init命令。各种pod缓存清理命令
  2. 完全移除expo模块,因为它在过去似乎是相关的。Xcode似乎仍然持有一些博览会模块相关的代码。
  3. 等待索引|构建前处理完成
  4. 清理xcode, xcodebuild clean, rm -rf ios/build
  5. 关闭模拟器,重新启动mac,使用kill模拟器命令,如xcrun simctl shutdown all xcrun simctl erase allsudo killall -9 com.apple.CoreSimulator.CoreSimulatorService
  6. 使用patch-package
  7. 将被排除的架构更改为arm64,并在xcode中再次返回
  8. 用Rosetta打开xcode或终端,xcode 14.3似乎通过模拟器的内部设置来实现这一点。
2023-04-04 09:19:19.164 xcodebuild[87551:1680692] DVTCoreDeviceEnabledState: DVTCoreDeviceEnabledState_Disabled set via user default (DVTEnableCoreDevice=disabled)
--- xcodebuild: WARNING: Using the first of multiple matching destinations:
{ platform:iOS Simulator, id:BE127B8C-C1DA-4AE9-B3DB-101C76E645FE, OS:16.4, name:iPhone 13 }
{ platform:iOS Simulator, id:BE127B8C-C1DA-4AE9-B3DB-101C76E645FE, OS:16.4, name:iPhone 13 }
** BUILD FAILED **

The following build commands failed:
CompileC /Users/me/repositories/MyMobileApp/ios/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/Yoga.build/Objects-normal/arm64/Yoga.o /Users/me/repositories/MyMobileApp/node_modules/react-native/ReactCommon/yoga/yoga/Yoga.cpp normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'Yoga' from project 'Pods')
(1 failure)

这并不是这个Yoga.cpp所独有的,这似乎与包无关。我用的是Xcode 14.3。Android构建得很好,我通常可以很容易地解决任何与Android相关的问题。这似乎是模拟器/pod/xcode相关,但我还没有,经过所有这些问题解决后,能够找到一个确切的罪魁祸首。在过去,我已经关闭了一些东西,有时它只是运行一些步骤后工作。我不记得是哪一步解决了这个问题。在管道中构建这个分支,我之前已经构建过这个分支,但是从不同的升级分支切换到不同的包或版本的react或涉及任何原生ios更改或pod更新的包,然后切换回来似乎完全搞砸了我的模拟器。

这似乎是相关的瑜伽帖子,但只有当从一个较新的react native项目转移到master ->出现上述错误按位使用'|'布尔操作数

在所有故障排除后,这似乎解决了它。只是修改和保存它。不需要patch-package。至少在当地是这样。似乎与Xcode 14.3相关。按位使用'|'布尔操作数