code-push-server 使用笔记
ciuji opened this issue · 0 comments
ciuji commented
Code Push Server
环境搭建
- 安装mysql(建议使用mysql5.6,mysql8.0版本须按照关于mysql8.0配置navicat的问题进行修改)
- 服务器安装code-push-server
npm install code-push-server -g
- 项目里安装code-push-cli,参考集成CodePushSdk
code-push-server 配置
-
初始化mysql数据库
sample:
code-push-server-db init --dbhost localhost --dbuser root --dbpassword Abc123456
注:这里配置的东西需要在config.js中相对应。
-
修改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;
- common里面的
-
启动code-push-server
code-push-server
code-push 配置
-
在code-push中登陆到code-push-server
sample:
code-push login 127.0.0.1:3000
初始用户名:admin,初始密码:123456
获取token后复制到命令行中,即可成功登陆。
-
在code-push中添加app
sample:
code-push app add CodePushDemo-andrioid android react-native
注:android和ios需要分别添加
-
获取Deployment Key或查看Deployment Key
sample:
code-push deployment list CodePushDemo-android -k
注:有两个key,分别是Staging环境和Production环境。
react-native项目配置和发布
-
修改info.plist和MainApplication.java
这是应用配置最重要的地方,也是与使用微软的react-native-code-push不一样的地方,需要添加"YourCodePushServerUrl"来指向自己的服务器
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" ) ); }
-
发布应用
sample:
code-push release-react CodePushDemo-android android
-
注意
使用code-push要参考正确使用热更新
!!!使用热更新,每次修改只需要修改js文件,然后就可以使用code-push发布了,不需要修改build.gradle中的版本号.如果修改了java或者objective-c,就不能使用热更新,必须重新发布。