封裝.a/Framework(動態(tài),靜態(tài))/bundle

一憎妙、a庫封裝

1.1 創(chuàng)建工程

創(chuàng)建a庫工程.png

1.2添加需要封裝的代碼文件

添加需要封裝的代碼文件.png

1.3 添加對外開放的頭文件
選中Targets-Build phases-Copy Files

添加對外開發(fā)的頭文件.png

選擇對外頭文件.png

1.5 編譯:
通過simulator編譯纱烘,a庫只能在simulator運行类嗤。通過真機編譯,a庫只能在真機運行闸盔。
查看庫所支持的架構(gòu):lipo -info 庫的絕對路徑

  • 手動合成:
    simulator 庫與真機庫合成通用庫:lipo -create simulator庫 真機庫 -output 存放合成庫絕對路徑

  • 編譯時自動合成支持所有架構(gòu):
    選擇工程悯辙,添加targets-Aggregate


    添加Aggregate.png

    添加shell腳本區(qū)域:


    添加shell腳本命令框.png

    添加shell腳本命令:
    if [ "${ACTION}" = "build" ]
    then

    #要build的target名
    target_Name=${PROJECT_NAME}
      echo "target_Name=${target_Name}"
    
    #build之后的文件夾路徑
    build_DIR=${SRCROOT}/build
      echo "build_DIR=${build_DIR}"
    
    #真機build生成的頭文件的文件夾路徑
    DEVICE_DIR_INCLUDE=${build_DIR}/Release-iphoneos/include/${PROJECT_NAME}
        echo "DEVICE_DIR_INCLUDE=${DEVICE_DIR_INCLUDE}"
    
    #真機build生成的.a文件路徑
    DEVICE_DIR_A=${build_DIR}/Release-iphoneos/lib${PROJECT_NAME}.a
      echo "DEVICE_DIR_A=${DEVICE_DIR_A}"
    
    #模擬器build生成的.a文件路徑
    SIMULATOR_DIR_A=${build_DIR}/Release-iphonesimulator/lib${PROJECT_NAME}.a
        echo "SIMULATOR_DIR_A=${SIMULATOR_DIR_A}"
    
    #目標文件夾路徑
    INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}
        echo "INSTALL_DIR=${INSTALL_DIR}"
    
    #目標頭文件文件夾路徑
    INSTALL_DIR_Headers=${SRCROOT}/Products/${PROJECT_NAME}/Headers
        echo "INSTALL_DIR_Headers=${INSTALL_DIR_Headers}"
    
    #目標.a路徑
    INSTALL_DIR_A=${SRCROOT}/Products/${PROJECT_NAME}/lib${PR  OJECT_NAME}.a
        echo "INSTALL_DIR_A=${INSTALL_DIR_A}"
    
    #判斷build文件夾是否存在,存在則刪除
    if [ -d "${build_DIR}" ]
    then
    rm -rf "${build_DIR}"
    fi
    
    #判斷目標文件夾是否存在迎吵,存在則刪除該文件夾
    if [ -d "${INSTALL_DIR}" ]
    then
    rm -rf "${INSTALL_DIR}"
    fi
    #創(chuàng)建目標文件夾
    mkdir -p "${INSTALL_DIR}"
    
    #build之前clean一下
    xcodebuild -target ${target_Name} clean
    
    #模擬器build
    xcodebuild -target ${target_Name} -configuration Release -sdk iphonesimulator
    
    #真機build
    xcodebuild -target ${target_Name} -configuration Release -sdk iphoneos
    
    #復制頭文件到目標文件夾
    cp -R "${DEVICE_DIR_INCLUDE}" "${INSTALL_DIR_Headers}"
    
    #合成模擬器和真機.a包
    lipo -create "${DEVICE_DIR_A}" "${SIMULATOR_DIR_A}" -output "${INSTALL_DIR_A}"
    #打開目標文件夾
    open "${INSTALL_DIR}"
    fi
    

1.6 注意事項

  • 選中Targets-Build Setting-Architectures-Build Active Architecture Only設置為NO躲撰,build所有架構(gòu)
  • Architectures 默認結(jié)構(gòu)不包含armv7s(iphone5c),可在Architectures中添加

二、Framework(動態(tài),靜態(tài))封裝

1.創(chuàng)建Framework工程

創(chuàng)建Framework工程.png

2.添加封裝代碼文件
添加需要封裝的代碼文件.png

3.頭文件歸類
將對外開放的頭文件導入與庫名稱相同的頭文件中击费,此文件作為公共的頭文件拢蛋,使用者只需要將此頭文件導入即可使用,無需導入多個蔫巩,下圖的頭文件為:DynamicWebFramework.h
頭文件歸類.png

4.編譯
編譯原理與a庫編譯原理相同谆棱,但shell腳本有很多種寫法,具體可以查詢學習一下圆仔,在此不再詳解垃瞧,因為我還沒搞懂啊~~
5.注意事項

  • Build Setting——“Mach -O Type”默認為:Dynamic Library(iOS 8+支持動態(tài)庫),可選擇Static Library

6.對于三方庫的處理
不建議將三方庫封裝進自己的庫中荧缘,(貌似你也封裝不進去~~)

6.1 正常導入三方已封裝的庫
6.2 封裝代碼中正常導入頭文件皆警,調(diào)用三方庫相關方法
6.3 配置search path

配置search path.png
  • 其實,F(xiàn)ramework Search Paths截粗、Header Search Paths信姓、Library Search Paths三個相對地址相同也可以(文件路徑最大化)——》輕松愉快解決戰(zhàn)斗
  • 默認檢索header search paths,User Header Search Paths只有Always Search User Paths為(o)/YES!時绸罗,才會去檢索

6.4 刪除三方庫封裝工程的關聯(lián)意推,切記:物理地址中的三方庫不要delete,否則會出人命的

7.Framework的使用
獲取Framework 庫中的資源文件:

iOS 8+:獲取圖片
[UIImage imageNamed:@"imageView" inBundle:[NSBundle bundleForClass:self.class]compatibleWithTraitCollection:nil];

獲取XIB文件
//這個Class對應你工程所在的類名
[[NSBundle bundleForClass:self.class] loadNibNamed:@"ColorView" owner:self options:nil];
//這個對應你的FrameWork的Bundle Identifier
[[NSBundle bundleWithIdentifier:@"com.xxx.xx"] loadNibNamed:@"ColorView" owner:self options:nil];
  • Framework(靜態(tài)庫)
  • Framework(動態(tài)庫)

三珊蟀、bundle(資源包)封裝

1.創(chuàng)建bundle工程

創(chuàng)建bundle工程.png

2.導入資源文件

導入資源文件.png
  • Create groups 只會根據(jù)導入的資源文件結(jié)構(gòu)進行分組
  • Create folder references 會對導入文件的物理結(jié)構(gòu)進行關聯(lián)

未完待續(xù)菊值。。育灸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末腻窒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子磅崭,更是在濱河造成了極大的恐慌儿子,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件砸喻,死亡現(xiàn)場離奇詭異柔逼,居然都是意外死亡,警方通過查閱死者的電腦和手機割岛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門愉适,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人癣漆,你說我怎么就攤上這事维咸。” “怎么了惠爽?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵腰湾,是天一觀的道長。 經(jīng)常有香客問我疆股,道長费坊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任旬痹,我火速辦了婚禮附井,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘两残。我一直安慰自己永毅,他們只是感情好,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布人弓。 她就那樣靜靜地躺著沼死,像睡著了一般。 火紅的嫁衣襯著肌膚如雪崔赌。 梳的紋絲不亂的頭發(fā)上意蛀,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天耸别,我揣著相機與錄音,去河邊找鬼县钥。 笑死秀姐,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的若贮。 我是一名探鬼主播省有,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼谴麦!你這毒婦竟也來了蠢沿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤匾效,失蹤者是張志新(化名)和其女友劉穎舷蟀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弧轧,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡雪侥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了精绎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片速缨。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖代乃,靈堂內(nèi)的尸體忽然破棺而出旬牲,到底是詐尸還是另有隱情,我是刑警寧澤搁吓,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布原茅,位于F島的核電站,受9級特大地震影響堕仔,放射性物質(zhì)發(fā)生泄漏擂橘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一摩骨、第九天 我趴在偏房一處隱蔽的房頂上張望通贞。 院中可真熱鬧,春花似錦恼五、人聲如沸昌罩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茎用。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間轨功,已是汗流浹背旭斥。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留夯辖,地道東北人琉预。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓董饰,卻偏偏與公主長得像蒿褂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子卒暂,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

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

  • Xcode 工程的環(huán)境變量以及Build Settings參數(shù)設置 http://www.360doc.com/c...
    liusong007閱讀 2,106評論 1 3
  • 一般我們在xcode里面配置包含工程目錄下頭文件的時候啄栓,都要關聯(lián)著相對路徑和絕對路徑,如果只是自己用這個項目也祠,用絕...
    心有琳鑫閱讀 12,480評論 0 15
  • 轉(zhuǎn)載請注明出處:http://www.reibang.com/p/04a7e28f11b9作者:紀小衰 frame...
    紀小衰閱讀 6,512評論 3 16
  • 在填制完各張報表后诈嘿,我們就收集了很多我們需要的數(shù)據(jù)堪旧,那么接下來就是這些數(shù)據(jù)進行查詢和分析。對數(shù)據(jù)的分析和查詢功能是...
    bjcathy_lili閱讀 649評論 0 2
  • 現(xiàn)在是凌晨1:41分奖亚,從昨晚八點多開始淳梦,連刷了兩部電影,《擺渡人》和《情圣》昔字,在電影院的笑聲中跨的年爆袍。兩部...
    藍色的米粒閱讀 252評論 0 0