/react-native-upload

( MacOs ) 一键打包部署 android/ios APP到各个测试平台和App Store,拒绝繁琐

Primary LanguageShellMIT LicenseMIT

react-native-upload

一键上传 android/ios APP到各个测试平台和app store

支持系统

MacOs (使用了shell语法,而且ios只能依赖xcode软件)

已集成平台

安装

# Npm
npm install react-native-upload --save-dev

# Yarn
yarn add react-native-upload --dev

生成配置

先执行这个命令:

npx upload-init

执行命令后会在项目根目录中创建一个upload.json文件,并生成以下内容:

// 未用到的配置,可以置空不填写,也可以直接删除
{
    // 上传到蒲公英
    "pgy": {
        // 上传凭证,访问链接 https://www.pgyer.com/account/api ,复制Api Key
        "pgy_api_key": "",
        "ios_export_plist": "./ios-export/ad-hoc.plist"
    },
    // 上传到fir.im
    "fir": {
        // 上传凭证,访问链接 https://fir.im/apps/apitoken ,复制token
        "fir_api_token": "",
        "ios_export_plist": "./ios-export/ad-hoc.plist"
    },
    // 上传到App Store
    "app_store": {
        // 用户(APP_ID)必须拥有该APP的上传权限
        "username": "",
        // 随机密码,访问链接 https://appleid.apple.com/account/manage ,点击 App专用密码 生成密码
        "random_password": "",
        "ios_export_plist": "./ios-export/app-store.plist"
    },
    // 上传到Test Flight
    "test_flight": {
        // 用户(APP_ID)必须拥有该APP的上传权限
        "username": "",
        // 可与App Store配置共享同一个随机密码
        "random_password": "",
        "ios_export_plist": "./ios-export/ad-hoc.plist"
    }
}

准备工作

ios_export_plist即ios打包参数的存放路径。因为ios的打包参数及其复杂,每个项目都会有一些差异,所以为了保证能准确无误地打包出符合要求的app,您需要手动执行一次以下内容(只需一次)。

1、手动打包

点击 Xcode -> Product -> Archive,等待打包完成

2、导出app

点击 Xcode -> Window -> Organizer,选择刚才打的包,点击右边按钮Distribute App,进行一系列选择之后,最后点击Export按钮,把文件下载到本地磁盘。

一般来说,您可能需要手动导出两份app文件:

  • 如果您想把app上传到测试平台,请尽量选择Ad Hoc的打包方式
  • 如果您想把app上传到App Store,请选择ios App Store的打包方式

3、复制plist文件

导出的app目录中大致包含如下内容:

请将文件ExportOptionns.plist复制到项目中,并保持与配置ios_export_plist所指向的路径一致。推荐您将文件重命名为打包方式的名称,如ad-hoc.plistapp-store.plist等。

自动打包上传

蒲公英

npx upload-pgy

# 填写更新日志
npx upload-pgy --log "增加xxx功能"

# 忽略平台
npx upload-pgy --no-android
npx upload-pgy --no-ios

fir.im

npx upload-fir

# 填写更新日志
npx upload-fir --log "增加xxx功能"

# 忽略平台
npx upload-fir --no-android
npx upload-fir --no-ios

App Store

npx upload-appstore

# 或者缩写
npx upload-as

Test Flight

npx upload-testflight

# 或者缩写
npx upload-tf

只打包不上传

由于某种原因,您只想安安静静地打包出app而不上传到任何平台,您可以用以下指令处理您的需求:

同时打包android和ios

npx upload-build --ios-export-plist path/to/xxx.plist

单独打包android

npx upload-build-android

单独打包ios

npx upload-build-ios --ios-export-plist path/to/xxx.plist

欢迎使用并给我提建议