Если вы хотите, чтобы Parallelise Build оставался включенным и избегал проблем с отсутствующими заголовками, укажите в своей схеме этап предварительной сборки, чтобы поместить заголовки реакции в область производных данных. Обратите внимание, что в этом случае настройки сборки берутся из проекта React. Да, в этом нет ничего прекрасного, но он выполняет свою работу, а также экономит много времени на сборках. Выходные данные шага предварительной сборки попадают в файл prebuild.log. Точные заголовки, которые вам нужно скопировать, будут зависеть от зависимостей вашего проекта, связанных с реакцией, но вы получите 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