美文网首页React Native 资料库ReactNativeiOS进阶指南
react native codepush之搭建自己的更新服务器

react native codepush之搭建自己的更新服务器

作者: 花儿的爸爸 | 来源:发表于2016-12-14 11:44 被阅读3752次

    参考文章-code-push-server

    感谢上文作者的辛苦付出

    本文简历在已经成功运行 微软 codepush热更新,并且了解codepush 相关指令的基础上。

    参考文章-iOS

    参考文章-android

    简介

    code-push-server是一个开源项目,基于 nodejs + mysql 搭建自己的热更新服务器

    环境

    macOS Sierra 10.12.1

    nodejs v4.3.1

    mysql 5.6

    一、安装mysql(其他环境自行对应mysql安装)

    推荐安装 mysql 5.6

    mysql 5.6下载地址

    一键安装 毫无压力

    设置mysql密码

    进入mysql安装目录,命令分步执行

    cd /usr/local/mysql/bin
    
    ./mysql -u root -p  //这一步是登录root用户 回车即可,5.6默人密码为空
    
    修改密码
    
    set password = password('输入你的新密码');  //引号不能省略
    
    启动mysql服务

    打开 系统设置,在面板下会出现一个mysql的图标,点击进入并启动即可。

    mysql.jpeg

    二、本地安装code-push-serve

    作者发布了两种安装方式(npm安装或源码安装),在此我推荐使用源码安装,因为后期我们要基于这个服务修改自己的网页,源码安装方便些。

    首先进入项目准备安装的目录执行以下命令(如果没有安装git 则可以去git上download下来解压)

    git clone https://github.com/lisong/code-push-server.git
    

    clone完毕后执行

    cd code-push-server && npm install
    

    修改config/config.js 文件,在 db 对象中添加数据库信息,参考如下配置,对应自己的用户名密码,数据库名称

    db: {
        username: "root",   //
        password: "123456",
        database: "codepush",
        host: "127.0.0.1",
        port: 3306,
        dialect: "mysql"
      }
    

    初始化服务,项目根目录(code-push-server)下执行命令

    ./bin/db init --dbhost localhost --dbuser root --dbpassword #初始化mysql数据库
    

    上述无报错即可进行下一步

    三、配置服务器-存储在本地

    修改config/config.js

    common 对象中的 storageType改为 local

    新建文件存储目录 datastorage,并修改配置文件

    local: {
        //此地址为以上新建的文件夹,自己对应自己的路径
        storageDir: "/Users/luozhong/work/reactNative/server/storage",
        //ip地址改成自己设备对应的ip 这是下载地址 
        downloadUrl: "http://192.168.201.113:3000/download"
      }
      
     common: {
        //此地址为以上新建的文件夹,自己对应自己的路径
        dataDir: "/Users/luozhong/work/reactNative/server/data",
        storageType: "local"    //选择存储类型,目前支持local和qiniu配置
      }
    

    启动服务

    ./bin/www   //无报错信息即为正常启动,可以在浏览器中输入 http://127.0.0.1:3000查看,默认用户名密码是 admin 123456
    

    四、项目与服务建立链接

    进入reactnative 项目根目录执行命令查看当前是否登录,因为是新服务,所以要先保证没有别的账号正在登录

     code-push whoami
    

    如果报错如下,表示没有登录

    [Error]  You are not currently logged in. Run the 'code-push login' command to authenticate with the CodePush server.
    

    如果没有报错 并且显示邮箱账号,则表示已经登录账户,则我们要先注销当前账号

    code-push logout
    

    成功注销后执行登录指令,浏览器会自动打开本地服务登录页面,命令行中会提示输入key

    code-push login http://localhost:3000
    

    输入账号和密码 admin 123456 登录后点击按钮 获取token 并复制token到命令行中,并回车确认

    Successfully logged-in. //提示此表示登录成功
    

    至此我们已经将codepush和我们自建的服务器关联起来了.

    五、注册应用

    项目根目录下执行

    code-push app add Trip-ios  //项目名+iOS/android后缀
    

    六、项目中修改对应的key

    查看key

    code-push deployment ls Trip-ios
    

    Staging值修改到对应的iOS或安卓项目中并重新打包安装

    七、发布更新

    进入项目根目录执行以下命令,表示打包并发布,默认发布在开发环境

     code-push release-react Trip-ios ios
    

    成功后即可打开app验证。

    相关文章

      网友评论

      • SwitchLeo:您好,现在我照着您写的文档成功更新了,但是现在只能在同一网络下才能更新,如果真机和我当前电脑不在同一wifi下就不行了,我如果想实现在不同网络下都能更新,是不是要先找台服务器,然后进行您写的文档前半部分进行同样的配置,然后在我自己的电脑上对这个服务器地址进行登录,真机端填写服务器的ip才可以呢?
        SwitchLeo:@花儿的爸爸 好的,意思是公网服务器上的部署和本地部署没有什么区别是么,也要进行您文档中写到的“一”、“二”、“三” 步骤进行配置么
        花儿的爸爸:是的,需要部署到公网服务器。
      • 90b2cdbcc6ad:楼主 我更新时报错,日志为[CodePush] 404: does not found deployment,请问您遇到过吗
      • 曾梦轩:博主我执行./bin/www是回报这个错误:Access denied for user 'root'@'localhost' (using password: YES)你知道怎么解决吗

      本文标题:react native codepush之搭建自己的更新服务器

      本文链接:https://www.haomeiwen.com/subject/sdsimttx.html