Xcode Cloud与Bitrise CI/CD构建失败:布尔操作数误用位运算符'|'
解决React Native iOS构建中Yoga的位运算编译错误
这个报错是因为Yoga源码里用了位运算符|处理布尔值,而Xcode默认把这个警告当成错误(-Werror)来处理了,试试下面几个在CI/CD里解决的办法:
方法1:通过Podfile禁用对应警告
修改项目的Podfile,添加post_install钩子来给Yoga目标关闭这个警告:
post_install do |installer| installer.pods_project.targets.each do |target| if ['Yoga', 'YogaKit'].include?(target.name) target.build_configurations.each do |config| config.build_settings['OTHER_CFLAGS'] ||= [] config.build_settings['OTHER_CFLAGS'] << "-Wno-bitwise-instead-of-logical" end end end end
修改后执行pod install,Bitrise里如果有Run CocoaPods install步骤会自动处理,或者你可以在流水线里加个脚本步骤先跑pod install。
方法2:直接修改Yoga源码临时修复
在Bitrise流水线里,在构建步骤之前加一个Script步骤,用sed替换报错的代码行:
sed -i '' 's/return isHorizontal | isVertical;/return isHorizontal || isVertical;/g' node_modules/react-native/ReactCommon/yoga/yoga/Yoga.cpp
这行命令直接把错误里的位或|改成逻辑或||,从根源上消除警告。
方法3:升级React Native版本
这个问题在较新的React Native稳定版(比如0.70及以上)里已经被官方修复了,如果你能升级RN版本,一劳永逸解决这个问题。
内容的提问来源于stack exchange,提问作者sandeepa dilshan
相关产品推荐
相关产品推荐

