• code-push热部署开发者端


    热部署开发者端-如何发布热部署

    一、安装
    全局安装: npm install -g code-push-cli@2.1.9

    二、常用命令
    登陆: code-push login [域名]

    注销: code-push logout

    显示登陆的token: code-push access-key ls

    删除某个access-key: code-push access-key rm

    添加项目: code-push app add [app名称]

    删除项目: code-push app remove [app名称]

    列出账号下的所有项目: code-push app list

    部署一个环境: code-push deployment add

    删除部署: code-push deployment rm

    列出应用的部署: code-push deployment ls

    查询部署环境的key: code-push deployment ls -k

    查看部署的历史版本信息: code-push deployment history

    重命名一个部署: code-push deployment rename

    三、发布更新
    l 自动打包发布
    自动打包你的js和资源文件成bundle并且上传发布到CodePush的服务器(注意: 默认是Staging环境)

    code-push release-react MyApp ios --plistFile ../MyApp/Info.plist -t "1.0.0" --des "测试完毕还原原状" -m true -d development
    
    • 1

    l 手动打包发布
    自己打包有两种: 第一种只是更新js文件(可整个项目的js文件/单个js文件), 第二种js文件+images文件(release 整个文件夹)

    第一种单单js文件

    1. 创建一个bundles文件夹

    打包命令:

    // react-native bundle --platform 平台 --entry-file 启动文件 --bundle-output 打包js输出文件 --assets-dest 资源输出目录 --dev 是否调试
    
    • 1

    打包整个项目的js文件:

    react-native bundle --platform ios --entry-file index.ios.js --bundle-output ./bundles/main.bundle --dev false
    
    • 1
    1. 发布更新

    发布命令:

     code-push release <应用名称> <Bundles所在目录> <对应的应用版本> --deploymentName 更新环境 --description 更新描述 --mandatory 是否强制更新
    
    • 1

    例如:

    code-push release HybridDemo ./bundles/main.bundle 1.0.0 --deploymentName Production --description "第四次更新" --mandatory true
    
    • 1

    测试版的发布不能搞到正式版,promote命令 目前理解就是把测试环境copy到正式环境

    第二种js文件+图片资源

    // 1. –assets-dest 后就是放图片的文件夹路径

    react-native bundle --platform ios --entry-file index.ios.js --bundle-output ./bundles/qqm.jsbundle --assets-dest ./bundles --dev false
    
    • 1

    // 2. push bundles文件

    code-push <release/debug> <projectName(与注册的app同名)><bundle文件名> <版本号>
    
    • 1

    例如:

    code-push release appName ./bundles 1.0.0
    
    • 1

    l 更新规则

    APP内plist文件写的版本号可能是1.0.0,所以reactjs打包上传的版本也要是1.0.0(而不是1.0.1这样递增),需要和APP保持一致,然后服务器会根据你最新上传的且和APP一样的版本作为最新版。

    范围表达式

    1.2.3 仅仅只有1.2.3的版本

    所有版本

    1.2.x 主要版本1,次要版本2的任何修补程序版本

    1.2.3 - 1.2.7 1.2.3版本到1.2.7版本

    大于等于1.2.3 <1.2.7 大于等于1.2.3版本小于1.2.7的版本

    ~1.2.3 大于等于1.2.3版本小于1.3.0的版本

    ^1.2.3 大于等于1.2.3版本小于2.0.0的版本

    l 修改更新

     code-push patch <appName> <deploymentName> [--label <label>] [--description <description>] [--disabled] [--mandatory] [--rollout <rolloutPercentage>]
    
    • 1

    选项:

    –label, -l 指定标签版本更新,默认最新版本 [string] [默认值: null]

    –description, --des 描述 [string] [默认值: null]

    –disabled, -x 是否禁用该更新 [boolean] [默认值: null]

    –mandatory, -m 是否强制更新 [boolean] [默认值: null]

    –rollout, -r 此更新推送用户的百分比,此值仅可以从先前的值增加。 [string] [默认值: null]

    示例:

      code-push patch MyApp Production --des "Updated description" -r 50         修改"MyApp""Production"部署中最新更新的描述 ,并且更新推送范围为50%
    
    • 1
      code-push patch MyApp Production -l v3 --des "Updated description for v3"  修改"MyApp""Production"部署中标签为v3的更新的描述
    
    • 1

    l 升级环境

    Usage: code-push promote <appName> <sourceDeploymentName> <destDeploymentName> [--description <description>] [--mandatory] [--rollout <rolloutPercentage>]
    
    • 1

    选项:

    –description, --des 描述 [string] [默认值: null]

    –disabled, -x 是否禁用该更新 [boolean] [默认值: null]

    –mandatory, -m 是否强制更新 [boolean] [默认值: null]

    –rollout, -r 此促进更新推送用户的百分比 [string] [默认值: null]

    示例:

     code-push promote MyApp Staging Production                                   "MyApp""Staging"部署的最新更新发布到"Production"部署中
    
    • 1
    code-push promote MyApp Staging Production --des "Production rollout" -r 25  "MyApp""Staging"部署的最新更新发布到"Production"部署中, 并且只推送25%的用户
    
    • 1

    l 回滚更新

    Usage: code-push rollback <appName> <deploymentName> [--targetRelease <releaseLabel>]
    
    • 1

    选项:

    –targetRelease, -r 指定回归到哪个标签,默认是回滚到上一个更新 [string] [默认值: null]

    示例:

    code-push rollback MyApp Production                     "MyApp""Production"部署执行回滚
    
    • 1
      code-push rollback MyApp Production --targetRelease v4  "MyApp""Production"部署执行回滚,回滚到v4这个标签版本
    
    • 1

    当部署的版本不同时,不能跨版本回滚。

    例如:CodePush历史版本中为2.10.1,此时发布2.10.2版本。

    当从2.10.2发起回滚操作回到2.10.1时,是不可行的。

    l 项目实际发布时使用命令

    1. 登录: code-push login

    2. 列出账号下的所有项目: code-push app list

    3. 列出应用的部署: code-push deployment ls MyApp

    4. 查看部署的历史版本信息: code-push deployment history MyApp Debug

    5. 发布版本更新: code-push release-react MyApp ios -d Staging -p ../MyApp/Info.plist --des 'UI调整' -t '1.0.2'

    6. 把更新推到另一个环境: code-push promote QQMProjec Staging Production

    7. 关闭某个版本: code-push patch MyApp Staging -l v13 --des '关闭v13' -x true

    四、注意:
    在关联项目登录的时候,有时候已经登录其他账号,需要查看登录账号或者退出的话

    进入reactnative 项目根目录执行命令查看当前是否登录,先保证没有别的账号正在登录

    code-push whoami
    
    • 1

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

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

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

    code-push logout
    
    • 1

    成功注销后执行登录指令,登录服务器

    code-push login http://localhost:3000
    
    • 1
  • 相关阅读:
    基于googlenet网络的动物种类识别算法matlab仿真
    Pytorch框架的学习(1)
    什么是springMVC 视图和视图解析器
    探索性数据分析EDA
    Web过滤器:Filter
    day39 注解 设计模式(单例模式和工厂模式)
    宝塔面板搭建thinkphp(fastadmin)项目注意事项
    如何做出技术和测试都喜欢的需求文档?
    设计模式之桥梁模式
    Es6的promise和async
  • 原文地址:https://blog.csdn.net/weixin_43517190/article/details/126298652