新版的codepush已經集成到微軟的 appcenter。
codepush有兩種發佈模式 一種 Staging 一種 Production,這裏以Staging 演示
react-native版本:0.57.0
appcenter地址 :appcenterreact
須要appcenter的帳號,若是你有了微軟、github 、google、facebook的帳號,能夠直接登陸。若是沒有那須要你註冊上述幾個的任何一個帳號。 登陸成功後,建立APP,這裏以安卓爲例
選擇 add new app
填寫完成 add new app
建立android
建立成功git
開始安裝一些須要的庫github
appcenter的客戶端npm
npm install -g appcenter-cli
在你的react-native項目根目錄執行,安裝codepush的庫react-native
npm install --save react-native-code-push
由於codepush裏面包含有native代碼,安裝完成後執行瀏覽器
react-native link react-native-code-push
安裝完畢後,登陸appcenter,打開終端app
appcenter login
這個會打開瀏覽器,瀏覽器裏面有個token,複製到終端回車便可登陸成功ide
查看 Deployment Key
終端執行函數
appcenter codepush deployment list -a <這裏的參數就是上面圖片中讓記住-a後面的參數> -k
執行完畢後,會在終端輸出
兩個key name分別是 Staging、Production。這裏咱們複製Staging的key。
切換到 android的代碼 。打開
// 1. 導入包 import com.microsoft.codepush.react.CodePush; public class MainApplication extends Application implements ReactApplication { private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { ... //2.這裏執行link的時候會自動生成 @Override protected String getJSBundleFile() { return CodePush.getJSBundleFile(); } @Override protected List<ReactPackage> getPackages() { // 3.用剛纔上面複製的key替換下面的 deployment-key-here return Arrays.<ReactPackage>asList( new MainReactPackage(), new CodePush("deployment-key-here", MainApplication.this, BuildConfig.DEBUG) ); } }; }
App.js代碼
import codePush from "react-native-code-push"; class MyApp extends Component { } //使用codepush函數包裝你的defaultApp。 MyApp = codePush(MyApp);
發佈js到appcenter
appcenter codepush release-react -a <這裏的參數就是上面圖片中讓記住-a後面的參數> -d Staging
發佈成功後,在appcenter網頁版裏面能夠看到。
到這裏配置都已經ok了。 打包apk,這時候app就具備了熱更新的能力, 每次修改好,使用 appcenter發佈 app就會按照規則更新。默認的規則 app在啓動的時候會靜默檢查更新,再下次app重啓的時候,會靜默安裝更新。