創(chuàng)建部署
code-push login
code-push app add MyAppIOS ios react-native
code-push deployment ls MyAppIOS -k
code-push app add MyAppAndroid android react-native
code-push deployment ls MyAppAndroid -k
build.gradle里面增加配置
signingConfigs {
release {
keyAlias 'key0'
keyPassword ''
storeFile file('../')
storePassword ''
v1SigningEnabled true
v2SigningEnabled true
}
}
buildTypes {
debug{
}
releaseStaging {
minifyEnabled enableProguardInReleaseBuilds
buildConfigField "String", "CODEPUSH_KEY", '"key"'
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
release {
minifyEnabled enableProguardInReleaseBuilds
buildConfigField "String", "CODEPUSH_KEY", '"key"'
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
Android程序里面添加
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new CodePush(getResources().getString(R.string.reactNativeCodePush_androidDeploymentKey), getApplicationContext(), BuildConfig.DEBUG)
);
}
react native代碼
import CodePush from "react-native-code-push";
class App extends Component<{}> {
componentWillMount(){
CodePush.disallowRestart();//頁面加載的禁止重啟侠碧,在加載完了可以允許重啟
}
componentDidMount(){
CodePush.allowRestart();//在加載完了可以允許重啟
}
let codePushOptions = { checkFrequency: CodePush.CheckFrequency.ON_APP_RESUME };
App = CodePush(codePushOptions)(App);
export default App;
打包
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
cd android && ./gradlew assembleRelease
code-push release-react MyAppAndroid android --t 1.0.0 --dev false --d Production --des "1.修復(fù)了已知BUG" --m true
// 賬戶相關(guān)
code-push login 登陸
code-push loout 注銷
code-push access-key ls 列出登陸的token
code-push access-key rm <accessKye> 刪除某個(gè) access-key
// app操作相關(guān)
code-push app add <appName> <platform> react-native 在賬號里面添加一個(gè)新的app
code-push app remove 或者 rm 在賬號里移除一個(gè) app
code-push app rename 重命名一個(gè)存在 app
code-push app list 或則 ls 列出賬號下面的所有 app
code-push app transfer 把a(bǔ)pp的所有權(quán)轉(zhuǎn)移到另外一個(gè)賬號
// 應(yīng)用信息相關(guān)
code-push deployment add <appName> 部署
code-push deployment rm <appName> 刪除部署
code-push deployment rename <appName> 重命名
code-push deployment ls <appName> 列出應(yīng)用的部署情況
code-push deployment ls <appName> -k 查看部署的key
code-push deployment history <appName> <deploymentName> 查看歷史版本
// 發(fā)布
code-push release-react <appName> <platform> -t 版本 -d 環(huán)境 --des 描述 -m true (強(qiáng)制更新)
// 清除歷史部署記錄
code-push deployment clear <appName> Production or Staging
// 回滾
code-push rollback <appName> Production --targetRelease v4(codepush服務(wù)部署的版本號)