Parallelise Build를 활성화 된 상태로 유지하고 누락 된 헤더 문제를 방지하려면, 반응 헤더를 파생 데이터 영역에 배치하는 사전 빌드 단계를 스키마에 제공하십시오. 이 경우 빌드 설정이 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