一、先把環(huán)境搭建好心例,好進(jìn)行下面的步驟
安裝
在你的項(xiàng)目根目錄下運(yùn)行以下命令:
npm install -g react-native-update-cli
npm install --save react-native-update@具體版本請看下面的表格
react-native link react-native-update(如果link成功的話,就不需要配置了,如果手動配置,請接著看)
npm install -g react-native-update-cli這一句在每一臺電腦上僅需運(yùn)行一次蔫慧。
注意 *
如果訪問極慢或者顯示網(wǎng)絡(luò)失敗,請設(shè)置使用淘寶鏡像(也僅需設(shè)置一次):
npm config set registry https://registry.npm.taobao.org --global
npm config set disturl https://npm.taobao.org/dist --global
安裝命令示例:
npm install --save react-native-update@你想安裝的相關(guān)版本號
手動link
如果第一步的react-native link
已成功(iOS工程和安卓工程均能看到依賴)权薯,可以跳過此步驟
- 在XCode中的Project Navigator里,右鍵點(diǎn)擊
Libraries
?Add Files to [你的工程名]
- 進(jìn)入
node_modules
?react-native-update
?ios 并選中
RCTHotUpdate.xcodeproj` - 在XCode中的project navigator里,選中你的工程,在
Build Phases
?Link Binary With Libraries
中添加libRCTHotUpdate.a
- 繼續(xù)在
Build Settings
里搜索Header Search Path
姑躲,添加$(SRCROOT)/../node_modules/react-native-update/ios - Run your project (
Cmd+R
)
二、要配置好自己的項(xiàng)目
配置Bundle URL(iOS)
在工程target的Build Phases->Link Binary with Libraries中加入libz.tbd盟蚣、libbz2.1.0.tbd
在你的AppDelegate.m文件中增加如下代碼:
// ... 其它代碼
import "RCTHotUpdate.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if DEBUG
// 原來的jsCodeLocation保留在這里
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
debug用此模式黍析,即可進(jìn)行DEBUG的熱更新
else
// 非DEBUG情況下啟用熱更新
jsCodeLocation=[RCTHotUpdate bundleURL];
release用此模式,即可進(jìn)行release模式的熱更新刁俭,如果更新失敗橄仍,也許就是你下邊的步驟有誤,接著看下邊內(nèi)容
endif
// ... 其它代碼
}
三牍戚、iOS的ATS例外配置
這個無需介紹侮繁,必須的
從iOS9開始,蘋果要求以白名單的形式在Info.plist中列出外部的非https接口如孝,以督促開發(fā)者部署https協(xié)議宪哩。在我們的服務(wù)部署https協(xié)議之前,請在Info.plist中添加
四第晰、開始登陸和創(chuàng)建應(yīng)用了
首先請在http://update.reactnative.cn注冊帳號锁孟,然后在你的項(xiàng)目根目錄下運(yùn)行以下命令:
$ pushy login
email: <輸入你的注冊郵箱>
password: <輸入你的密碼>
你或者在網(wǎng)站注冊和登錄都是可以的
這會在項(xiàng)目文件夾下創(chuàng)建一個.update文件,注意不要把這個文件上傳到Git等CVS系統(tǒng)上茁瘦。你可以在.gitignore末尾增加一行.update來忽略這個文件品抽。
一個是iOS另一個是Android
如果你已經(jīng)在網(wǎng)頁端或者其它地方創(chuàng)建過應(yīng)用,也可以直接選擇應(yīng)用:
選擇或者創(chuàng)建過應(yīng)用后甜熔,你將可以在文件夾下看到update.json文件圆恤,其內(nèi)容類似如下形式:
{
"ios": {
"appId": 1,
"appKey": "<一串隨機(jī)字符串>"
},
"android": {
"appId": 2,
"appKey": "<一串隨機(jī)字符串>"
}
}
這一點(diǎn)很重要。腔稀。盆昙。羽历。
五、下邊就是添加熱更新代碼了
https://github.com/reactnativecn/react-native-pushy/blob/master/docs/guide2.md
六淡喜、進(jìn)行發(fā)布上傳包等
https://github.com/reactnativecn/react-native-pushy/blob/master/docs/guide3.md
七秕磷、主要介紹一些出現(xiàn)的問題
打完包之后就上傳
如果出現(xiàn)此問題,就說明上傳的IPA有重復(fù)炼团,可以在網(wǎng)頁端看下版本號澎嚣,要么刪除掉,要么就是+1個版本们镜,這樣下次就會成功上傳币叹。
上傳不成功的話润歉,你就會更新失敗
關(guān)鍵語句不重復(fù)多次模狭。。踩衩。
上述問題都沒有問題嚼鹉,iOS版本熱更新就不會出問題
如果有問題,請留言