ciuji/ciuji.github.io

code-push-server 使用笔记

ciuji opened this issue · 0 comments

ciuji commented

Code Push Server

环境搭建

code-push-server 配置

  1. 初始化mysql数据库

    sample:

    code-push-server-db init --dbhost localhost --dbuser root --dbpassword Abc123456

    注:这里配置的东西需要在config.js中相对应。

  2. 修改code-push-server 的config.js配置

    参考config

    注意:每次修改完config之后需要重新启动code-push-server

    主要需要修改的配置项有:

    • common里面的storageType,dataDir
    • 对应的storagetype中的配置
    • 如果使用的是local,就需要修改storageDir和downloadUrl,不修改的话他就会自己创建相应文件夹,可能遇到无法创建的问题。
    • sample config.js:
      var config = {};
      config.development = {
        db: {
          username: process.env.RDS_USERNAME || "root",
          password: process.env.RDS_PASSWORD || "Abc123456",
          database: process.env.DATA_BASE || "codepush",
          host: process.env.RDS_HOST || "127.0.0.1",
          port: process.env.RDS_PORT || 3306,
          dialect: "mysql",
          logging: false
        },
        local: {
          storageDir: "/Users/i348909/tablee/workspaces/storage",
          downloadUrl: "http://10.130.229.22:3000/download",
          public: '/download'
        },
        common: {
          tryLoginTimes: 0,
          diffNums: 3,
          dataDir: "/Users/i348909/tablee/workspaces/data",
          storageType:  "local",
          updateCheckCache: false
        },
      config.development.log4js = {
        appenders: {console: { type: 'console'}},
        categories : {
          "default": { appenders: ['console'], level:'error'},
          "startup": { appenders: ['console'], level:'info'},
          "http": { appenders: ['console'], level:'info'}
        }
      }
      
      config.production = Object.assign({}, config.development);
      module.exports = config;
  3. 启动code-push-server

    code-push-server

code-push 配置

  1. 在code-push中登陆到code-push-server

    sample:

    code-push login 127.0.0.1:3000

    初始用户名:admin,初始密码:123456

    获取token后复制到命令行中,即可成功登陆。

  2. 在code-push中添加app

    sample:

    code-push app add CodePushDemo-andrioid android react-native

    注:android和ios需要分别添加

  3. 获取Deployment Key或查看Deployment Key

    sample:

    code-push deployment list CodePushDemo-android -k

    注:有两个key,分别是Staging环境和Production环境。

react-native项目配置和发布

  1. 修改info.plist和MainApplication.java

    这是应用配置最重要的地方,也是与使用微软的react-native-code-push不一样的地方,需要添加"YourCodePushServerUrl"来指向自己的服务器

    参考config react-native project

    sample:

    Android 修改 MainApplication.java 如下

    @Override
    protected List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList(
        new MainReactPackage(),
        new CodePush(
          "l373MdjxhXA0KNikVY6akGUvZwMF4ksvOXqog",
          MainApplication.this,
          BuildConfig.DEBUG,
          "http://10.130.229.22:3000"
          )
    );
    }
  2. 发布应用

    sample:

    code-push release-react CodePushDemo-android android
  3. 注意

    使用code-push要参考正确使用热更新

    !!!使用热更新,每次修改只需要修改js文件,然后就可以使用code-push发布了,不需要修改build.gradle中的版本号.如果修改了java或者objective-c,就不能使用热更新,必须重新发布。

可参考的详细流程

code-push和code-push-server

React Native应用部署/热更新-CodePush最新集成总结(新)