Cocoapods打包framework/靜態(tài)庫的注意點

背景

關(guān)于使用Cocoapods打包靜態(tài)庫或者是Framework的文章,網(wǎng)上一搜一堆.可是當你讀完,發(fā)現(xiàn)用處有限.它們的都是用最簡單的場景串了一遍打包的流程,而整個過程中的多個坑,卻根本沒有提及.這就造成了一個假象,Cocoapods打包framework是簡單愉快的,放棄原來的創(chuàng)建framework的形式吧!結(jié)果,當熱情滿滿的開發(fā)者去用的時候,發(fā)現(xiàn)已經(jīng)入了歧途了!

本人目前正在處理一款語音框架的工作,所以正好整理出來,希望能夠?qū)Υ蠹矣袔椭?

Cocoapods流程

關(guān)于如何安裝Cocoapods,在此就不贅述了.如果沒有Cocoapods使用經(jīng)驗,也不建議看這篇文章. 另外,建議將Cocoapods升級到最新版本(包括最新的beta),升級命令如下:

gem install cocoapods --pre

創(chuàng)建基本的工程結(jié)構(gòu)

  1. 通過命令創(chuàng)建一個規(guī)范規(guī)程(這個很重要,方便你的開發(fā)與驗證)
pod lib create YouFrameworkName
  1. 接下來就是一些問題,根據(jù)實際情況選擇.(我這開發(fā)的OC版本)

特別說明: 一定要創(chuàng)建Demo Application!這個對你的開發(fā)有極大的幫助!!

具體步驟也不贅述了,給大家?guī)灼獏⒖嘉恼?做完就具備了基本的結(jié)構(gòu)了.主要是想一塊繼續(xù)深入下去.

使用CocoaPods開發(fā)并打包靜態(tài)庫

一步一步教你使用CocoaPods打包靜態(tài)庫

繼續(xù)深入

有一個問題需要注意: 如果你選擇打包.a的靜態(tài)庫,那么cocoapods是不會給你生成頭文件的 ,這就意味著,其實,你只能打包framework.

按照上面的兩篇文章做完,你會發(fā)現(xiàn).握草,根本不夠項目用啊.我項目還有三方的framework,還有三方的.a庫,還想添加pch文件...

另外,關(guān)于各種路徑的問題,例如:s.source_filess.header_dir這些,經(jīng)常會被Cocoapods報錯:pattern匹配不到任何文件.其實,只要記住一個原則:你的庫路徑(可能是線上git庫也可能是本地git庫)+你的指定路徑 = 要找的文件路徑,那么就一定沒問題. 例如我的庫路徑是::git => '/Users/kenny/Documents/LTVoiceAssistant' 而我指定的s.source_files = 'LTVoiceAssistant/Classes/**/*.{c,h,hh,m,mm,cpp,a,pch}',它們兩個拼接,正好是我各種源碼文件的路徑.

三方Framework和Library

在項目中,我們經(jīng)常會有一些以文件形式存在的framework和.a,例如我項目中就有百度的語音識別和一個高德的.而由于某些原因,你不能用cocoapods將其管理,只能拖到項目中,cocoapods使用vendored_frameworksvendored_libraries字段進行設(shè)置:

    s.ios.vendored_libraries = 'LTVoiceAssistant/Classes/libBDVoiceRecognitionClient.a',
                             'LTVoiceAssistant/Classes/libBDSSpeechSynthesizer.a'

    s.ios.vendored_frameworks = 'LTVoiceAssistant/Classes/*.framework'

pch

如果你不是從零開始,而是將其他項目的代碼剝離打包framework的話,這個絕對會幫你大忙,因為cocoapods的驗證,會檢查你代碼的依賴性,如果有照不到的頭文件或者引入關(guān)系不對,是通不過驗證的.podspec中,提供了兩種方式添加pch文件.
方法一 : 使用s.prefix_header_contents用法如下:

s.prefix_header_contents = '#import "AHeader.h"','#import "BHeader.h"'

可以看出,簡單方便.但是也是因為簡單,所以一些負責的宏之類的,你用這個是沒法完成的.

方法二: 添加pch文件.
首先framework工程里(不是DemoApplication中)添加pch文件.然后將文件加入到編譯的source中(如果你是拷貝進來的頭文件)
最后,在podspec中,添加下面的信息:

  s.prefix_header_file = 'LTVoiceAssistant/Classes/Global/LTSpeech-prefix.pch'

在cocoapods的issue中,作者特別提到了.如果報找不到,那么是Xcode沒找到,不是cocoapods,所以,確保將pch加入了編譯.

xib和storyboard

如果你的代碼中包含Xib和Storyboard,需要注意,這幾個文件是需要添加到資源中的.

s.resource = 'LTVoiceAssistant/Classes/Cells/*.xib'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末乍楚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子棕诵,更是在濱河造成了極大的恐慌旧乞,老刑警劉巖病附,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡烁试,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門拢肆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來减响,“玉大人靖诗,你說我怎么就攤上這事≈荆” “怎么了刊橘?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長颂鸿。 經(jīng)常有香客問我促绵,道長,這世上最難降的妖魔是什么嘴纺? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任败晴,我火速辦了婚禮,結(jié)果婚禮上栽渴,老公的妹妹穿的比我還像新娘尖坤。我一直安慰自己,他們只是感情好闲擦,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布慢味。 她就那樣靜靜地躺著,像睡著了一般佛致。 火紅的嫁衣襯著肌膚如雪贮缕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天俺榆,我揣著相機與錄音感昼,去河邊找鬼。 笑死罐脊,一個胖子當著我的面吹牛定嗓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播萍桌,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼宵溅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了上炎?” 一聲冷哼從身側(cè)響起恃逻,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎藕施,沒想到半個月后寇损,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡裳食,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年矛市,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诲祸。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡浊吏,死狀恐怖而昨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情找田,我是刑警寧澤歌憨,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站午阵,受9級特大地震影響躺孝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜底桂,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一植袍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧籽懦,春花似錦于个、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至捶码,卻和暖如春羽氮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背惫恼。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工档押, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人祈纯。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓令宿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腕窥。 傳聞我的和親對象是個殘疾皇子粒没,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容