bundle 資源包 是靜態(tài)的,不參與項(xiàng)目的編譯罗洗,所以不占包的大小,如果bundle里面要包含xib钢猛,那么需要?jiǎng)?chuàng)建工程的形式伙菜,將xib 序列化為靜態(tài)nib。bundle 里面是不能加入二進(jìn)制文件的厢洞。
- command +shift+N 創(chuàng)建bundle 工程
- 設(shè)置屬性仇让,buildSettings -》 Base SDK 設(shè)置為 iOS
- Build Active Architecture Only 設(shè)置為YES(只編譯當(dāng)前環(huán)境,如果每個(gè)環(huán)境都編譯一遍會(huì)使包變大)
- Installation Directiotory 刪除后面的路徑(不安裝相關(guān)配置躺翻,也不需要安裝路徑)
- iOS Deployment Target 設(shè)置一個(gè)最低兼容版本丧叽,這里設(shè)置的9.0
- Skip Install 設(shè)置為NO(不需要安裝相關(guān)配置)
- Strip Debug Symbols During Copy 中"Release"模式設(shè)置為 "YES"
- COMBINE_HIDPI_IMAGES 設(shè)置為NO(不然圖片會(huì)是tiff格式)
- 下面導(dǎo)入圖片資源
在該項(xiàng)目下創(chuàng)建了 兩個(gè)文件夾,一個(gè)放置圖片資源公你,一個(gè)放xib 文件踊淳。 將圖片直接拖入,xibs 文件夾下直接創(chuàng)建文件陕靠,copy bundle resources 就會(huì)自動(dòng)導(dǎo)入迂尝。
- 編譯 分為debug 下,真機(jī)和模擬器剪芥; release 下 真機(jī)和模擬器(debug 模式下用于測試垄开,release模式用于發(fā)版)
分別選擇真機(jī)模式,和模擬器模式進(jìn)行編譯税肪,編譯通過后溉躲,command + ,
點(diǎn)擊該路徑益兄,找到bundle文件
- 選擇模擬器或者真機(jī)下的bundle 導(dǎo)入項(xiàng)目锻梳,如果要上架App Store,那么就要選擇真機(jī)下的bundle(release), 我這里是導(dǎo)入了靜態(tài)庫 framework净捅,直接拖入工程疑枯,copy bundle resources 就會(huì)自動(dòng)導(dǎo)入
- 使用
NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"HLNetworkSource" ofType:@"bundle"];
NSBundle *bundle = [NSBundle bundleWithPath:bundlePath];
NSString *imagePath = [bundle pathForResource:@"bill_head_bg" ofType:@"png"];
NSData *data = [NSData dataWithContentsOfFile:imagePath];
UIImage *image = [UIImage imageWithData:data];
如果要打包上線,可能會(huì)有些問題蛔六,再針對(duì)不同的問題去解決就行荆永。我還沒有試,如果有問題国章,望指出屁魏。