appdrop
v0.5.0
Published
Share an iOS app: upload an .ipa and get an AppDrop link that installs it on any iPhone
Maintainers
Readme
AppDrop
Share an iOS app with anyone. Upload an .ipa and get a link; opening it on
an iPhone installs the app.
npx appdrop path/to/App.ipa
# https://appdrop.app/d/k3m9x2p7qaThe recipient opens the link on their iPhone, connects the Tuft app once, signs the app with their own Apple ID, and installs it. Everything happens on the phone; no Mac, cable or provisioning profile with their device in it is needed.
Updating an app
Creating a link also prints its update link, https://appdrop.app/d/<id>/manage#<key>.
Keep it private: anyone who has it can publish new builds to the share link.
Open it in a browser to upload a new build, or pass it to the CLI:
npx appdrop build/App.ipa --update https://appdrop.app/d/k3m9x2p7qa/manage#…The new .ipa must have the same bundle identifier. People who installed an
earlier version see "Update available" when they open the share link again,
and one tap re-signs and installs it with the Apple ID their browser
remembers. iOS keeps the app's data.
To let an agent take over an app, give it the update link. With --json, a
new link's manageUrl and manageKey are printed once, so a script can store
them as secrets; --key and $APPDROP_MANAGE_KEY work with a plain share
link, and keys are also saved in ~/.appdrop/drops.json ($APPDROP_HOME).
For scripts and agents
Only the link goes to stdout (progress goes to stderr), so it can be captured:
url=$(npx appdrop build/App.ipa)--json prints the details instead:
{"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":"…"}The exit code is non-zero when the file isn't an iOS app or the upload fails.
Options
| Option | |
| --- | --- |
| --update <link> | Publish the .ipa as a new version of an existing app. Takes the update link, or a share link plus --key. |
| --key <key> | The key, when --update is given a share link (also $APPDROP_MANAGE_KEY). |
| --json | Print the result as JSON. |
| --origin <url> | Use another AppDrop server (also $APPDROP_ORIGIN). |
| -h, --help | Show help. |
The .ipa can be signed or unsigned (it's re-signed for each recipient) and
up to 500 MB. AppDrop reads the app's name, bundle identifier, version and
icon from the .ipa to show on the install page. It has no dependencies.
Versions before 0.3 paired an iPhone from a Mac (npx appdrop <code>).
Pairing now happens on the iPhone through Tuft, so that command is gone.
