iOS工程 SDK的創(chuàng)建荆残、使用

ONE SDK的設(shè)計(jì)總體分為3層: 平臺(tái)層-Platfrom layer啼肩,適配層-Porting layer,核心層-Common layer硕盹。

我們所使用的是 平臺(tái)層-Platfrom layer符匾。一般為了針對(duì)不同平臺(tái)提供給開發(fā)者,和平臺(tái)一致API規(guī)范瘩例,使各平臺(tái)的開發(fā)者無(wú)難度的集成SDK啊胶,例如我們會(huì)提供Java給Android,Objective-C 給IOS和MAC, C++ 給Linux垛贤、 IOT平臺(tái)



在OS X上焰坪,可能會(huì)創(chuàng)建一個(gè)動(dòng)態(tài)連接(Dynamically Linked)的framework。通過動(dòng)態(tài)連接聘惦,framework可以更新某饰,不需要應(yīng)用重新連接。在運(yùn)行時(shí)善绎,庫(kù)中代碼的一份拷貝被分享出來(lái)黔漂,整個(gè)工程都可以使用它,因此涂邀,這樣減少了內(nèi)存消耗瘟仿,提高了系統(tǒng)的性能。
這是一個(gè)功能強(qiáng)大的特性比勉。

iOS工程中的SDK,俗稱.a文件劳较。創(chuàng)建、使用一個(gè)SDK浩聋。

環(huán)境:Xcode Version 8.1 (8T61a) (網(wǎng)上的demo大多數(shù)都是老版本的)


操作:

  • 1.創(chuàng)建一個(gè)靜態(tài)庫(kù)工程
    打開Xcode观蜗,點(diǎn)擊File\New\Project,選擇iOS\Framework & Library\Cocoa Touch Static Library新建一個(gè)靜態(tài)庫(kù)工程.

    創(chuàng)建靜態(tài)庫(kù)工程

    將工程命名為StaticFrameBlueTooth(自己需要藍(lán)牙功能衣洁,起了個(gè)藍(lán)牙名字墓捻。如果想高逼格:那就 (名字拼音)XXXBlueToothSDK????),然后將工程保存到一個(gè)空目錄下坊夫。

    工程名

    一個(gè)靜態(tài)庫(kù)工程由頭文件和實(shí)現(xiàn)文件組成砖第,這些文件將被編譯為庫(kù)本身。
    當(dāng)創(chuàng)建靜態(tài)庫(kù)工程時(shí)环凿,Xcode會(huì)自動(dòng)添加libStaticFrameBlueTooth.h和libStaticFrameBlueTooth.m梧兼。因?yàn)椴恍枰獙?shí)現(xiàn)文件,右鍵單擊libStaticFrameBlueTooth.m選擇delete智听,將它刪除羽杰。


    刪除 .m文件


  • 2.其實(shí)當(dāng)前的工程已經(jīng)可以使用了渡紫,但是你的庫(kù)還是需要添加一些功能吧?考赛?惕澎? 創(chuàng)建一個(gè)StaticFrameBlueTooth.a,可以使用你自己封裝好的控件颜骤。將你的控件從Finder中拖到Xcode下StaticFrameBlueTooth目錄下唧喉。(objc文件夾也是拖進(jìn)去的,不是創(chuàng)建工程的時(shí)候 配送的!8炊摺P佬!注意一下L菡摇!R娼А锈锤!)

    拖入控件

    一定要注意,這里一定要勾選以下三個(gè)選項(xiàng):

    必須Add to target


  • 3.點(diǎn)擊 Finish 進(jìn)入工程里面:

    工程 內(nèi)部

    Compile Source為編譯期間使用闲询,而Headers文件僅僅提供一個(gè)接口久免!
    將你的控件的頭文件 添加到 庫(kù)的主頭文件StaticFrameBlueTooth.h中。在主頭文件的幫助下扭弧,開發(fā)者使用你的庫(kù)僅僅需要導(dǎo)入一個(gè)頭文件阎姥,如下面的代碼一樣,自己去選擇自己需要的一塊導(dǎo)入鸽捻。 </br>
    其實(shí)頭文件 也可以 自己創(chuàng)建Headers欄呼巴,再在里面按自己需求添加Public(公用)、Private(私有)御蒲、Project(工程)各自所需的頭文件衣赶。但是條例一點(diǎn)要清晰,架構(gòu)性要明確厚满!

    把需要的頭文件導(dǎo)入


  • 4.接下來(lái)就生成靜態(tài)庫(kù)

    • 4.1靜態(tài)庫(kù)分為手機(jī)和模擬器兩種(手機(jī)端的只有手機(jī)能調(diào)用府瞄,模擬器的只有模擬器能調(diào)用)。
      首先碘箍,構(gòu)建模擬器的靜態(tài)庫(kù)遵馆,如圖:
      模擬器 調(diào)用的靜態(tài)庫(kù)


      真機(jī) 調(diào)用的靜態(tài)庫(kù)

      構(gòu)建工程(command + B), 你就會(huì)發(fā)現(xiàn) libStaticFrameBlueTooth.a 變黑了丰榴。
    生成靜態(tài)庫(kù) 成功 文件字體變黑
    • 4.2然后show in Finder


      獲取靜態(tài)庫(kù)( .a文件)
真機(jī)與模擬器 調(diào)用的靜態(tài)庫(kù)


    • 4.3之后我拿到這個(gè).a文件 货邓、StaticFrameBlueTooth.h文件 和 他相關(guān)的所有.h文件,存放在一個(gè)新的文件夾里(起名就隨便啦!! )如下:
    自己的SDK文件夾



  • 5.將他拖到你要應(yīng)用的工程中多艇,就可以去揮霍了逻恐。

    導(dǎo)入SDK文件





如果已經(jīng)知道、了解 了導(dǎo)入對(duì)應(yīng)頭文件,即可以使用里面的三方庫(kù)或自己定制的控件了复隆。就無(wú)需了解我的Demo示例了拨匆!可以直接跳過 “運(yùn)行效果”圖片 的介紹。直接看最后提到的真機(jī)挽拂、模擬器通用的SDK 靜態(tài)庫(kù)介紹惭每!


最終運(yùn)行效果:
運(yùn)行效果

放上美女,是為了美觀一點(diǎn)亏栈!??????????
別分心了台腥!看segment!我講解一下這個(gè)多段選擇器绒北!
控件是一個(gè)長(zhǎng)度不固定黎侈,但至少是屏幕寬度(展示50個(gè)時(shí)間點(diǎn):5的倍數(shù))。傳入時(shí)間數(shù)組闷游,即可自動(dòng)生成一個(gè)長(zhǎng)度適應(yīng)的 多段選擇器峻汉。當(dāng)然寬度超過屏幕寬度。就需要放在UIScrollView里面了脐往!
因?yàn)樵O(shè)置了他的frame (20,200,105,30)休吠。其寬度是不為顯示的時(shí)間總長(zhǎng) (??背景色??即是最好的應(yīng)證)。超過控件寬度的地方不能響應(yīng)??點(diǎn)擊事件??也是一個(gè)應(yīng)證R挡尽瘤礁!





通用靜態(tài)庫(kù)

上面已經(jīng)提到了,模擬器調(diào)試得到的靜態(tài)庫(kù)只能在模擬器上運(yùn)行梅尤,如果使用真機(jī)必須選擇使用真機(jī)可調(diào)用的靜態(tài)庫(kù)文件(.a文件)柜思。
接下來(lái),我們就來(lái)生成一個(gè)雙方都能用的libStaticFrameBlueTooth.a

首先克饶,打開終端酝蜒,復(fù)制以下命令

lipo-create
/Users/個(gè)人PC/Library/Developer/Xcode/DerivedData/StaticFrameBlueTooth-adahgwpnjulylkcjpaomvnxafgmq/Build/Products/Debug-iphoneos/libStaticFrameBlueTooth.a

/Users/個(gè)人PC/Library/Developer/Xcode/DerivedData/StaticFrameBlueTooth-adahgwpnjulylkcjpaomvnxafgmq/Build/Products/Debug-iphonesimulator/libStaticFrameBlueTooth.a



說(shuō)明:

綠色:是你手機(jī)模式下可用的libStaticFrameBlueTooth.a
紅色:是你模擬器下可用的libStaticFrameBlueTooth.a
藍(lán)色:是最后生成雙方都可用的libStaticFrameBlueTooth.a --并存在在桌面。最后拿
     到的libStaticFrameBlueTooth.a 就哪里都可以用了矾湃!














goyohol's essay

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末亡脑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子邀跃,更是在濱河造成了極大的恐慌霉咨,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拍屑,死亡現(xiàn)場(chǎng)離奇詭異途戒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)僵驰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門喷斋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)唁毒,“玉大人,你說(shuō)我怎么就攤上這事星爪〗鳎” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵顽腾,是天一觀的道長(zhǎng)近零。 經(jīng)常有香客問我,道長(zhǎng)抄肖,這世上最難降的妖魔是什么久信? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮漓摩,結(jié)果婚禮上裙士,老公的妹妹穿的比我還像新娘。我一直安慰自己幌甘,他們只是感情好潮售,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锅风,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鞍泉。 梳的紋絲不亂的頭發(fā)上皱埠,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音咖驮,去河邊找鬼边器。 笑死,一個(gè)胖子當(dāng)著我的面吹牛托修,可吹牛的內(nèi)容都是我干的忘巧。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼睦刃,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼砚嘴!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起涩拙,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤际长,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后兴泥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體工育,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年搓彻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了如绸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘱朽。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖怔接,靈堂內(nèi)的尸體忽然破棺而出搪泳,到底是詐尸還是另有隱情,我是刑警寧澤蜕提,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布森书,位于F島的核電站,受9級(jí)特大地震影響谎势,放射性物質(zhì)發(fā)生泄漏凛膏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一脏榆、第九天 我趴在偏房一處隱蔽的房頂上張望猖毫。 院中可真熱鬧,春花似錦须喂、人聲如沸吁断。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)仔役。三九已至,卻和暖如春是己,著一層夾襖步出監(jiān)牢的瞬間又兵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工卒废, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沛厨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓摔认,卻偏偏與公主長(zhǎng)得像逆皮,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子参袱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

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