自己寫的庫需要引用第三方的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)解嗎?