iOS開發(fā)庫之(一):動(dòng)態(tài)庫的創(chuàng)建和調(diào)試

一檐涝、動(dòng)態(tài)庫創(chuàng)建
  • 打開Xcode架馋,選擇菜單欄中的Window窟她,然后選擇Welcome to Xcode,如圖:
Snip20170516_157.png
  • 進(jìn)入歡迎界面,選擇第二個(gè)漂问,create a new Xcode project:
Snip20170516_158.png
  • 選擇Framework & Binaries中的第一個(gè)赖瞒,cocoa touch framework:
Snip20170516_159.png
  • 然后填寫好庫名和相關(guān)設(shè)置,如下圖:
Snip20170516_160.png
  • 我此處創(chuàng)建了一個(gè)KODFrameworkDemo蚤假,然后創(chuàng)建動(dòng)態(tài)庫之后會(huì)默認(rèn)有以下東西:
Snip20170516_161.png
  • 公開頭文件的內(nèi)容如下,以下的內(nèi)容沒什么用栏饮,一般做導(dǎo)入頭文件和存放宏定義或者全局常亮用:
    KODFrameworkDemo.h
#import <UIKit/UIKit.h>

//! Project version number for KODFrameworkDemo.
FOUNDATION_EXPORT double KODFrameworkDemoVersionNumber;

//! Project version string for KODFrameworkDemo.
FOUNDATION_EXPORT const unsigned char KODFrameworkDemoVersionString[];

// In this header, you should import all the public headers of your framework using statements like #import <KODFrameworkDemo/PublicHeader.h>

我將其刪除,只留以下:
KODFrameworkDemo.h

#import <UIKit/UIKit.h>
  • 在動(dòng)態(tài)庫中新建Student類磷仰,其中有兩個(gè)接口一個(gè)是eat,另一個(gè)是run,代碼如下:
    Student.h
#import <Foundation/Foundation.h>

@interface Student : NSObject
- (void)eat;
- (void)run;
@end

Student.m

#import "Student.h"

@implementation Student
- (void)eat{
    NSLog(@"我在吃飯呢袍嬉!");
}
- (void)run{
    NSLog(@"我在跑步呢!");
}
@end
  • 將Student類的頭文件添加到公開的頭文件KODFrameworkDemo.h中:
Snip20170516_162.png
  • 然后Command+B編譯一下灶平,如果編譯之后沒問題就右鍵打開以下文件的路徑:
Snip20170516_163.png
  • 注意伺通,這里是通過模擬器創(chuàng)建的庫,只能模擬器用逢享,如果是真機(jī)還得通過真機(jī)編譯一次罐监,那么那個(gè)真機(jī)的庫才能給真機(jī)使用,其中模擬器庫是放在Debug-iPhonesimulator路徑下的:
Snip20170516_164.png
  • 真機(jī)庫是放在Debug-iphoneos下的,當(dāng)然這是調(diào)試下的瞒爬,如果是發(fā)布的就是Release了:


    Snip20170516_165.png
  • 那這里大家肯定有疑問弓柱,怎么調(diào)節(jié)Release呢?以下插一段release的設(shè)置:
Snip20170516_166.png

Snip20170516_167.png

那如果要合并的話侧但,請(qǐng)看Framework和.a文件合并

二矢空、動(dòng)態(tài)庫調(diào)試
  • 將庫導(dǎo)入到測試工程中,選擇124禀横,編譯后發(fā)現(xiàn)報(bào)錯(cuò):
Snip20170516_170.png
Snip20170516_171.png

具體報(bào)錯(cuò):
1>~/Desktop/KODTestDemo/KODTestDemo/KODFrameworkDemo.framework/Headers/KODFrameworkDemo.h:19:9: 'Student.h' file not found
2>~/Desktop/KODTestDemo/KODTestDemo/ViewController.m:10:9: Could not build module 'KODFrameworkDemo'

  • 說明Framework的公開文件中有導(dǎo)入這個(gè)Student.h但是并沒有公開這個(gè)Student文件導(dǎo)致工程編譯的時(shí)候報(bào)錯(cuò)屁药,解決如下:
Snip20170516_172.png
Snip20170516_174.png
  • 再編譯一次,然后再將生成的framework替換掉工程中已經(jīng)導(dǎo)入的framework燕侠,再次編譯一次發(fā)現(xiàn)報(bào)如下錯(cuò)(這里大家可能會(huì)說這樣調(diào)試的時(shí)候老是庫編譯一次再替換一次者祖,不能做聯(lián)調(diào),對(duì)SDK工作者是極大的不友好绢彤,所以請(qǐng)看iOS開發(fā)庫之(四):工程和庫聯(lián)調(diào)):
Snip20170516_177.png
  • 報(bào)錯(cuò)指的是"Reason:image not found",其中image表示的是二進(jìn)制文件(可執(zhí)行文件或者動(dòng)態(tài)鏈接庫)編譯后的符號(hào)或者代碼等七问,這里指的就是這個(gè)動(dòng)態(tài)庫的二進(jìn)制文件沒有找到。那么出現(xiàn)這個(gè)問題的原因就是因?yàn)槲覀儎倢?dǎo)入動(dòng)態(tài)庫后缺少如下步驟茫舶,所以導(dǎo)入的時(shí)候需要再按照以下步驟配一次即可械巡,這樣就不會(huì)有問題了:
Snip20170516_178.png
Snip20170516_179.png

Snip20170516_180.png

(這里發(fā)現(xiàn)添加完成之后下面的Linked Frameworks and Libraries上有兩個(gè)庫,刪掉一個(gè)就好了)
然后再次編譯一下,問題得到解決讥耗。

三有勾、擴(kuò)展

iOS開發(fā)庫之(二):靜態(tài)庫Framework的創(chuàng)建
iOS開發(fā)庫之(四):工程和庫聯(lián)調(diào)
以上!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末古程,一起剝皮案震驚了整個(gè)濱河市蔼卡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挣磨,老刑警劉巖雇逞,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異茁裙,居然都是意外死亡塘砸,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門晤锥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掉蔬,“玉大人,你說我怎么就攤上這事矾瘾∨危” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵霜威,是天一觀的道長谈喳。 經(jīng)常有香客問我,道長戈泼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任赏僧,我火速辦了婚禮大猛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘淀零。我一直安慰自己挽绩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布驾中。 她就那樣靜靜地躺著唉堪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪肩民。 梳的紋絲不亂的頭發(fā)上唠亚,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音持痰,去河邊找鬼灶搜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的割卖。 我是一名探鬼主播前酿,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鹏溯!你這毒婦竟也來了罢维?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤丙挽,失蹤者是張志新(化名)和其女友劉穎肺孵,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體取试,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡悬槽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了瞬浓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片初婆。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖猿棉,靈堂內(nèi)的尸體忽然破棺而出磅叛,到底是詐尸還是另有隱情,我是刑警寧澤萨赁,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布弊琴,位于F島的核電站,受9級(jí)特大地震影響杖爽,放射性物質(zhì)發(fā)生泄漏敲董。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一慰安、第九天 我趴在偏房一處隱蔽的房頂上張望腋寨。 院中可真熱鬧,春花似錦化焕、人聲如沸萄窜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽查刻。三九已至,卻和暖如春凤类,著一層夾襖步出監(jiān)牢的瞬間穗泵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工踱蠢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留火欧,地道東北人棋电。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像苇侵,于是被迫代替她去往敵國和親赶盔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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