美文网首页React Native开发
React Native集成codePush

React Native集成codePush

作者: Yully东 | 来源:发表于2019-01-17 14:48 被阅读0次

    1:codePush 命令
    npm install -g code-push-cli
    code-push -v
    code-push login 登陆
    code-push loout 注销
    code-push access-key ls 列出登陆的token
    code-push access-key rm <accessKeyName> 删除某个 access-key
    code-push app add <appName> <os> <platform> 在账号里面添加一个新的app
    code-push app remove 或者 rm 在账号里移除一个app
    code-push app rename 重命名一个存在app
    code-push app list 或则 ls 列出账号下面的所有app
    code-push app transfer 把app的所有权转移到另外一个账号
    code-push register //当注册成功后,CodePush会给我们一个key,
    我们直接复制这个key,然后在终端中将这个key填写进去即可
    应用添加成功后就会返回对应的production 和 Staging 两个key,production代表生产版的热更新部署,Staging代表开发版的热更新部署

    2:deployment 命令
    code-push deployment <command>
    命令:
    add Add a new deployment to an app
    clear Clear the release history associated with a deployment
    remove Remove a deployment from an app
    rm Remove a deployment from an app
    rename Rename an existing deployment
    list List the deployments associated with an app
    ls List the deployments associated with an app
    history Display the release history for a deployment
    h Display the release history for a deployment

    3:集成CodePush SDK
    进入项目根目录(具有Android,ios,和package.json文件为项目根目录)
    npm install --save react-native-code-push
    react-native link

    4:发布更新
    code-push release-react <appName> <platform> [options]
    选项:
    --bundleName, -b Name of the generated JS bundle file. If unspecified, the standard bundle name will be used, depending on the specified platform: "main.jsbundle" (iOS), "index.android.bundle" (Android) or "index.windows.bundle" (Windows) [字符串] [默认值: null]
    --deploymentName, -d Deployment to release the update to [字符串] [默认值: "Staging",分为"Staging","Production"]
    --description, --des Description of the changes made to the app with this release [字符串] [默认值: null,描述,备注]
    --development, --dev Specifies whether to generate a dev or release build [布尔] [默认值: false]
    --disabled, -x Specifies whether this release should be immediately downloadable [布尔] [默认值: false]
    --entryFile, -e Path to the app's entry Javascript file. If omitted, "index.<platform>.js" and then "index.js" will be used (if they exist) [字符串] [默认值: null]
    --gradleFile, -g Path to the gradle file which specifies the binary version you want to target this release at (android only). [默认值: null]
    --mandatory, -m Specifies whether this release should be considered mandatory [布尔] [默认值: false,强制更新]
    --noDuplicateReleaseError When this flag is set, releasing a package that is identical to the latest release will produce a warning instead of an error [布尔] [默认值: false]
    --plistFile, -p Path to the plist file which specifies the binary version you want to target this release at (iOS only). [默认值: null]
    --plistFilePrefix, --pre Prefix to append to the file name when attempting to find your app's Info.plist file (iOS only). [默认值: null]
    --rollout, -r Percentage of users this release should be immediately available to [字符串] [默认值: "100%"]
    --privateKeyPath, -k Specifies the location of a RSA private key to sign the release with [字符串] [默认值: false]
    --sourcemapOutput, -s Path to where the sourcemap for the resulting bundle should be written. If omitted, a sourcemap will not be generated. [字符串] [默认值: null]
    --targetBinaryVersion, -t Semver expression that specifies the binary app version(s) this release is targeting (e.g. 1.1.0, ~1.2.3). If omitted, the release will target the exact version specified in the "Info.plist" (iOS), "build.gradle" (Android) or "Package.appxmanifest" (Windows) files. [字符串] [默认值: null]
    --outputDir, -o Path to where the bundle and sourcemap should be written. If omitted, a bundle and sourcemap will not be written. [字符串] [默认值: null]
    --config, -c Path to the React Native CLI configuration file [字符串] [默认值: null]
    -v, --version 显示版本号 [布尔]

    mkdir bundles //在当前目录中新建文件夹bundles
    react-native bundle --platform android --entry-file index.js --bundle-output ./bundles/index.android.bundle --dev false
    code-push release <appName> <updateContentsPath> <targetBinaryVersion> [options]
    code-push release AndroidRNCodePushDemo ./bundles/index.android.bundle 1.0.0 --deploymentName Staging --description "1:测试第一次codePush" --mandatory true

    5:接入流程
    安装 CodePush CLI
    注册 CodePush账号
    在CodePush服务器注册App
    RN代码中集成CodePush
    原生应用中配置CodePush
    生成bundle
    上传bundle

    6:appcenter账号
    appcenter login
    npm i appcenter-cli 更新appcenter客户端
    After registering, you are automatically logged-in with the CLI, so until you explicitly log out, you don't need to login again from the same machine.
    appcenter profile list 展示登录的appcenter账号信息
    appcenter logout 退出登录appcenter
    appcenter tokens list
    appcenter tokens delete <machineName(ID)>
    appcenter tokens create -d "Azure DevOps Integration"
    appcenter login --token <accessToken>
    appcenter apps list
    appcenter apps set-current <ownerName>/<appName>
    appcenter codepush deployment list -a <ownerName>/<appName>
    appcenter codepush deployment list
    appcenter apps get-current
    appcenter codepush deployment list -a Yieron/iOSRNCodePushDemo --displayKeys

    codePush与Pushy起冲突,一个应用集成一个热更新就行。

    具体参考以下两篇文章:

    CodePush热更新详细接入教程 作者光强_上海
    react-native热更新之CodePush详细介绍及使用方法
    作者clf_programing

    特别感谢两位的文章!

    微软官网链接:Releasing CodePush updates using the App Center CLI

    相关文章

      网友评论

        本文标题:React Native集成codePush

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