podspec引入library

自己寫的庫需要引用第三方的library,咋整?

s.vendored_libraries = 'YourPod/Lib/**/*.a'

就這?!那我還記錄個啥。。。

通過vendored_libraries引入,僅會在library search path中添加library。但是頭文件并不會自動引入。代碼中引用該library會提示找不到文件。
需要通過配置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)個問題,這個值是寫入到Pods項目 > YourPod的Target > Build Settings > HEADER SEARCH PATHS 內(nèi)的,用于Pods項目編譯你的YourPod庫時找到你的library頭文件,但是!這tm是個絕對地址。
這個地址分為兩種情況:

開發(fā)你的pod代碼庫時:

一般情況都是用pod lib create YourPod 命令創(chuàng)建pod庫,里面會生成YourPod源碼文件夾,還會生成Example項目用于調(diào)試,YourPod源碼文件夾和Example是在同一級目錄的,YourPod源碼(包含你的library)在Pods項目內(nèi)編譯時,YourPod源文件相對于Pods項目的路徑為:'${PODS_ROOT}/../../YourPod',所以podspec內(nèi)編輯:

s.pod_target_xcconfig = { 'HEADER_SEARCH_PATHS' => '${PODS_ROOT}/../../YourPod/Lib/include/**'}

完成pod后正式引用時:

YourPod原代碼會通過git下載到Pods項目文件夾內(nèi),YourPod源碼(包含你的library)在Pods項目內(nèi)編譯時,YourPod源文件相對于Pods項目的路徑為:'${PODS_ROOT}/YourPod/YourPod',所以正式的podspec內(nèi)編輯:

s.pod_target_xcconfig = { 'HEADER_SEARCH_PATHS' => '${PODS_ROOT}/YourPod/YourPod/Lib/include/**'}

所以針對不同階段,需要注意HEADER_SEARCH_PATHS的配置。
或者直接用下面一種發(fā)布版的配置,然后在開發(fā)階段將YourPod源碼文件夾復制一份到 Example/Pods/文件夾下,模擬一份正式版引用'${PODS_ROOT}/YourPod/YourPod/Lib/include/**'的環(huán)境。

暫時只有這個笨辦法,有更優(yōu)解嗎?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容