Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-native-pack

Package Overview
Dependencies
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-pack

rnpack是一个rn项目的打包构建工具,支持ios和android渠道提交,支持自建服务的增量更新

  • 1.2.2
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
3
decreased by-92.11%
Maintainers
1
Weekly downloads
 
Created
Source

#描述 rnpack是一个rn项目的打包构建工具,支持ios和android渠道提交,支持自建服务的增量更新

#v1.2.2 新增支持android

#v1.2.1 新增支持新版的xocdebuild

设计功能

命令工具安装

npm install rnpack-cli -g

##rnpack工具使用

  • 打包android
    • 编译项目
    • rnpack buildApk --buildType {alpha|beta|release} --apkName {项目名称}
    • 上传
    • rnpack uploadApk --buildType {alpha|beta|release} --file {文件路径}
    • 发布到fir.im
    • rnpack firApk --token {fir.im的token} --apkName {项目名称} --buildType {alpha|beta|release} --file {文件路径}
    • 上传和发布到fir.im
    • rnpack publishApkFile --token {fir.im的token} --apkName {项目名称} --buildType {alpha|beta|release} --file {文件路径}
    • 总和以上的操作:编译 上传 发布
    • rnpack publishApk --token {fir.im的token} --buildType {alpha|beta|release} --apkName {项目名称}
  • 打包ios
    • 打包项目
    • rnpack archiveIpa --configuration {Alpha|Beta|Release} --scheme {项目名称} --provisioningProfile {证书配置}
    • 上传和发布到fir.im
    • rnpack publishIpaFile --token {fir.im的token} --configuration {Alpha|Beta|Release} --scheme {项目名称} --file {文件路径}
    • 总和以上的操作:编译 上传 发布
    • rnpack publishIpa --token {fir.im的token} --configuration {Alpha|Beta|Release} --scheme {项目名称} --provisioningProfile {证书配置}
  • 用户命令
    • 登陆(登陆成功后,会生成.rnpack_token的文件)
    • rnpack login
    • 登出
    • rnpack logout
    • 登陆用户信息
    • rnpack me
  • 项目命令
    • 创建
    • createApp
    • 删除
    • deleteApp
    • 列出
    • apps
    • 选择(会生成rnpack_app.json的文件,保存选择的项目key)
    • selectApp
    • 设置服务地址(会生成rnpack_app.json的文件,保存设置的服务器)
    • setHost
  • 打包热更新命令
    • 发布热更新版本
    • bundle
    • 比对差异
    • diff
    • 与apk文件的bundle比对差异
    • diffFromApk
    • 与ipa文件的bundle比对差异
    • diffFromIpa
  • 热更新与大版本的关联管理
    • 用文件发布热更新
    • publish
    • 列出所有热更新
    • versions
    • 更新关联
    • update
  • 1024图片直接替换ios和andorid项目图标,android图片支持圆角转换
    • 尚未完成

##客户端使用 npm install react-native-pack --save

##工具客户端库:

  • api
    • Env {alpha|beta|release} 打包环境变量
    • packageVersion 大版本号
    • currentBundle 热更新版本号
    • currentVersion 热更新hash值
    • isFirstTime 是否是热更新后的首次打开
    • isRolledBack 是否是热更新失败后的首次打开
    • getHost 热更新服务地址
    • checkUpdate 检查更新
    • downloadApk 下载android更新包
    • downloadUpdate 热更新
    • switchVersion 切换版本,立即执行
    • switchVersionLater 切换版本,下次执行
    • markSuccess 更新成功标记
  • 示例代码
import {Platform, Alert, Linking} from "react-native";
import {checkUpdate, packageVersion, currentVersion, downloadUpdate, switchVersion, Env, downloadApk} from "react-native-pack";
import _updateConfig from "../../rnpack_app.json";
const {appKey} = _updateConfig[Platform.OS];

const doUpdate = info => {
    console.log("doUpdate info:", info);
    downloadUpdate(info).then(hash => {
        console.log("doUpdate 应用更新");
        //不再提示,默认下次启动应用更新
        // Alert.alert('提示', '检查到新的版本'+info.name+',是否重启应用?', [
        //     {text: '立即重启', onPress: ()=>{switchVersion(hash);}},
        //     {text: '下次启动时应用更新', onPress: ()=>{switchVersionLater(hash);}},
        // ]);
        switchVersion(info.hash, info.name).then((data)=>{
            console.log("switchVersion hash:", info.hash);
            console.log("switchVersion name:", info.name);
        }).catch((err)=>{
            console.log("switchVersion err:", err);
        });
    }).catch(err => {
        Alert.alert('提示', '更新失败.');
        console.log("doUpdate 更新失败:", err);
    });
};


export const checkVersionUpdate = (isLaunch) => {
    console.log("checkVersionUpdate");
    checkUpdate(appKey, Env).then(info => {
        console.log("check info:", info);
        if (info.type == "Package") {
            if(Platform.OS == "ios"){
                let url = info.opt.url || "https://itunes.apple.com/cn/app/wan-wu-she/id1156373629?l=en&mt=8";
                Alert.alert('提示', '您的应用版本已更新,请前往应用商店下载新的版本',
                    [{
                        text: '确定',
                        onPress: ()=>{
                            Linking.openURL(url);
                        }
                    }],
                    {cancelable:false}
                );
            }else{
                Alert.alert('提示', '您的应用版本已更新,是否更新?',
                    [
                        {
                            text: '取消', onPress: () => {}
                        },
                        {
                            text: '确定', onPress: () => {
                                downloadApk(info.data.url, info.data.hash).then((res)=>{
                                    console.log("downloadApk res:", res);
                                }).catch((err)=>{
                                    console.log("downloadApk err:", err);
                                })
                            }
                        }
                    ],
                    {
                        cancelable: false
                    }
                );
            }

        } else if (info.type == "Bundle") {
            doUpdate(info.updateInfo);
        } else {
            // Alert.alert('提示', '您的应用版本已是最新.');
            console.log("您的应用版本已是最新:", currentVersion + " packageVersion:" + packageVersion);
            if(!isLaunch){
                utils.toast("已经是最新版本");
            }
        }
    }).catch(err => {
        //Alert.alert('提示', '检测更新失败.');
        console.log("checkVersionUpdate 检测更新失败 err:", err);
    });
};

##工具服务端:

  • 存储android和ios的各类版本{alpha|beta|release}
  • 各个版本的增量更新包
  • 支持diff更新包
  • 支持阿里oss

Keywords

FAQs

Package last updated on 26 Feb 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc