使用按位“|” 与布尔操作数 | Xcode 14.3 使用 React-Native Yoga 构建失败

Mit*_*iya 88 xcode ios react-native xcode14

今天刚刚将我的 Xcode 更新到版本 14.3,构建失败,Yoga 文件中出现以下错误:

使用按位“|” 带有布尔操作数

看来我们的 iOS Yoga 软件包存在一些问题。我不想再回滚到较低版本。如果有人能帮助克服它,那就太好了。

我尝试删除缓存数据和派生数据并清理构建。也尝试删除 pod 和 node_modules。但没有任何帮助。

Mit*_*iya 148

我通过放置 2 个竖线“||”解决了这个问题 而不是一个“|” 在失败的代码中。

然后清除构建,现在在 Xcode 14.3 上运行良好。我希望这可以帮助别人。

编辑:

以上是临时解决方案。通过使用以下解决方案,我们不需要对每个 npm 安装进行更改。这是@Carl G建议的。@ Mykola Odnosumov在此线程中的解决方案也很有帮助,它是类似的解决方案。谢谢@Carl G 和@Mykola Odnosumov

https://github.com/facebook/react-native/issues/36758#issuecomment-1496210081

  1. 安装补丁包https://github.com/ds300/patch-package
  2. 像这样修改源代码 commit 52d8a79
  3. 跑步npx patch-package react-native
  4. 提交您的更改。完毕。

  • 这是一个很好的临时解决方案,但对我来说,它每隔一段时间就会返回一个“|”(我认为在每个 Pod 安装之后)。有没有更好的、永久的解决方案? (2认同)
  • 只需更新“|” 到“||” 在 Yoga.cpp (行:2232)中就可以了 (2认同)

小智 45

一般的

此问题已在 Yoga v1.19.0 中修复

查看2022 年 4 月 12 日的提交,以及2021 年 5 月 21 日发布的 v1.19.0

怎么修

  1. 如果可能的话,将 Yoga 包更新到 v1.19.0。
  2. 用于patch-package简化开发
    1. 通过调用将postinstall脚本添加到文件package.jsonpatch-package
    2. 编辑react-native/ReactCommon/yoga/yoga/Yoga.cpp以修复使用不正确的运算符的问题
    3. 执行npx patch-package react-native生成.patch文件
    4. 确保将patches/目录添加到 git

  • 请注意,如果您不使用独立的 Yoga(意味着它是一个依赖项),则将没有 1.19.0 可供使用。另外,似乎 Yoga 的最新 podspec 仍然是 1.14.0,即使在标记为 1.19.0 的版本上也是如此,所以不确定这是否是他们的 github 上的错误? (6认同)