趁著現(xiàn)在有時間,總結(jié)一下掐松,留給需要的小伴們看踱侣。
1粪小、首先我們要先打離線資源包
為了日后把打包方便,我們把打包指令填在下package.json
下
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest",
"bundle-ios": "node node_modules/react-native/local-cli/cli.js bundle --entry-file index.js --platform ios --dev false --bundle-output ./ios/bundle/index.jsbundle --assets-dest ./ios/bundle"
},
這樣打包只需要在根目錄下輸入npm run bundle-ios
即可(切記一定要先在項目-->ios下新建bundle文件夾
抡句,不然會報錯)
之后你會發(fā)現(xiàn)bundle文件下面已經(jīng)有了內(nèi)容(如下圖)
2探膊、接下來將離線資源包放入到項目中
在Xcode中添加資源到項目中,必須使用Create folder references的方式(也就是文件夾的方式)添加bundle文件夾:
必須使用Create folder references的方式添加:
添加成功后bundle文件夾為藍色(如下圖)
3待榔、打包的最后一步
在開發(fā)的過程中可以在這里配置Debug Server的地址逞壁,當發(fā)布上線的時候,就需要使用離線的jsbundle文件锐锣,因此需要設(shè)置jsCodeLocation為本地的離線jsbundle腌闯。
在AppDelegate設(shè)置離線的jsCodeLocation:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSURL *jsCodeLocation;
// jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
// jsCodeLocation = [NSURL URLWithString:@"http://192.0.0.0:8081/index.bundle?platform=ios&dev=true"];//真機Hot reloading
#ifdef DEBUG
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];//開發(fā)調(diào)試
#else
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"bundle/index" withExtension:@"jsbundle"];//上線打包
#endif
........
}
上傳
按照下面的步驟走,就可以打包成功雕憔,我不說各種原因姿骏,只講操作步驟:
簡單粗暴!=锉恕分瘦!
首先你得有一個蘋果開發(fā)者賬號。要是沒有琉苇,就自己申請一個嘲玫。
注意:在創(chuàng)建app IDs 還有描述文件的時候,需要添加的是發(fā)布版本并扇,就是ad hoc里面的版本去团,而不是簡單的開發(fā)版本。如下圖:(證書與描述文件都需要發(fā)布版本的)
可以先忽略穷蛹,一會在創(chuàng)建證書的時候再看
1.創(chuàng)建一個ipaDemo工程渗勘。
2.打開蘋果開發(fā)者中心。
網(wǎng)址 :https://developer.apple.com/membercenter
3.打開這個網(wǎng)址之后會出現(xiàn)下面的樣式俩莽。
剛剛進入的的界面的樣式
4.進入App開發(fā)賬戶里面:
手機App
5.創(chuàng)建證書的總體步驟旺坠,分5步:
5.1創(chuàng)建證書
5.2添加APP IDs
5.3添加設(shè)備
5.4創(chuàng)建描述文件
總體步驟
對于這些過程,網(wǎng)絡(luò)上的文章比較多扮超,我也不一一展開了取刃,我添加一個比較好的博客的文章,與大家分享這個過程出刷。說白了這也是真機測試與創(chuàng)建證書的一部分璧疗。李大澤網(wǎng)址
6. iOS打包,一共有三種方式馁龟,不過還是通過Xcode的打包比較好崩侠,因為我在測試了這三種打包之后,我發(fā)現(xiàn)通過xcode打包的包的大小是最小的坷檩,不過下面我也介紹這三種打包方式却音。
第一種打包方式:
6.1 Xcode打包:
6.1.1
- 配置provisioning profile與證書
6.1.2
2.配置provisioning profile與證書
我在上面這兩步的時候改抡,由于只調(diào)整了一個code singing,所以出現(xiàn)了一直打包不成功系瓢。一般情況下阿纤,是先進行步驟6.1.1,基本上不用管步驟6.1.2夷陋,只需要看看6.1.2是否與6.1.1的描述文件欠拾、證書是否一致。保證一致就可以了骗绕。
6.1.3
6.1.4 選擇Release 模式:
6.1.5 需要release 藐窄,Run里面的,也需要release Archive 里面的酬土。
6.1.6
打包示例
6.1.7開始打包:若是comd+b 運行成功了枷邪,就可以進行下一步了
6.1.8生成包:
6.1.9輸出包:
6.1.10
生成四種不同的開發(fā)包,查看鏈接诺凡。4種ipa包
6.1.11
6.1.12
6.1.13 在桌面上出現(xiàn)安裝包:
大功告成
第二種打包方式:
6.2 通過生成文件Payload文件夾,生成ipa包践惑。
重復上面6.1.7 之前的所有步驟腹泌,在commd+b 編譯之后,查看是否編譯成功尔觉,要是成功凉袱。如下圖:
6.2.1
表示可以打包了
6.2.2
6.2.3
6.2.4在桌面上新建一個文件夾名字叫“Payload”,注意一個字母也不能少侦铜。并將上面的APP直接拷貝到這個文件夾下面专甩,壓縮這個文件夾,并將文件夾的后綴名钉稍,改正 “.ipa”涤躲。如下圖:
ipa
第三種打包方式:
通過iTunes,打包贡未。
6.3.1 打開你的iTunes种樱。
6.3.2 直接把剛剛的那個 .app,拖到你的iTunes里面俊卤。如下圖:
6.3.3 在Finder里面顯示:
6.3.4這樣就生成了一個ipa包:
- 安裝到測試機上:對于以上生成的所有的ipa包嫩挤,都需要雙擊打開他們,在你的iTunes里面消恍,安裝你的這個應(yīng)用包岂昭。如下圖:
安裝步驟
生成的app如下圖,要是能夠顯示app是正常的狠怨,則證明沒有問題约啊,否則安裝不成功: