Xcode在編譯時(shí),Library / Header Search Paths是一定會(huì)去搜索的。而User Header Search Paths只有在Always Search User Paths為Yes時(shí)才會(huì)被搜索。
Project的Building Settings中得設(shè)置默認(rèn)并不被Targets繼承,只有當(dāng)Targets的設(shè)置加入了$(inherited)時(shí)才被繼承,添加目錄的時(shí)候?qū)懮?“$(inherited)” 就表示從frameworks里面讀取。
一種很常見的情況, 我建一個(gè)工程運(yùn)行正常,但是把工程發(fā)給別人就會(huì)出現(xiàn)這個(gè)錯(cuò)誤,這也是XcodeSearchPath的相對(duì)路徑和絕對(duì)路徑導(dǎo)致的。
所以在修改Library /HeaderSearch Paths這個(gè)選項(xiàng)的時(shí)候使用:"$(SRCROOT)/當(dāng)前工程名字/需要包含頭文件所在文件夾"
將上面的雙引號(hào)里面的字符串拷貝之后,你會(huì)發(fā)現(xiàn)這個(gè)“$(SRCROOT)”,會(huì)自動(dòng)變成當(dāng)前工程所以的目錄。這樣就可以了,發(fā)給別人,別人也不用在去修改路徑了。
注:
$(SRCROOT)代表的是項(xiàng)目根目錄下
$(PROJECT_DIR)代表的是整個(gè)項(xiàng)目
往項(xiàng)目添加文件時(shí),例如.a等,要先show in finder ,復(fù)制到項(xiàng)目中,然后再拖到xcode項(xiàng)目中
而有時(shí),我們的.a不在工程目錄中,比如在工程的父目錄上,可以寫成:$(SRCROOT)/../YSKit/libWeChatSDK。其中/../ 就是指向父目錄。
左邊的animationDemo是PROJECT_DIR
右邊的animationDemo是SRCROOT