code-push-server
code-push-server copied to clipboard
code-push-server 使用+一些需要注意的地方
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,就不能使用热更新,必须重新发布。
可参考的详细流程
请问我在初始化mysql的时候,想将数据库部署在其他的服务器上,该怎么去写命令呢?
请问我在初始化mysql的时候,想将数据库部署在其他的服务器上,该怎么去写命令呢?
@CveniEs 不好意思,这个我就没有尝试过了。
请问一下code-push的更新策略,我看源代码里只能查到当前app版本对应的package,所以上传新的package之后,app并不会检测到有新的package。我现在会手动更改数据库当前app版本对应的package版本,这样的才会更新。
@wlxscn 建议去提出新的issue,这个是我几个月前操作的时候写的文档了,我自己也记得不是很清楚了。但按照我的记忆来说,app应该会自动检测到新的package的,不知道您是bug还是配置错误了。
@ciuji 不好意思,是我代码的原因,已经解决了,谢谢
@ciuji 请问作者:我在测试的时候控制台会有提示更新,并且能够显示已经更新好了,下次启动安装更新,因为我在开发的时候实际上代码一变手机上代码跟着就变了,所以看不出来效果,我打包后总出现网络错误,不管我给sync函数传不传deploymentKey,请问这会是怎么回事呢?我手机可以通过手机的浏览器正常访问 3000端口,网页都出来了,请问还需要什么特殊的设置吗?我是Linux,会是防火墙的问题吗?我已经把3000端口放开了
@ciuji 请问作者:我在测试的时候控制台会有提示更新,并且能够显示已经更新好了,下次启动安装更新,因为我在开发的时候实际上代码一变手机上代码跟着就变了,所以看不出来效果,我打包后总出现网络错误,不管我给sync函数传不传deploymentKey,请问这会是怎么回事呢?我手机可以通过手机的浏览器正常访问 3000端口,网页都出来了,请问还需要什么特殊的设置吗?我是Linux,会是防火墙的问题吗?我已经把3000端口放开了
好像是https的原因,接触这个东西不久,没往这上面想。
@ciuji 老板有没有考虑过加上证书启动https呢?
@ciuji 老板有没有考虑过加上证书启动https呢?
我不是作者,我也只是一个使用者,而且这是我一年前测试的时候写的了所以可能有一些地方是没有更新的。 建议有问题的话提新的issue。 谢谢。
使用命令code-push login http://127.0.0.1:3000后,浏览器打开的页面是http://127.0.0.1:3000/cli-login?hostname=User-2020KPQSUS,页面错误404
使用命令code-push login http://127.0.0.1:3000后,浏览器打开的页面是http://127.0.0.1:3000/cli-login?hostname=User-2020KPQSUS,页面错误404
我也遇到了,后续有解决吗。求分享
用2.1.9 版本
使用命令code-push login [http://127.0.0.1:3000后,浏览器打开的页面是http://127.0.0.1:3000/cli-login?hostname=User-2020KPQSUS,页面错误404],请问哪个版本可以使用,谢谢
使用命令code-push login [http://127.0.0.1:3000后,浏览器打开的页面是http://127.0.0.1:3000/cli-login?hostname=User-2020KPQSUS,页面错误404],请问哪个版本可以使用,谢谢
npm install -g [email protected]