यदि आप पैरेललिस बिल्ड को सक्षम रखना चाहते हैं और हेडर की अनुपलब्ध समस्याओं से बचना चाहते हैं, तो अपनी स्कीम में एक प्री-बिल्ड स्टेप प्रदान करें ताकि रिएक्ट हेडरों को व्युत्पन्न-डेटा क्षेत्र में डाला जा सके। ध्यान दें कि बिल्ड सेटिंग्स इस मामले में रिएक्ट प्रोजेक्ट से आ रही हैं। हाँ, यह सुंदरता की बात नहीं है, लेकिन यह काम हो जाता है और बिल्ड से बहुत समय बचता है। 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/" \;
स्क्रिप्ट एक बिल्ड-क्लीन के दौरान आह्वान करती है - जो आदर्श नहीं है। मेरे मामले में एक ईएनवी वैरिएबल है जो एक साफ के दौरान मुझे स्क्रिप्ट से जल्दी बाहर निकलने देता है।
if [ "$RUN_CLANG_STATIC_ANALYZER" != "NO" ] ; then
exit 0
fi