如果您想保持启用 Parallelise Build 并避免缺少标头问题,请在您的方案中提供预构建步骤,以将反应标头放入派生数据区域。请注意,在这种情况下,构建设置来自 React 项目。是的,这不是一件美丽的事情,但它可以完成工作,还可以节省大量的构建时间。预构建步骤输出最终在 prebuild.log 中。您需要复制的确切标题将取决于您的项目 react-native 依赖项,但您将从中获得 jist。

从环境变量中获取派生数据目录并复制所需的反应标头。
#build_prestep.sh (chmod a+x)
derived_root=$(echo $SHARED_DERIVED_FILE_DIR|sed 's/DerivedSources//1')
react_base_headers=$(echo $PROJECT_FILE_PATH|sed 's#React.xcodeproj#Base/#1')
react_view_headers=$(echo $PROJECT_FILE_PATH|sed 's#React.xcodeproj#Views/#1')
react_modules_head=$(echo $PROJECT_FILE_PATH|sed 's#React.xcodeproj#Modules/#1')
react_netw_headers=$(echo $PROJECT_FILE_PATH|sed 's#React/React.xcodeproj#Libraries/Network/#1')
react_image_header=$(echo $PROJECT_FILE_PATH|sed 's#React/React.xcodeproj#Libraries/Image/#1')
echo derived root = ${derived_root}
echo react headers = ${react_base_headers}
mkdir -p ${derived_root}include/React/
find "${react_base_headers}" -type f -iname "*.h" -exec cp {} "${derived_root}include/React/" \;
find "${react_view_headers}" -type f -iname "*.h" -exec cp {} "${derived_root}include/React/" \;
find "${react_modules_head}" -type f -iname "*.h" -exec cp {} "${derived_root}include/React/" \;
find "${react_netw_headers}" -type f -iname "*.h" -exec cp {} "${derived_root}include/React/" \;
find "${react_image_header}" -type f -iname "*.h" -exec cp {} "${derived_root}include/React/" \;
该脚本确实在构建清理期间被调用 - 这并不理想。在我的情况下,有一个 env 变量会发生变化,让我在清理过程中尽早退出脚本。
if [ "$RUN_CLANG_STATIC_ANALYZER" != "NO" ] ; then
exit 0
fi