Si desea mantener la construcción paralela habilitada y evitar los problemas de encabezado que faltan, proporcione un paso previo a la compilación en su esquema para colocar los encabezados de reacción en el área de datos derivados. Observe que la configuración de compilación proviene del proyecto React en este caso. Sí, no es una cosa hermosa, pero hace el trabajo y también reduce mucho tiempo de las construcciones. La salida del paso previo a la compilación termina en prebuild.log. Los encabezados exactos que necesitará copiar dependerán de las dependencias nativas de reacción de su proyecto, pero obtendrá la esencia de esto.
Obtenga el directorio de datos derivados de las variables de entorno y copie los encabezados de reacción requeridos.
#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/" \;
El script se invoca durante una limpieza de compilación, lo que no es ideal. En mi caso, hay una variable env que cambia y me permite salir del script temprano durante una limpieza.
if [ "$RUN_CLANG_STATIC_ANALYZER" != "NO" ] ; then
exit 0
fi