AppDrop
通过链接共享iOS、Android和Mac应用。上传一个 .ipa, .apk, .aab, .apks,
或包含Mac的ZIP文件 .app. 你也可以上传 appdrop.app /下降.
npx appdrop path/to/App.ipa
# https://appdrop.app/d/k3m9x2p7qa
对于iOS版本,接收者打开他们iPhone上的链接,连接 簇应用 一次,签署应用程序 用他们自己的苹果ID,然后安装它。一切都发生在电话上;否 Mac,电缆或配置文件与他们的设备是必需的。
Android和Mac
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安装程序打开它,例如 应用程序管理器. Android的普通浏览器 安装程序无法自行安装拆分集。AppDrop从 基本APK验证所有分离的签名身份,并保留已签名的身份 档案不变。完全无符号集使用托管密钥进行签名。 这不会将拆分合并为一个独立的APK。 - 麦克: 上传一个包含一个的ZIP文件
.app,或通过.app到 命令行。接收方将其解压缩并移动到应用程序。现有的 保留开发者身份签名及公证;AppDrop不签名, 公证,或者绕过看门人。不支持DMG和PKG上传。
下载将共享链接保存到浏览器的应用程序库。下载不是 记录为已确认的安装。自动安装、更新和 更新仍然是iOS功能。
同一应用程序的构建
有些人可以保留几个链接到同一个应用程序(一个bundle ID)在他们的
图书馆,如分馆的旁建 main他们的手机上有一个
因此,AppDrop会在一个应用程序替换另一个应用程序之前询问,而且只询问已安装的应用程序
自动更新。为了区分它们,每个链接都显示一个标签:git
运行CLI的分支,或者 --label:
npx appdrop build/App.ipa --label "onboarding redesign"
更新应用程序
每个链接都有一个 更新链接, https://appdrop.app/d/<id>/manage#<key>.
保持它的私密性:任何拥有它的人都可以将新版本发布到共享链接,所以
CLI只打印共享链接。在创建链接的计算机上,通过
分享链接到 --update;密钥保存在 ~/.appdrop/drops.json.
npx appdrop links 打印更新链接,您可以在浏览器中打开该链接
上传新版本,或传递到另一台计算机上的CLI:
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 链接的更新链接:
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 到更新链接:
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:
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账号
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),所以它可以被捕获:
url=$(npx appdrop build/App.ipa)
--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上进行的,所以这个命令就消失了。