自己寫的庫(kù)需要引用第三方的library,咋整?
s.vendored_libraries = 'YourPod/Lib/**/*.a'
就這?!那我還記錄個(gè)啥。。。
通過(guò)vendored_libraries引入,僅會(huì)在library search path中添加library。但是頭文件并不會(huì)自動(dòng)引入。代碼中引用該library會(huì)提示找不到文件。
需要通過(guò)配置xcconfig的HEADER_SEARCH_PATHS屬性,指定library header所在的位置:
s.pod_target_xcconfig = { 'HEADER_SEARCH_PATHS' => '${PODS_ROOT}/YourPod/YourPod/Lib/include/**'}
配置完HEADER_SEARCH_PATHS后又發(fā)現(xiàn)個(gè)問(wèn)題,這個(gè)值是寫入到Pods項(xiàng)目 > YourPod的Target > Build Settings > HEADER SEARCH PATHS 內(nèi)的,用于Pods項(xiàng)目編譯你的YourPod庫(kù)時(shí)找到你的library頭文件,但是!這tm是個(gè)絕對(duì)地址。
這個(gè)地址分為兩種情況:
開發(fā)你的pod代碼庫(kù)時(shí):
一般情況都是用pod lib create YourPod 命令創(chuàng)建pod庫(kù),里面會(huì)生成YourPod源碼文件夾,還會(huì)生成Example項(xiàng)目用于調(diào)試,YourPod源碼文件夾和Example是在同一級(jí)目錄的,YourPod源碼(包含你的library)在Pods項(xiàng)目?jī)?nèi)編譯時(shí),YourPod源文件相對(duì)于Pods項(xiàng)目的路徑為:'${PODS_ROOT}/../../YourPod',所以podspec內(nèi)編輯:
s.pod_target_xcconfig = { 'HEADER_SEARCH_PATHS' => '${PODS_ROOT}/../../YourPod/Lib/include/**'}
完成pod后正式引用時(shí):
YourPod原代碼會(huì)通過(guò)git下載到Pods項(xiàng)目文件夾內(nèi),YourPod源碼(包含你的library)在Pods項(xiàng)目?jī)?nèi)編譯時(shí),YourPod源文件相對(duì)于Pods項(xiàng)目的路徑為:'${PODS_ROOT}/YourPod/YourPod',所以正式的podspec內(nèi)編輯:
s.pod_target_xcconfig = { 'HEADER_SEARCH_PATHS' => '${PODS_ROOT}/YourPod/YourPod/Lib/include/**'}
所以針對(duì)不同階段,需要注意HEADER_SEARCH_PATHS的配置。
或者直接用下面一種發(fā)布版的配置,然后在開發(fā)階段將YourPod源碼文件夾復(fù)制一份到 Example/Pods/文件夾下,模擬一份正式版引用'${PODS_ROOT}/YourPod/YourPod/Lib/include/**'的環(huán)境。
暫時(shí)只有這個(gè)笨辦法,有更優(yōu)解嗎?