iOS Framework 包含 圖片 Plist XIB 動態(tài)庫

前言:

1输吏、也算是花了點(diǎn)時(shí)間去弄這個(gè)東西呢卦洽。
2、惡心吃警,不想說話

在制作 FrameWork 的時(shí)候 Mach-O Type 選擇有兩個(gè)糕篇,本篇是 Dynamic Library。
Static 方式?jīng)]有配置的話酌心,直接運(yùn)行是不會崩潰的拌消,只是讀不到文件。Dynamic方式?jīng)]有配置的話安券,運(yùn)行會崩潰墩崩。

開始

圖片高清,Command + “+” 放大閱讀

1侯勉、創(chuàng)建Bundle工程

1 新建工程.png

2鹦筹、修改 Base SDK

2 .png

3、修改 COMBINE_HIDPI_IMAGES

3.png

4址貌、修改 Skip Install

4.png

5铐拐、引入圖片文件

5 拖入圖片.png

6徘键、創(chuàng)建Plist文件

6 新建plist文件.png

7、創(chuàng)建XIB文件

7 新建XIB.png

8遍蟋、拖放按鈕 創(chuàng)建代碼文件 連線

8 拖入按鈕.png

9吹害、拖放按鈕 創(chuàng)建代碼文件 連線

為什么要在這里搞代碼文件呢,因?yàn)榇a文件要和XIB連線匿值,這樣弄出來的XIB才會有意義赠制,所以在打包工程里面, 直接創(chuàng)建代碼文件進(jìn)行連線挟憔,然后把代碼文件拖到FrameWork里钟些。最好應(yīng)該是先創(chuàng)建一個(gè)App,把所有的功能都寫好绊谭,然后 分別創(chuàng)建 Bundle工程和FrameWork工程政恍,把代碼和資源文件分開,再合并达传,做成一個(gè)完整的FrameWork篙耗。


9 拖入按鈕.png

10、檢查文件

10 確認(rèn)過眼神.png

11宪赶、編譯bundle

11 尋找bundle.png

12宗弯、創(chuàng)建FrameWork項(xiàng)目

12 創(chuàng)建新項(xiàng)目.png

13、修改 Build Active Architecture Only

13 build arch.png

14搂妻、修改 Mach-O Type

注意蒙保,這里是動態(tài)庫婶芭。


14 動態(tài)庫.png

15荠呐、引入代碼

15 引入代碼.png

16、引入bundle

16 引入bundle.png

17洽糟、寫代碼

寫代碼訪問資源文件扁瓢,這里是動態(tài)庫的資源文件訪問方式详恼,完整的代碼在文章末尾。


17 訪問文件.png

18引几、暴露文件

18 暴露文件1.png

19昧互、暴露文件

19 暴露名稱.png

20、編譯FrameWork文件伟桅,設(shè)置Scheme

做這一步的目的是為了讓這個(gè)FrameWork 同時(shí)支持真機(jī)和模擬器運(yùn)行硅堆。


20 編譯 設(shè)置shcema.png

21、編譯模擬器版本

隨便選個(gè)模擬器贿讹,按下 Command + B


21 模擬器編譯.png

22渐逃、編譯真機(jī)版本

選擇“Generic iOS Device”,按下 Command + B


22 真機(jī)編譯.png

23民褂、合并

合并使用到的命令茄菊,根據(jù)你的FrameWork名稱做相應(yīng)的替換疯潭。

lipo -create Release-iphoneos/Yuency.framework/Yuency Release-iphonesimulator/Yuency.framework/Yuency -output Yuency
23 合并包.png

24、尋找周杰倫

24 包.png

25面殖、創(chuàng)建App工程進(jìn)行測試

25 創(chuàng)建App工程 進(jìn)行測試.png

26竖哩、對引入的fram進(jìn)行設(shè)置

26 設(shè)置庫.png

27、Command + R

27 完工.png

必要的代碼

SunView.h


#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface SunView : UIView

/// 中間按鈕
@property (weak, nonatomic) IBOutlet UIButton *buttonCenter;


- (instancetype)initWithFrame:(CGRect)frame;


+ (instancetype)initFromXIB;


+ (void)showPlistContent;


@end

NS_ASSUME_NONNULL_END

SunView.m


#import "SunView.h"

@implementation SunView


- (IBAction)actionButton:(UIButton *)sender {

    NSLog(@"按鈕點(diǎn)擊相應(yīng)!");
}


- (instancetype)initWithFrame:(CGRect)frame {
    
    if (self = [super initWithFrame:frame]) {
        
        NSBundle *dynamicBundle = [NSBundle bundleForClass:[SunView class]];
        
        NSURL *bundelURL = [dynamicBundle URLForResource:@"Work" withExtension:@"bundle"];
        
        NSBundle *myBundle = [NSBundle bundleWithURL:bundelURL];
        
        NSString *path = [myBundle pathForResource:@"a" ofType:@"jpg"];
        
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.bounds];
        
        imageView.image = [UIImage imageWithContentsOfFile:path];
        
        [self addSubview:imageView];
        
    }
    return self;
}


+ (instancetype)initFromXIB {
    
    NSBundle *dynamicBundle = [NSBundle bundleForClass:[SunView class]];
    
    NSURL *bundelURL = [dynamicBundle URLForResource:@"Work" withExtension:@"bundle"];
    
    NSBundle *myBundle = [NSBundle bundleWithURL:bundelURL];
    
    SunView *view = [myBundle loadNibNamed:@"SunView" owner:nil options:nil].firstObject;
    
    return view;
}

+ (void)showPlistContent {
    
    NSBundle *dynamicBundle = [NSBundle bundleForClass:[SunView class]];

    NSURL *bundelURL = [dynamicBundle URLForResource:@"Work" withExtension:@"bundle"];
    
    NSBundle *myBundle = [NSBundle bundleWithURL:bundelURL];

    NSString *p = [myBundle pathForResource:@"b" ofType:@"plist"];
    
    NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:p];
    
    NSLog(@"文件內(nèi)容: %@", dic);
}


@end

上一篇

iOS 包含 Bundle 的 FrameWork

下一篇

iOS Framework 包含 圖片 Plist XIB 靜態(tài)庫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脊僚,一起剝皮案震驚了整個(gè)濱河市相叁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辽幌,老刑警劉巖增淹,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異乌企,居然都是意外死亡虑润,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門加酵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拳喻,“玉大人,你說我怎么就攤上這事猪腕∪叱海” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵陋葡,是天一觀的道長亚亲。 經(jīng)常有香客問我,道長脖岛,這世上最難降的妖魔是什么朵栖? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任颊亮,我火速辦了婚禮柴梆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘终惑。我一直安慰自己绍在,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布雹有。 她就那樣靜靜地躺著偿渡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪霸奕。 梳的紋絲不亂的頭發(fā)上溜宽,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機(jī)與錄音质帅,去河邊找鬼适揉。 笑死留攒,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嫉嘀。 我是一名探鬼主播炼邀,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼剪侮!你這毒婦竟也來了拭宁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤瓣俯,失蹤者是張志新(化名)和其女友劉穎杰标,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體降铸,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡在旱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了推掸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桶蝎。...
    茶點(diǎn)故事閱讀 40,137評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谅畅,靈堂內(nèi)的尸體忽然破棺而出登渣,到底是詐尸還是另有隱情,我是刑警寧澤毡泻,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布胜茧,位于F島的核電站,受9級特大地震影響仇味,放射性物質(zhì)發(fā)生泄漏呻顽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一丹墨、第九天 我趴在偏房一處隱蔽的房頂上張望廊遍。 院中可真熱鬧,春花似錦贩挣、人聲如沸喉前。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卵迂。三九已至,卻和暖如春绒净,著一層夾襖步出監(jiān)牢的瞬間见咒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工挂疆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留改览,地道東北人哎垦。 一個(gè)月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像恃疯,于是被迫代替她去往敵國和親漏设。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評論 2 355