appuploader-cli Command Line Tool
appuploader-cli is a command-line tool distributed with the AppUploader main application. It allows you to upload a signed IPA/PKG package to App Store Connect without relying on Xcode (or macOS), or to analyze an IPA locally and generate the resource description file required by App Store. In terms of functionality, it is equivalent to the 'Submit to App Store' button on the 'File & Submit' page — if you prefer working in a terminal or want to integrate the upload step into your own CI/CD pipeline, you can use it directly.
Using the
upload/infocommands requires that the Apple ID you use has been authorized at appuploader.net. Unauthorized or expired accounts will receive alicense failed/license expirederror and cannot use the tool. You can view and activate your 'AppUploader License' in the 'Account Overview' page.
Where to Find It
appuploader-cli is bundled with the main application and is located in the runtime/ directory under the installation directory (file names differ slightly by platform):
- macOS:
runtime/darwin/appuploader-cli - Windows:
runtime/windows/appuploader-cli.exe
To use it directly from your system terminal, either cd into that directory and run it, or add that directory to your shell's PATH.
There is also an
appuploader-adiin the same directory. Do not confuse it withappuploader-cli—it serves a different purpose and is not meant for manual invocation.
upload — Upload to App Store Connect
appuploader upload -f <IPA/PKG path> -u <Apple ID> -p <app-specific password> [--type ios]
| Parameter | Description |
|---|---|
-f, --file
|
Path to the IPA/PKG file to upload (required). |
-u, --username
|
Your Apple ID email (required). |
-p, --password
|
The app-specific password in the format xxxx-xxxx-xxxx-xxxx (required; not your Apple ID login password; see 'File & Submit' for how to generate one). |
--type |
Package type: ios \ |
Example:
appuploader upload -f Payload.ipa -u dev@example.com -p abcd-efgh-ijkl-mnop
Progress and result logs are printed in real time during the upload. If an upload fails, the log contains specific reasons, such as a duplicate package, version number conflict, or signature mismatch.
info — Generate App Store Resource Description File
This command does not upload; it only analyzes IPA/PKG/ZIP packages locally and generates the AppStoreInfo.plist resource description file required for App Store delivery. It also does not require Xcode, which makes it suitable for validating the package contents in CI in advance, or when you need this plist for other upload tools.
appuploader info -u <Apple ID> <file path> [-o output file] [--format xml|binary]
| Parameter | Description |
|---|---|
-u, --username
|
Apple ID email registered and authorized at appuploader.net (required). |
-f, --file
|
The file path; can also be passed as a positional argument. |
-o, --output
|
Write to the specified file; if omitted, output to stdout. |
--format |
Output format: xml (default) or binary. |
--deterministic |
Fix fields that would otherwise vary (UUID, PID, timestamp, etc.) so the output can be compared byte-by-byte (for testing/CI). |
Example:
appuploader info -u dev@example.com Payload.ipa -o AppStoreInfo.plist
Other Commands
-
appuploader help [command]— Show help for a specific command. Equivalent to adding--help. -
appuploader completion [bash|zsh|fish|powershell]— Generate a shell completion script for the specified shell. You can ignore this in daily use.
FAQ
-
license failed/license expired: The Apple ID has not been authorized on appuploader.net, or the authorization has expired. Go to 'Account Overview' and activate or renew the 'AppUploader License'. -
App-specific password error: The
-poption expects an Apple-generated app-specific password in the formatxxxx-xxxx-xxxx-xxxx, not your login password. See 'File & Submit' for instructions on generating one. -
Prefer a GUI: The capabilities of the two commands above correspond to the 'Submit to App Store' button on the 'File & Submit' page (for
upload). Theinfocommand currently has no GUI entry and is only available through the command line.
Top comments (0)