React Native ios打包

開發(fā)React Native的過程成,js代碼和圖片資源運行在一個Debug Server上唱较,每次更新代碼之后只需要使用command+R鍵刷新就可以看到代碼的更改深纲,這種方式對于調試來說是非常方便的劫灶。
但當我們需要發(fā)布App到App Store的時候就需要打包,使用離線的js代碼和圖片。這就需要把JavaScript和圖片等資源打包成離線資源科吭,在添加到Xcode中昏滴,然后一起發(fā)布到App Strore中。
打包離線資源需要使用命令react-native bundle(注:文中使用的項目名稱為RNIos)

react-native bundle

React Native的react-native bundle命令是用來進行打包的命令对人,react-native bundle的詳細命令選項https://github.com/facebook/react-native/blob/master/local-cli/bundle/bundleCommandLineArgs.js谣殊。
其中我們常使用的一線命令選項:

  • --entry-file ,ios或者android入口的js名稱,比如index.ios.js
  • --platform ,平臺名稱(ios或者android)
  • --dev ,設置為false的時候將會對JavaScript代碼進行優(yōu)化處理牺弄。
  • --bundle-output, 生成的jsbundle文件的名稱姻几,比如./ios/bundle/index.ios.jsbundle
  • --assets-dest 圖片以及其他資源存放的目錄,比如./ios/bundle

打包命令如下:

react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output ./ios/bundle/index.ios.jsbundle --assets-dest ./ios/bundle

為了方便使用,也可以把打包命令寫到npm script中:

"scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "bundle-ios":"node node_modules/react-native/local-cli/cli.js bundle --entry-file index.ios.js  --platform ios --dev false --bundle-output ./ios/bundle/index.ios.jsbundle --assets-dest ./ios/bundle"

  },

然后運行命令直接打包:

npm run bundle-ios

打包結果:

...
transformed 360/360 (100%)
[8:56:31 PM] <END>   find dependencies (3427ms)
bundle: start
bundle: finish
bundle: Writing bundle output to: ./ios/bundle/index.ios.jsbundle
bundle: Done writing bundle output
bundle: Copying 5 asset files
bundle: Done copying assets

可以看到jsbundle和資源文件已經打包成功势告。

添加資源

離線包生成完成之后蛇捌,可以在ios目錄下看到一個bundle目錄,這個目錄就是bundle生成的離線資源咱台。
需要在Xcode中添加資源到項目中络拌,必須使用Create folder references的方式添加文件夾.

  1. Add Files to "RNIos"


    add Files
  2. 選擇bundle文件,在option中選擇Create folder references
    選擇文件夾
  3. 添加到項目中的文件夾必須是藍色


    文件夾必須是藍色

jsCodeLocation

在ios中AppDelegate里可以看到設置JavaScript代碼位置的代碼:
Debug Server上的設置

NSURL *jsCodeLocation;
  jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];

  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                      moduleName:@"RNIos"
                                               initialProperties:nil
                                                   launchOptions:launchOptions];

在開發(fā)的過程中可以在這里配置Debug Server的地址,當發(fā)布上線的時候回溺,就需要使用離線的jsbundle文件春贸,因此需要設置jsCodeLocation為本地的離線jsbundle混萝。
設置離線的jsCodeLocation:

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"bundle/index.ios" withExtension:@"jsbundle"];

離線包里的.jsbundle文件是經過優(yōu)化處理的,因此運行效率也會比Debug的時候更高一些萍恕。

項目代碼地址:https://github.com/jjz/react-native/tree/master/RNIos

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末逸嘀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子允粤,更是在濱河造成了極大的恐慌崭倘,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件类垫,死亡現(xiàn)場離奇詭異司光,居然都是意外死亡,警方通過查閱死者的電腦和手機阔挠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門飘庄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脑蠕,“玉大人购撼,你說我怎么就攤上這事∏聪桑” “怎么了迂求?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長晃跺。 經常有香客問我揩局,道長,這世上最難降的妖魔是什么掀虎? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任凌盯,我火速辦了婚禮,結果婚禮上烹玉,老公的妹妹穿的比我還像新娘驰怎。我一直安慰自己,他們只是感情好二打,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布县忌。 她就那樣靜靜地躺著,像睡著了一般继效。 火紅的嫁衣襯著肌膚如雪症杏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天瑞信,我揣著相機與錄音厉颤,去河邊找鬼。 笑死凡简,一個胖子當著我的面吹牛逼友,可吹牛的內容都是我干的绩郎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼翁逞,長吁一口氣:“原來是場噩夢啊……” “哼肋杖!你這毒婦竟也來了?” 一聲冷哼從身側響起挖函,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤状植,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后怨喘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體津畸,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年必怜,在試婚紗的時候發(fā)現(xiàn)自己被綠了肉拓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡梳庆,死狀恐怖暖途,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情膏执,我是刑警寧澤驻售,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站更米,受9級特大地震影響欺栗,放射性物質發(fā)生泄漏。R本人自食惡果不足惜征峦,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一迟几、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧栏笆,春花似錦类腮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至七婴,卻和暖如春祟偷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背打厘。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工修肠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人户盯。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓嵌施,卻偏偏與公主長得像饲化,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吗伤,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內容