Якщо ви хочете увімкнути паралельну збірку і уникнути відсутніх проблем із заголовком, то передбачте крок попередньої збірки у вашій схемі, щоб помістити заголовки реакцій у область похідних даних. Зверніть увагу, що в цьому випадку налаштування збірки надходять від проекту React. Так, це не є красивою справою, але вона виконує роботу, а також голить багато часу на складі. Вихідний крок попереднього збирання закінчується в prebuild.log. Точні заголовки, які вам потрібно буде скопіювати, залежатимуть від залежних від вашого проекту реакцій, але ви отримаєте суть від цього.
Отримайте похідний каталог даних зі змінних оточення та скопіюйте потрібні заголовки реакцій.
#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