iOS 動(dòng)態(tài) 靜態(tài)庫(kù)的制作

1.新建工程選擇Cocoa Touch FrameWork

2.選擇動(dòng)態(tài)庫(kù)支持的系統(tǒng)版本


公共頭文件

3.選擇將想要暴露的自定義的頭文件放到Build Phases 的Headers設(shè)置的Public中


Public Headers

4.編譯動(dòng)態(tài)庫(kù),選擇對(duì)應(yīng)的設(shè)備真機(jī)就會(huì)編譯出來真機(jī)對(duì)應(yīng)的動(dòng)態(tài)庫(kù),選擇模擬器就會(huì)編譯出模擬器對(duì)應(yīng)的動(dòng)態(tài)庫(kù).

注意編譯的時(shí)候要配置支持的指令集

armv7|armv7s|arm64都是ARM處理器的指令集(一般為真機(jī)需要的指令集)

i386|x86_64 是iOS模擬器的指令集(也就是電腦CPU的指令集)

arm64:iPhone6s| iphone6s plus|iPhone6| iPhone6 plus|iPhone5S |iPad Air| iPad mini2(iPad mini with Retina Display)

armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)

armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch3G|iPod Touch4

i386:iPhone5| iPhone 4s |iPhone4及前代產(chǎn)品的模擬器

x86_64:iPhone5s| iPhone 6 |...| iPhone8的模擬器

理論上指令集是向下兼容的实蓬,比如連接設(shè)備為arm64挽荡,那么是有可能編譯出的動(dòng)態(tài)庫(kù)所支持的指令集為armv7s或者是armv7晚胡,這個(gè)具體看后面的介紹。但是向下兼容并不是說一個(gè)armv7s的動(dòng)態(tài)庫(kù)可以用在arm64架構(gòu)的設(shè)備上湃番,如果連接的設(shè)備是arm64的,而導(dǎo)入的動(dòng)態(tài)庫(kù)是沒有支持arm64,那么在編譯階段即會(huì)報(bào)錯(cuò)

要想你的動(dòng)態(tài)庫(kù)支持多個(gè)平臺(tái)那么就需要配置編譯選項(xiàng):

Architectures:指明選定Target要求被編譯生成的二進(jìn)制包所支持的指令集

Build Active Architecture Only: 指明是否只編譯當(dāng)前連接設(shè)備所支持的指令集扩淀,如果是,那么只編譯出連接設(shè)備所對(duì)應(yīng)的指令集啤挎,如果否驻谆,則編譯出所有其它有效的指令集(由Architectures和Valid Architectures決定)

Valid Architectures:指明可能支持的指令集并非Architectures列表中指明的指令集都會(huì)被支持

一般情況下我們會(huì)選擇Architectures設(shè)置為?armv7、armv7s庆聘、arm64?Valid Architectures設(shè)置為armv7胜臊、armv7s、arm64 ?Build Active Architecture Only 設(shè)置為NO.

設(shè)置完之后,選擇真機(jī)編譯生成真機(jī)對(duì)應(yīng)的FrameWork ,選擇模擬器編譯生成對(duì)應(yīng)的FrameWork 生成的兩個(gè)FrameWork 分別位于Debug-iphoneos 和Debug-iphonesimulator兩個(gè)文件夾下

ps:使用$lipo -info?{你的FrameWork} 來查看FrameWork支持的指令集

5.生成兩個(gè)FrameWork之后你可以選擇單獨(dú)使用,可以選擇將兩個(gè)FrameWork合并

lipo -create 真機(jī)路徑 模擬器路徑 -output 真機(jī)路徑 這樣就會(huì)合并兩個(gè)FrameWork.并將新合成的FrameWork輸出到真機(jī)路徑下.

將這個(gè)新合成的FrameWork導(dǎo)入到其他工程里就可以使用了.但是記得導(dǎo)入其它工程的時(shí)候記得設(shè)置Embedded Binarise?

Embedded Biinaries

否則會(huì)導(dǎo)致系統(tǒng)不能加載該動(dòng)態(tài)庫(kù)

ps:制作靜態(tài)庫(kù)的過程跟動(dòng)態(tài)庫(kù)的過程差別不大,區(qū)別就在于靜態(tài)的庫(kù)的頭文件,不需要導(dǎo)入到公共的頭文件,打包完成之后頭文件和.a文件是分開的,你需要把這個(gè)兩個(gè)都導(dǎo)入工程才能使用.

ps:在xcode6之后,xcode默認(rèn)不支持armv7s指令,編譯出來的庫(kù)可能不支持armv7s指令集.你可以選擇在Architectures選項(xiàng)中手動(dòng)添加armv7s

最后寫個(gè)一個(gè)腳本自動(dòng)幫你合并模擬器和真機(jī)的庫(kù):

if [ "${ACTION}" = "build" ]thenINSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework

DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework

SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.frameworkif [ -d "${INSTALL_DIR}" ]thenrm -rf "${INSTALL_DIR}"fimkdir -p "${INSTALL_DIR}"cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"#ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers"lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"open "${DEVICE_DIR}"open "${SRCROOT}/Products"fi

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伙判,一起剝皮案震驚了整個(gè)濱河市象对,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宴抚,老刑警劉巖勒魔,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異菇曲,居然都是意外死亡冠绢,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門常潮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弟胀,“玉大人,你說我怎么就攤上這事喊式》趸В” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵垃帅,是天一觀的道長(zhǎng)延届。 經(jīng)常有香客問我唆垃,道長(zhǎng)攒磨,這世上最難降的妖魔是什么削茁? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任地梨,我火速辦了婚禮酿联,結(jié)果婚禮上吹害,老公的妹妹穿的比我還像新娘兔跌。我一直安慰自己座享,他們只是感情好运悲,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布龄减。 她就那樣靜靜地躺著,像睡著了一般班眯。 火紅的嫁衣襯著肌膚如雪希停。 梳的紋絲不亂的頭發(fā)上烁巫,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音宠能,去河邊找鬼亚隙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛违崇,可吹牛的內(nèi)容都是我干的阿弃。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼羞延,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼渣淳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起伴箩,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤入愧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后赛蔫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體砂客,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年呵恢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鞠值。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡渗钉,死狀恐怖彤恶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鳄橘,我是刑警寧澤声离,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站瘫怜,受9級(jí)特大地震影響术徊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鲸湃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一赠涮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧暗挑,春花似錦笋除、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春国拇,著一層夾襖步出監(jiān)牢的瞬間洛史,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工贝奇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留虹菲,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓掉瞳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親浪漠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子陕习,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

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