美文网首页
2、React Native-Pushy发布

2、React Native-Pushy发布

作者: 学习abc | 来源:发表于2018-11-12 09:33 被阅读0次

    1、注册

        注册账号

        在项目在根目录输入

        pushy login

        email: <输入你的注册邮箱>

        password: <输入你的密码>

    2、创建APP(这里只有iOS的部分其他的可以去官网查看链接

    pushy createApp --platform ios

    App Name: <输入应用名字>

    3、添加代码热更新功能

    获取appKey

    import {

      Platform,

    } from 'react-native';import _updateConfig from './update.json';

    const {appKey} = _updateConfig[Platform.OS];

    4、主要代码

    import {

      Linking,

    } from 'react-native';

    import {

      isFirstTime,

      isRolledBack,

      packageVersion,

      currentVersion,

      checkUpdate,

      downloadUpdate,

      switchVersion,

      switchVersionLater,

      markSuccess,

    } from 'react-native-update';


    下载部分:

    doUpdate = info => {

        downloadUpdate(info).then(hash => {

          Alert.alert('提示', '下载完毕,是否重启应用?', [

            {text: '是', onPress: ()=>{switchVersion(hash);}},

            {text: '否',},

            {text: '下次启动时', onPress: ()=>{switchVersionLater(hash);}},

          ]);

        }).catch(err => {

          Alert.alert('提示', '更新失败.');

        });

      };


    检查更新部分:

    checkUpdate = () => {

        checkUpdate(appKey).then(info => {

          if (info.expired) {

            Alert.alert('提示', '您的应用版本已更新,请前往应用商店下载新的版本', [

              {text: '确定', onPress: ()=>{info.downloadUrl && Linking.openURL(info.downloadUrl)}},

            ]);

          } else if (info.upToDate) {

            Alert.alert('提示', '您的应用版本已是最新.');

          } else {

            Alert.alert('提示', '检查到新的版本'+info.name+',是否下载?\n'+ info.description, [

              {text: '是', onPress: ()=>{this.doUpdate(info)}},

              {text: '否',},

            ]);

          }

        }).catch(err => {

          Alert.alert('提示', '更新失败.');

        });

      };


    设置markSuccess 如果不设置会代码回滚:

    if (isFirstTime) {

          Alert.alert('提示', '这是当前版本第一次启动,是否要模拟启动失败?失败将回滚到上一版本', [

            {text: '是', onPress: ()=>{throw new Error('模拟启动失败,请重启应用')}},

            {text: '否', onPress: ()=>{markSuccess()}},

          ]);

        } else if (isRolledBack) {

          Alert.alert('提示', '刚刚更新失败了,版本被回滚.');

        }

      }


    5、打包

    打包之前先在工程中打离线包

    根目录有release_ios文件夹,没有的话创建一个

    打包程序导出ipa文件

    注意:update.json 需要跟你的js文件在一个目录下 否则会找不到文件 也有可能我引入的路径问题

    react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output release_ios/main.jsbundle --assets-dest release_ios/


    6、发布应用

    pushy uploadIpa <your-package.ipa>

    之后根据终端提示操作:

    $ pushy bundle --platform <ios|android>

    Bundling with React Native version:  0.22.2

    <各种进度输出>

    Bundled saved to: build/output/android.1459850548545.ppk

    Would you like to publish it?(Y/N)

    输入Y

      Uploading [========================================================] 100% 0.0s

    Enter version name: <输入版本名字,如1.0.0-rc>

    Enter description: <输入版本描述>

    Enter meta info: {"ok":1}

    Ok.

    Would you like to bind packages to this version?(Y/N)

    输入Y

    9168) 2.3.0(normal) (newest)

    Total 1 packages.

    Enter packageId: 9168

    Ok.

    注意:packageId是 bind是返回的四位数字(9168)!

    全部完成

    相关文章

      网友评论

          本文标题:2、React Native-Pushy发布

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