codepush熱更新
codepush2之配置自己的服務器
codepush4之linux下配置自己服務器
其實原生集成rn在集成codepush與新建rn項目集成codepush最主要的區別是node_modules的路徑發生變化了另外應用也不再是一個reactApplication了。大多數錯誤都是這兩點引起的。
這是我的文件目錄
1:項目路徑下命令行輸入yarn add react-native-code-push
2:不需要配置settings.gradle
settings.gradle:
include ':react-native-code-push'
project(':react-native-code-push').projectDir = new File(rootProject.projectDir, 'node_modules/react-native-code-push/android/app')
build.gradle:
apply from: "../node_modules/react-native/react.gradle"
apply from: "../node_modules/react-native-code-push/android/codepush.gradle"
不需要
dependencies {
compile project(':react-native-code-push')
}
否則會報錯如下
如果遇到這個錯誤請參考
3:修改codepush.gradle的35行node_modules路徑
4:修改react.gradle的14行reactRoot路徑
5:node_modules/react-native-code-push/android/app
將codepush包和codepush.gradle複製到自己的項目路徑下然後修改路徑包名等錯誤信息。
如圖所示:
如果不復制codepush,使用node_modules裏面的會報錯如下:
因爲這是一個原生應用並不是一個react native的應用。
6:複製過後運行還是會報錯,因爲缺少一個jar
自行下載然後放入libs裏面即可。
7:修改android/app/build.gradle
apply from: "../node_modules/react-native/react.gradle"
apply from: "codepush.gradle"
8:運行然後成功
如圖:
代碼僅供參考:
https://github.com/wuyunqiang/AndroidToRN
參考:
https://github.com/Microsoft/react-native-code-push/issues/1133
https://github.com/Microsoft/react-native-code-push/issues/1128
https://github.com/wuyunqiang/ReactNativeUtil/issues/19