Jika Anda ingin tetap mengaktifkan Parallelise Build dan menghindari masalah header yang hilang, berikan langkah pra-build dalam skema Anda untuk meletakkan header react ke dalam area data turunan. Perhatikan pengaturan build berasal dari proyek React dalam kasus ini. Ya, itu bukan keindahan tetapi menyelesaikan pekerjaan dan juga menghemat banyak waktu untuk membangun. Output langkah prebuild berakhir di prebuild.log. Header pasti yang perlu Anda salin akan bergantung pada dependensi react-native project Anda, tetapi Anda akan mendapatkan jistnya dari sini.
Dapatkan direktori data turunan dari variabel lingkungan dan salin header react yang diperlukan.
#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/" \;
Skrip dipanggil selama build-clean - yang tidak ideal. Dalam kasus saya, ada satu variabel env yang berubah membiarkan saya keluar dari skrip lebih awal selama pembersihan.
if [ "$RUN_CLANG_STATIC_ANALYZER" != "NO" ] ; then
exit 0
fi