Skip to main content

ta-cli

Upload your Android (APK) and iOS (IPA) directly from this command line and notifying your team members

The official CLI for TestApp.io app distribution

Upload your Android (APK) and iOS (IPA) apps directly from the command line.
Notify your team instantly. Get feedback faster.

🖥️ Try me 👇


Quick Install

curl -Ls https://github.com/testappio/cli/releases/latest/download/install | bash

Works on macOS (Intel & Apple Silicon) and Linux (x86_64, ARM). For Windows, see below.


What is ta-cli?

ta-cli lets you upload app builds to TestApp.io without leaving your terminal. Perfect for:

  • Local development - Quick uploads while coding

  • CI/CD pipelines - Automated releases on every build

  • Team collaboration - Notify testers instantly with each release

Features:

  • Upload Android APK and iOS IPA files

  • Automatic app info extraction (version, bundle ID, etc.)

  • Git integration for release notes

  • Team notifications

  • Chunked uploads with automatic retry

  • Cross-platform support


Installation

macOS & Linux

curl -Ls https://github.com/testappio/cli/releases/latest/download/install | bash

This installs to /usr/local/bin/ta-cli.


Windows

Download from Releases:

File

Architecture

ta-cli-Windows-x86_64.exe

64-bit (recommended)

ta-cli-Windows-i686.exe

32-bit

Rename it ta-cli.exe and add it to your PATH, or run it directly.


Verify Installation

ta-cli version

Quick Start

1. Get your credentials

Credential

Where to find it

API Token

App ID

Your app page → Integrations tab at portal.testapp.io/apps

2. Configure (interactive)

ta-cli config

Follow the prompts to enter your credentials.


3. Publish your app

ta-cli publish

That's it! Your app is uploaded, and your team is notified.


Commands

ta-cli publish

Upload your app to TestApp.io.

ta-cli publish [flags]

Flag

Description

Default

--api_token

Your API token

From config

--app_id

Your App ID

From config

--release

android, ios, or both

both

--apk

Path to Android APK file

From config

--ipa

Path to iOS IPA file

From config

--release_notes

Custom release notes

None

--git_release_notes

Use latest git commit as notes

false

--git_commit_id

Include commit ID in notes

false

--notify

Notify team members

false

--archive_latest_release

Archive previous release

false

--config

Custom config file path

~/.ta-cli.json

ta-cli config

Interactive configuration wizard.

ta-cli config

ta-cli version

Display version information.

ta-cli version

ta-cli completion

Generate shell autocompletion scripts.

# Bash
ta-cli completion bash > /etc/bash_completion.d/ta-cli# Zsh
ta-cli completion zsh > "${fpath[1]}/_ta-cli"# Fish
ta-cli completion fish > ~/.config/fish/completions/ta-cli.fish

Configuration

Config File

Location: ~/.ta-cli.json

{
  "api_token": "your_api_token",
  "app_id": "your_app_id",
  "release": "both",
  "apk": "/path/to/app.apk",
  "ipa": "/path/to/app.ipa",
  "release_notes": "",
  "git_release_notes": true,
  "git_commit_id": false,
  "notify": true,
  "archive_latest_release": false
}

Custom Config Path

ta-cli publish --config=/path/to/custom-config.json

Config Priority

  1. Command-line flags (highest priority)

  2. Config file specified by --config

  3. .ta-cli.json in current directory

  4. ~/.ta-cli.json (default)


Environment Variables

Use environment variables instead of config files (ideal for CI/CD):

Variable

Description

TESTAPPIO_API_TOKEN

Your API token

TESTAPPIO_APP_ID

Your App ID

TESTAPPIO_RELEASE

Release type: android, ios, or both

TESTAPPIO_ANDROID_PATH

Path to APK file

TESTAPPIO_IOS_PATH

Path to IPA file

TESTAPPIO_NOTIFY

Send notifications: true or false

TESTAPPIO_RELEASE_NOTES

Custom release notes

TESTAPPIO_GIT_RELEASE_NOTES

Use git commit as notes: true or false

TESTAPPIO_GIT_COMMIT_ID

Include commit ID: true or false

Example:

export TESTAPPIO_API_TOKEN="your_token"
export TESTAPPIO_APP_ID="your_app_id"
ta-cli publish --apk=./app.apk --release=android

CI/CD Integrations

ta-cli works with any CI/CD platform that supports bash. Just install and run!


Quick Setup (Any CI/CD)

# 1. Install ta-cli
curl -Ls https://github.com/testappio/cli/releases/latest/download/install | bash# 2. Upload your app
ta-cli publish \
  --api_token=$TESTAPPIO_API_TOKEN \
  --app_id=$TESTAPPIO_APP_ID \
  --apk=./app-release.apk \
  --release=android \
  --notify=true

For the best experience, use our dedicated integrations with built-in auto-updates:

Integration

Description

Link

GitHub Action

Native GitHub Actions integration

Fastlane Plugin

Native Fastlane plugin

Platform-Specific Guides

We have detailed guides for each CI/CD platform:

Platform

Documentation

GitHub Actions

Fastlane

GitLab CI/CD

Jenkins

Bitrise

CircleCI

Travis CI

Azure Pipelines

Xcode Cloud


Examples

Android Only

ta-cli publish \
  --release=android \
  --apk=./app-release.apk \
  --notify=true

iOS Only

ta-cli publish \
  --release=ios \
  --ipa=./App.ipa \
  --notify=true

Both Platforms

ta-cli publish \
  --release=both \
  --apk=./app-release.apk \
  --ipa=./App.ipa \
  --release_notes="Bug fixes and improvements" \
  --notify=true

With Git Integration

ta-cli publish \
  --git_release_notes=true \
  --git_commit_id=true \
  --notify=true

Archive Previous Release

ta-cli publish \
  --apk=./app-release.apk \
  --archive_latest_release=true \
  --notify=true

Supported Platforms

Operating Systems

OS

Architectures

Binary

macOS

Intel (x86_64), Apple Silicon (arm64), Universal

ta-cli-Darwin-*

Linux

x86_64, ARM64 (aarch64), ARMv7, i686

ta-cli-Linux-*

Windows

x86_64 (64-bit), i686 (32-bit)

ta-cli-Windows-*.exe

Supported File Types

Platform

File Type

Notes

Android

.apk

Debug or release signed APK

iOS

.ipa

Requires valid provisioning profile


Updating

Re-run the install script to update to the latest version:

curl -Ls https://github.com/testappio/cli/releases/latest/download/install | bash

Check your current version:

ta-cli version

Uninstalling

sudo rm /usr/local/bin/ta-cli
rm ~/.ta-cli.json  # Optional: remove config

Troubleshooting

"command not found: ta-cli"

The binary isn't in your PATH:

# Option 1: Restart your terminal
# Option 2: Add to PATH manually
export PATH=$PATH:/usr/local/bin
# Option 3: Use full path
/usr/local/bin/ta-cli version

Upload Fails or Hangs

  1. Check internet connection

  2. Verify credentials - Ensure API token and App ID are correct

  3. Validate your file - Make sure the APK/IPA exists and isn't corrupted

  4. Retry - The CLI has automatic retry with exponential backoff

Invalid APK/IPA Error

  • APK: Ensure it's a valid Android package with AndroidManifest.xml

  • IPA: Ensure it contains Info.plist and a valid provisioning profile

Config Issues

Reset your configuration:

rm ~/.ta-cli.json
ta-cli config

Windows-Specific Issues

  • Run Command Prompt or PowerShell as Administrator if needed

  • Use forward slashes or escaped backslashes in paths: C:/path/to/app.apk


API Reference

For advanced integrations, see the TestApp.io API Documentation.


Support

Resource

Link

Help Center

CLI Documentation

Email

Issues


Need help? Contact us — we're happy to assist!

Did this answer your question?