# appdrop 中文文档

规范地址：https://npmcn.com/package/appdrop/

版本：0\.8\.0
npm 元数据更新时间：2026-11-03T01:45:20.047Z
中文译文更新时间：2026-11-03T03:43:15.889Z
软件包许可：MIT

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/appdrop
原文对照：https://npmcn.com/package/appdrop/?lang=original
项目主页：https://appdrop.app/
源码仓库：https://github.com/expo/appdrop

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：86.8 kB，7 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=18
- 运行依赖：0 个
- 首次发布：2026-09-02T01:08:32.883Z
- 最新版本发布：2026-11-03T01:45:19.881Z
- 已发布版本数：14（近 12 个月 14 个）

## 中文简介

通过AppDrop链接共享iOS、Android和Mac应用

## 安装

```sh
npm install appdrop
```

也可以使用：`pnpm add appdrop`、`yarn add appdrop`、`bun add appdrop`

## README

# AppDrop

通过链接共享iOS、Android和Mac应用。上传一个 `.ipa`， `.apk`， `.aab`， `.apks`， 或包含Mac的ZIP文件 `.app`． 你也可以上传 [appdrop.app /下降](https://appdrop.app/drop).

```sh
npx appdrop path/to/App.ipa
# https://appdrop.app/d/k3m9x2p7qa
```

对于iOS版本，接收者打开他们iPhone上的链接，连接 [簇应用](https://testflight.apple.com/join/JtrpVEsc) 一次，签署应用程序 用他们自己的苹果ID，然后安装它。一切都发生在电话上；否 Mac，电缆或配置文件与他们的设备是必需的。

## Android和Mac

```sh
npx appdrop build/App.apk
npx appdrop build/App.aab
npx appdrop build/App.apks --force
npx appdrop build/MyApp.app   # macOS: packages the bundle with ditto
npx appdrop build/MyApp.zip
```

安卓和Mac下载跳过苹果登录和iPhone配对。AppDrop保存 原始签名文件和包/包标识符。未签名的Android版本 接收一个appdrop管理的签名，并保留一个加密的每链接密钥 用于将来更新的私有存储。

-   **APK:** 在Android上打开下载并按照安装程序操作。安卓可能会问 你可以允许浏览器安装应用程序。已经签署的apk将被验证和分发。无符号的apk 自动签名。更新需要相同的包ID和签名密钥。
-   **:艺术展** AppDrop构建一个通用的APK，并用链接的托管密钥对其进行签名。 接收方下载一个normal `.apk`． 通用APK只包含功能 适合熔接的模块；依赖于按需播放模式的应用可能会 需要一个专门的APK构建。
-   **apk:** 从bundletool或兼容的 出口国。发布失败 `apks_requires_force` 除非 `--force` 是 显式地提供。浏览器上传要求 **分发APK集**． 使用拆分APK安装程序打开它，例如 [应用程序管理器](https://muntashir.dev/AppManager/en/)． Android的普通浏览器 安装程序无法自行安装拆分集。AppDrop从 基本APK验证所有分离的签名身份，并保留已签名的身份 档案不变。完全无符号集使用托管密钥进行签名。 这不会将拆分合并为一个独立的APK。
-   **麦克:** 上传一个包含一个的ZIP文件 `.app`，或通过 `.app` 到 命令行。接收方将其解压缩并移动到应用程序。现有的 保留开发者身份签名及公证；AppDrop不签名， 公证，或者绕过看门人。不支持DMG和PKG上传。

下载将共享链接保存到浏览器的应用程序库。下载不是 记录为已确认的安装。自动安装、更新和 更新仍然是iOS功能。

## 同一应用程序的构建

有些人可以保留几个链接到同一个应用程序（一个bundle ID）在他们的 图书馆，如分馆的旁建 `main`他们的手机上有一个 因此，AppDrop会在一个应用程序替换另一个应用程序之前询问，而且只询问已安装的应用程序 自动更新。为了区分它们，每个链接都显示一个标签：git 运行CLI的分支，或者 `--label`：

```sh
npx appdrop build/App.ipa --label "onboarding redesign"
```

## 更新应用程序

每个链接都有一个 **更新链接**， `https://appdrop.app/d/<id>/manage#<key>`. 保持它的私密性：任何拥有它的人都可以将新版本发布到共享链接，所以 CLI只打印共享链接。在创建链接的计算机上，通过 分享链接到 `--update`;密钥保存在 `~/.appdrop/drops.json`. `npx appdrop links` 打印更新链接，您可以在浏览器中打开该链接 上传新版本，或传递到另一台计算机上的CLI：

```sh
npx appdrop build/App.ipa --update https://appdrop.app/d/k3m9x2p7qa/manage#…
```

新文件必须保持相同的平台和bundle/package标识符。 Android上传也必须保留相同的签名者证书指纹。APK 当最终APK使用相同的密钥时，AAB上传可以相互更新。 AppDrop验证服务器上的实际文件；客户端声明的签名是 不可信的。更改后的密钥将失败 `android_signer_changed`，即使 `--force`． 无效签名失败 `invalid_android_signature`，而不是 被当作未签名的。根据已发布的链接检查现有链接 在此策略下的第一次更新之前提交文件。 对于iOS版本，安装了较早版本的用户再次打开共享链接时，会看到“可用更新”。 然后用浏览器的苹果ID重新注册并安装 回忆说。iOS保存应用程序的数据。

### Apple Vision Pro发布

iPhone/iPad连接也可以携带同一款应用的原生Apple Vision Pro 构建。发布visionOS `.ipa` 链接的更新链接：

```sh
npx appdrop build/AppVision.ipa --update https://appdrop.app/d/k3m9x2p7qa/manage#…
```

它必须使用与链接的应用相同的bundle标识符(将visionOS添加为 应用程序的目标在Xcode中的目的地保存它)。它不能代替 iPhone/iPad构建：Apple Vision Pro从链接安装visionOS构建， 而所有其他设备都在使用iPhone/iPad。各有千秋 版本;以相同的方式再次发布以更新它。一个visionOS应用的图标 屏幕显示为圆形，就像Apple Vision Pro一样。类中读取平台 构建的信息。Plist，并在上传成功后检查它。

### Mac的构建

同样的链接也可以携带应用的Mac版本。发布压缩后的文件 `.app` (或 `.app`（在macOS上为您压缩）， `.dmg` 或者 `.pkg` 到更新链接：

```sh
npx appdrop build/App.app --update https://appdrop.app/d/k3m9x2p7qa/manage#…
```

然后mac电脑从链接下载，就像上传一样：AppDrop不会 重新签署Mac应用程序，所以用开发者ID签署并公证它才能打开 没有任何警告。它必须是相同的应用：相同的bundle标识符，或者Mac 催化剂的 `maccatalyst.` 一个。其他设备都是iPhone/iPad Mac版本有自己的版本。

重用当前发布的构建号(`CFBundleVersion`或Android的 `versionCode`)失败之前 正在上传，出口代码为1。增加IPA中的构建号，或者显式地增加 允许重复使用 `--force`：

```sh
npx appdrop build/App.ipa --update <update-link> --force
```

仍然只需要更改显示版本 `--force`． 与 `--json`,一个 拒绝打印 `{ "code": "reused_build_number", "error": "…" }` 发送到stdout 并退出1；Stderr还解释了如何继续。强制成功更新 包括一个 `warnings` 数组中的JSON结果。 `--force` 允许构建号重用和拆分归档警告；仍然需要管理键和匹配的包标识符。

`npx appdrop links` 打印共享的每个应用程序的共享和更新链接 从这台机器。要让代理接管一个应用程序，给它一个更新链接。与 `--json`,一个 新链接的 `manageUrl` 和 `manageKey` 都打印一次，这样一个脚本就可以存储 它们是秘密； `--key` 和 `$APPDROP_MANAGE_KEY` 使用普通共享 链接，并且密钥也保存在 `~/.appdrop/drops.json` （`$APPDROP_HOME`）。

## 你的AppDrop账号

```sh
npx appdrop login
```

将此计算机链接到您的AppDrop帐户。它打印一个链接；任意打开 您登录appdrop的设备。App，审批，命令 完成。这台电脑上已经共享的所有应用都会加入这个账户，所以 从那时起，每个人都分享或更新了吗？您帐户中的应用程序将显示 appdrop。App /帐户，你在那里管理他们登录，没有他们的更新 链接。 `npx appdrop logout` 断开电脑连接；应用程序保留在帐户中。

无需登录，每次上传都会提示 `npx appdrop login`, `--json` 结果 说 `"account": "not-linked"`． 它们还包括 `claimUrl`的链接 一个应用程序到你的账户，只需点击一下。与更新链接一样，它也可以 发布到应用程序，所以要保密。连接的计算机 `--json` 结果 说 `"account": "added"` 代替。

登录信息保存在 `~/.appdrop/account.json` （`$APPDROP_HOME`),可读 只有你。它可以添加和管理应用程序，没有其他功能，并且可以使用一年或更长时间 直到你从appdrop.app/account的Computers下移除电脑。

## 对于脚本和代理

只有链接指向stdout (progress指向stderr)，所以它可以被捕获：

```sh
url=$(npx appdrop build/App.ipa)
```

`--json` 打印详细信息：

```json
{"url":"https://appdrop.app/d/k3m9x2p7qa","manageUrl":"https://appdrop.app/d/k3m9x2p7qa/manage#…","id":"k3m9x2p7qa","revision":1,"name":"My App","bundleId":"com.example.app","version":"42","shortVersion":"1.2.0","size":31457280,"hasIcon":true,"manageKey":"…"}
```

当文件不是受支持的应用程序或上传失败时，退出代码是非零的。 Android/Mac JSON结果还包括 `artifactType`： `apk`， `apks`，或者 `macos-zip`． Android的结果还包括 `androidSigning` 是否带有SHA-256证书指纹，以及密钥是否由appdrop管理。

## 选项

| 选项 |  |
| --- | --- |
| `--update <link>` | 将应用作为现有应用的新版本发布。采用更新链接或共享链接+ `--key`. |
| `--key <key>` | 关键是，当 `--update` 给出一个共享链接(也 `$APPDROP_MANAGE_KEY`）。 |
| `--json` | 将结果打印为JSON。 |
| `--force` | 允许分裂 `.apks` 发布的构建号的归档和重用；永远不要更改签名者。 |
| `--origin <url>` | 使用另一个AppDrop服务器 `$APPDROP_ORIGIN`）。 |
| `-h`， `--help` | 显示帮助。 |

上传文件最大可达500mb `.ipa` 可以签名或不签名，因为它是 为每个收件人重新签名。已经签名的Android应用程序和Mac应用程序将保留其现有签名。 AppDrop读取应用程序的名称、标识符、版本和可用的PNG图标来显示 在它的页面上。CLI没有依赖项。

0.3之前的版本支持iPhone和Mac (`npx appdrop <code>`）。 配对现在是通过Tuft在iPhone上进行的，所以这个命令就消失了。

## 常见问题

### appdrop 是什么？

通过AppDrop链接共享iOS、Android和Mac应用

### 如何安装 appdrop？

在项目目录运行 npm install appdrop，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 appdrop，可以用 npx appdrop 直接运行。

### appdrop 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/appdrop 是否存在。

### appdrop 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### appdrop 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### appdrop 可以商用吗？

appdrop 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### appdrop 还在维护吗？

最新版本 0\.8\.0 发布于 2026/11/03（今天）；至今共发布 14 个版本，其中过去 12 个月发布了 14 个；首次发布于 2026/09/02。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

