Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

TestApp.io

ta-cli

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.

Latest ReleaseDownloadsPlatformsLicense


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.


Table of Contents


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:

FileArchitecture
ta-cli-Windows-x86_64.exe64-bit (recommended)
ta-cli-Windows-i686.exe32-bit

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

Verify Installation

ta-cli version

Quick Start

1. Get your credentials

CredentialWhere to find it
API Tokenportal.testapp.io/profile/tokens
App IDYour 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]
FlagDescriptionDefault
--api_tokenYour API tokenFrom config
--app_idYour App IDFrom config
--releaseandroid, ios, or bothboth
--apkPath to Android APK fileFrom config
--ipaPath to iOS IPA fileFrom config
--release_notesCustom release notesNone
--git_release_notesUse latest git commit as notesfalse
--git_commit_idInclude commit ID in notesfalse
--notifyNotify team membersfalse
--archive_latest_releaseArchive previous releasefalse
--configCustom 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):

VariableDescription
TESTAPPIO_API_TOKENYour API token
TESTAPPIO_APP_IDYour App ID
TESTAPPIO_RELEASERelease type: android, ios, or both
TESTAPPIO_ANDROID_PATHPath to APK file
TESTAPPIO_IOS_PATHPath to IPA file
TESTAPPIO_NOTIFYSend notifications: true or false
TESTAPPIO_RELEASE_NOTESCustom release notes
TESTAPPIO_GIT_RELEASE_NOTESUse git commit as notes: true or false
TESTAPPIO_GIT_COMMIT_IDInclude 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

Dedicated Integrations (Recommended)

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

IntegrationDescriptionLink
GitHub ActionNative GitHub Actions integrationtestappio/github-action
Fastlane PluginNative Fastlane plugintestappio/fastlane-plugin-testappio

Platform-Specific Guides

We have detailed guides for each CI/CD platform:

PlatformDocumentation
GitHub ActionsView Guide
FastlaneView Guide
GitLab CI/CDView Guide
JenkinsView Guide
BitriseView Guide
CircleCIView Guide
Travis CIView Guide
Azure PipelinesView Guide
CodemagicView Guide
Xcode CloudView Guide

View All Integrations →


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

OSArchitecturesBinary
macOSIntel (x86_64), Apple Silicon (arm64), Universalta-cli-Darwin-*
Linuxx86_64, ARM64 (aarch64), ARMv7, i686ta-cli-Linux-*
Windowsx86_64 (64-bit), i686 (32-bit)ta-cli-Windows-*.exe

Supported File Types

PlatformFile TypeNotes
Android.apkDebug or release signed APK
iOS.ipaRequires 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 manuallyexport 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

ResourceLink
Help Centerhelp.testapp.io
CLI Documentationhelp.testapp.io/ta-cli
Emailsupport@testapp.io
IssuesGitHub Issues

Contributing

We welcome contributions! Please see our Contributing Guidelines for details.


License

Apache 2.0 - See LICENSE file for details.


Built with love by TestApp.io
Trusted by thousands of developers worldwide

Happy releasing! 🎉

About

TestApp.io CLI (ta-cli) for app distribution to upload your Android (APK) and iOS (IPA) directly from this command line and notify your team members to install and share feedback.

Topics

Resources

Stars

17 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

TestApp.io

ta-cli

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.

Latest ReleaseDownloadsPlatformsLicense


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.


Table of Contents


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:

FileArchitecture
ta-cli-Windows-x86_64.exe64-bit (recommended)
ta-cli-Windows-i686.exe32-bit

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

Verify Installation

ta-cli version

Quick Start

1. Get your credentials

CredentialWhere to find it
API Tokenportal.testapp.io/profile/tokens
App IDYour 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]
FlagDescriptionDefault
--api_tokenYour API tokenFrom config
--app_idYour App IDFrom config
--releaseandroid, ios, or bothboth
--apkPath to Android APK fileFrom config
--ipaPath to iOS IPA fileFrom config
--release_notesCustom release notesNone
--git_release_notesUse latest git commit as notesfalse
--git_commit_idInclude commit ID in notesfalse
--notifyNotify team membersfalse
--archive_latest_releaseArchive previous releasefalse
--configCustom 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):

VariableDescription
TESTAPPIO_API_TOKENYour API token
TESTAPPIO_APP_IDYour App ID
TESTAPPIO_RELEASERelease type: android, ios, or both
TESTAPPIO_ANDROID_PATHPath to APK file
TESTAPPIO_IOS_PATHPath to IPA file
TESTAPPIO_NOTIFYSend notifications: true or false
TESTAPPIO_RELEASE_NOTESCustom release notes
TESTAPPIO_GIT_RELEASE_NOTESUse git commit as notes: true or false
TESTAPPIO_GIT_COMMIT_IDInclude 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

Dedicated Integrations (Recommended)

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

IntegrationDescriptionLink
GitHub ActionNative GitHub Actions integrationtestappio/github-action
Fastlane PluginNative Fastlane plugintestappio/fastlane-plugin-testappio

Platform-Specific Guides

We have detailed guides for each CI/CD platform:

PlatformDocumentation
GitHub ActionsView Guide
FastlaneView Guide
GitLab CI/CDView Guide
JenkinsView Guide
BitriseView Guide
CircleCIView Guide
Travis CIView Guide
Azure PipelinesView Guide
CodemagicView Guide
Xcode CloudView Guide

View All Integrations →


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

OSArchitecturesBinary
macOSIntel (x86_64), Apple Silicon (arm64), Universalta-cli-Darwin-*
Linuxx86_64, ARM64 (aarch64), ARMv7, i686ta-cli-Linux-*
Windowsx86_64 (64-bit), i686 (32-bit)ta-cli-Windows-*.exe

Supported File Types

PlatformFile TypeNotes
Android.apkDebug or release signed APK
iOS.ipaRequires 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 manuallyexport 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

ResourceLink
Help Centerhelp.testapp.io
CLI Documentationhelp.testapp.io/ta-cli
Emailsupport@testapp.io
IssuesGitHub Issues

Contributing

We welcome contributions! Please see our Contributing Guidelines for details.


License

Apache 2.0 - See LICENSE file for details.


Built with love by TestApp.io
Trusted by thousands of developers worldwide

Happy releasing! 🎉

About

TestApp.io CLI (ta-cli) for app distribution to upload your Android (APK) and iOS (IPA) directly from this command line and notify your team members to install and share feedback.

Topics

Resources

Stars

17 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

TestApp.io

ta-cli

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.

Latest ReleaseDownloadsPlatformsLicense


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.


Table of Contents


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:

FileArchitecture
ta-cli-Windows-x86_64.exe64-bit (recommended)
ta-cli-Windows-i686.exe32-bit

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

Verify Installation

ta-cli version

Quick Start

1. Get your credentials

CredentialWhere to find it
API Tokenportal.testapp.io/profile/tokens
App IDYour 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]
FlagDescriptionDefault
--api_tokenYour API tokenFrom config
--app_idYour App IDFrom config
--releaseandroid, ios, or bothboth
--apkPath to Android APK fileFrom config
--ipaPath to iOS IPA fileFrom config
--release_notesCustom release notesNone
--git_release_notesUse latest git commit as notesfalse
--git_commit_idInclude commit ID in notesfalse
--notifyNotify team membersfalse
--archive_latest_releaseArchive previous releasefalse
--configCustom 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):

VariableDescription
TESTAPPIO_API_TOKENYour API token
TESTAPPIO_APP_IDYour App ID
TESTAPPIO_RELEASERelease type: android, ios, or both
TESTAPPIO_ANDROID_PATHPath to APK file
TESTAPPIO_IOS_PATHPath to IPA file
TESTAPPIO_NOTIFYSend notifications: true or false
TESTAPPIO_RELEASE_NOTESCustom release notes
TESTAPPIO_GIT_RELEASE_NOTESUse git commit as notes: true or false
TESTAPPIO_GIT_COMMIT_IDInclude 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

Dedicated Integrations (Recommended)

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

IntegrationDescriptionLink
GitHub ActionNative GitHub Actions integrationtestappio/github-action
Fastlane PluginNative Fastlane plugintestappio/fastlane-plugin-testappio

Platform-Specific Guides

We have detailed guides for each CI/CD platform:

PlatformDocumentation
GitHub ActionsView Guide
FastlaneView Guide
GitLab CI/CDView Guide
JenkinsView Guide
BitriseView Guide
CircleCIView Guide
Travis CIView Guide
Azure PipelinesView Guide
CodemagicView Guide
Xcode CloudView Guide

View All Integrations →


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

OSArchitecturesBinary
macOSIntel (x86_64), Apple Silicon (arm64), Universalta-cli-Darwin-*
Linuxx86_64, ARM64 (aarch64), ARMv7, i686ta-cli-Linux-*
Windowsx86_64 (64-bit), i686 (32-bit)ta-cli-Windows-*.exe

Supported File Types

PlatformFile TypeNotes
Android.apkDebug or release signed APK
iOS.ipaRequires 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 manuallyexport 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

ResourceLink
Help Centerhelp.testapp.io
CLI Documentationhelp.testapp.io/ta-cli
Emailsupport@testapp.io
IssuesGitHub Issues

Contributing

We welcome contributions! Please see our Contributing Guidelines for details.


License

Apache 2.0 - See LICENSE file for details.


Built with love by TestApp.io
Trusted by thousands of developers worldwide

Happy releasing! 🎉

About

TestApp.io CLI (ta-cli) for app distribution to upload your Android (APK) and iOS (IPA) directly from this command line and notify your team members to install and share feedback.

Topics

Resources

Stars

17 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

TestApp.io

ta-cli

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.

Latest ReleaseDownloadsPlatformsLicense


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.


Table of Contents


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:

FileArchitecture
ta-cli-Windows-x86_64.exe64-bit (recommended)
ta-cli-Windows-i686.exe32-bit

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

Verify Installation

ta-cli version

Quick Start

1. Get your credentials

CredentialWhere to find it
API Tokenportal.testapp.io/profile/tokens
App IDYour 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]
FlagDescriptionDefault
--api_tokenYour API tokenFrom config
--app_idYour App IDFrom config
--releaseandroid, ios, or bothboth
--apkPath to Android APK fileFrom config
--ipaPath to iOS IPA fileFrom config
--release_notesCustom release notesNone
--git_release_notesUse latest git commit as notesfalse
--git_commit_idInclude commit ID in notesfalse
--notifyNotify team membersfalse
--archive_latest_releaseArchive previous releasefalse
--configCustom 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):

VariableDescription
TESTAPPIO_API_TOKENYour API token
TESTAPPIO_APP_IDYour App ID
TESTAPPIO_RELEASERelease type: android, ios, or both
TESTAPPIO_ANDROID_PATHPath to APK file
TESTAPPIO_IOS_PATHPath to IPA file
TESTAPPIO_NOTIFYSend notifications: true or false
TESTAPPIO_RELEASE_NOTESCustom release notes
TESTAPPIO_GIT_RELEASE_NOTESUse git commit as notes: true or false
TESTAPPIO_GIT_COMMIT_IDInclude 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

Dedicated Integrations (Recommended)

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

IntegrationDescriptionLink
GitHub ActionNative GitHub Actions integrationtestappio/github-action
Fastlane PluginNative Fastlane plugintestappio/fastlane-plugin-testappio

Platform-Specific Guides

We have detailed guides for each CI/CD platform:

PlatformDocumentation
GitHub ActionsView Guide
FastlaneView Guide
GitLab CI/CDView Guide
JenkinsView Guide
BitriseView Guide
CircleCIView Guide
Travis CIView Guide
Azure PipelinesView Guide
CodemagicView Guide
Xcode CloudView Guide

View All Integrations →


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

OSArchitecturesBinary
macOSIntel (x86_64), Apple Silicon (arm64), Universalta-cli-Darwin-*
Linuxx86_64, ARM64 (aarch64), ARMv7, i686ta-cli-Linux-*
Windowsx86_64 (64-bit), i686 (32-bit)ta-cli-Windows-*.exe

Supported File Types

PlatformFile TypeNotes
Android.apkDebug or release signed APK
iOS.ipaRequires 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 manuallyexport 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

ResourceLink
Help Centerhelp.testapp.io
CLI Documentationhelp.testapp.io/ta-cli
Emailsupport@testapp.io
IssuesGitHub Issues

Contributing

We welcome contributions! Please see our Contributing Guidelines for details.


License

Apache 2.0 - See LICENSE file for details.


Built with love by TestApp.io
Trusted by thousands of developers worldwide

Happy releasing! 🎉

About

TestApp.io CLI (ta-cli) for app distribution to upload your Android (APK) and iOS (IPA) directly from this command line and notify your team members to install and share feedback.

Topics

Resources

Stars

17 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

TestApp.io

ta-cli

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.

Latest ReleaseDownloadsPlatformsLicense


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.


Table of Contents


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:

FileArchitecture
ta-cli-Windows-x86_64.exe64-bit (recommended)
ta-cli-Windows-i686.exe32-bit

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

Verify Installation

ta-cli version

Quick Start

1. Get your credentials

CredentialWhere to find it
API Tokenportal.testapp.io/profile/tokens
App IDYour 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]
FlagDescriptionDefault
--api_tokenYour API tokenFrom config
--app_idYour App IDFrom config
--releaseandroid, ios, or bothboth
--apkPath to Android APK fileFrom config
--ipaPath to iOS IPA fileFrom config
--release_notesCustom release notesNone
--git_release_notesUse latest git commit as notesfalse
--git_commit_idInclude commit ID in notesfalse
--notifyNotify team membersfalse
--archive_latest_releaseArchive previous releasefalse
--configCustom 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):

VariableDescription
TESTAPPIO_API_TOKENYour API token
TESTAPPIO_APP_IDYour App ID
TESTAPPIO_RELEASERelease type: android, ios, or both
TESTAPPIO_ANDROID_PATHPath to APK file
TESTAPPIO_IOS_PATHPath to IPA file
TESTAPPIO_NOTIFYSend notifications: true or false
TESTAPPIO_RELEASE_NOTESCustom release notes
TESTAPPIO_GIT_RELEASE_NOTESUse git commit as notes: true or false
TESTAPPIO_GIT_COMMIT_IDInclude 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

Dedicated Integrations (Recommended)

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

IntegrationDescriptionLink
GitHub ActionNative GitHub Actions integrationtestappio/github-action
Fastlane PluginNative Fastlane plugintestappio/fastlane-plugin-testappio

Platform-Specific Guides

We have detailed guides for each CI/CD platform:

PlatformDocumentation
GitHub ActionsView Guide
FastlaneView Guide
GitLab CI/CDView Guide
JenkinsView Guide
BitriseView Guide
CircleCIView Guide
Travis CIView Guide
Azure PipelinesView Guide
CodemagicView Guide
Xcode CloudView Guide

View All Integrations →


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

OSArchitecturesBinary
macOSIntel (x86_64), Apple Silicon (arm64), Universalta-cli-Darwin-*
Linuxx86_64, ARM64 (aarch64), ARMv7, i686ta-cli-Linux-*
Windowsx86_64 (64-bit), i686 (32-bit)ta-cli-Windows-*.exe

Supported File Types

PlatformFile TypeNotes
Android.apkDebug or release signed APK
iOS.ipaRequires 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 manuallyexport 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

ResourceLink
Help Centerhelp.testapp.io
CLI Documentationhelp.testapp.io/ta-cli
Emailsupport@testapp.io
IssuesGitHub Issues

Contributing

We welcome contributions! Please see our Contributing Guidelines for details.


License

Apache 2.0 - See LICENSE file for details.


Built with love by TestApp.io
Trusted by thousands of developers worldwide

Happy releasing! 🎉

About

TestApp.io CLI (ta-cli) for app distribution to upload your Android (APK) and iOS (IPA) directly from this command line and notify your team members to install and share feedback.

Topics

Resources

Stars

17 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

TestApp.io

ta-cli

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.

Latest ReleaseDownloadsPlatformsLicense


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.


Table of Contents


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:

FileArchitecture
ta-cli-Windows-x86_64.exe64-bit (recommended)
ta-cli-Windows-i686.exe32-bit

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

Verify Installation

ta-cli version

Quick Start

1. Get your credentials

CredentialWhere to find it
API Tokenportal.testapp.io/profile/tokens
App IDYour 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]
FlagDescriptionDefault
--api_tokenYour API tokenFrom config
--app_idYour App IDFrom config
--releaseandroid, ios, or bothboth
--apkPath to Android APK fileFrom config
--ipaPath to iOS IPA fileFrom config
--release_notesCustom release notesNone
--git_release_notesUse latest git commit as notesfalse
--git_commit_idInclude commit ID in notesfalse
--notifyNotify team membersfalse
--archive_latest_releaseArchive previous releasefalse
--configCustom 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):

VariableDescription
TESTAPPIO_API_TOKENYour API token
TESTAPPIO_APP_IDYour App ID
TESTAPPIO_RELEASERelease type: android, ios, or both
TESTAPPIO_ANDROID_PATHPath to APK file
TESTAPPIO_IOS_PATHPath to IPA file
TESTAPPIO_NOTIFYSend notifications: true or false
TESTAPPIO_RELEASE_NOTESCustom release notes
TESTAPPIO_GIT_RELEASE_NOTESUse git commit as notes: true or false
TESTAPPIO_GIT_COMMIT_IDInclude 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

Dedicated Integrations (Recommended)

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

IntegrationDescriptionLink
GitHub ActionNative GitHub Actions integrationtestappio/github-action
Fastlane PluginNative Fastlane plugintestappio/fastlane-plugin-testappio

Platform-Specific Guides

We have detailed guides for each CI/CD platform:

PlatformDocumentation
GitHub ActionsView Guide
FastlaneView Guide
GitLab CI/CDView Guide
JenkinsView Guide
BitriseView Guide
CircleCIView Guide
Travis CIView Guide
Azure PipelinesView Guide
CodemagicView Guide
Xcode CloudView Guide

View All Integrations →


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

OSArchitecturesBinary
macOSIntel (x86_64), Apple Silicon (arm64), Universalta-cli-Darwin-*
Linuxx86_64, ARM64 (aarch64), ARMv7, i686ta-cli-Linux-*
Windowsx86_64 (64-bit), i686 (32-bit)ta-cli-Windows-*.exe

Supported File Types

PlatformFile TypeNotes
Android.apkDebug or release signed APK
iOS.ipaRequires 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 manuallyexport 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

ResourceLink
Help Centerhelp.testapp.io
CLI Documentationhelp.testapp.io/ta-cli
Emailsupport@testapp.io
IssuesGitHub Issues

Contributing

We welcome contributions! Please see our Contributing Guidelines for details.


License

Apache 2.0 - See LICENSE file for details.


Built with love by TestApp.io
Trusted by thousands of developers worldwide

Happy releasing! 🎉

About

TestApp.io CLI (ta-cli) for app distribution to upload your Android (APK) and iOS (IPA) directly from this command line and notify your team members to install and share feedback.

Topics

Resources

Stars

17 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

TestApp.io

ta-cli

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.

Latest ReleaseDownloadsPlatformsLicense


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.


Table of Contents


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:

FileArchitecture
ta-cli-Windows-x86_64.exe64-bit (recommended)
ta-cli-Windows-i686.exe32-bit

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

Verify Installation

ta-cli version

Quick Start

1. Get your credentials

CredentialWhere to find it
API Tokenportal.testapp.io/profile/tokens
App IDYour 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]
FlagDescriptionDefault
--api_tokenYour API tokenFrom config
--app_idYour App IDFrom config
--releaseandroid, ios, or bothboth
--apkPath to Android APK fileFrom config
--ipaPath to iOS IPA fileFrom config
--release_notesCustom release notesNone
--git_release_notesUse latest git commit as notesfalse
--git_commit_idInclude commit ID in notesfalse
--notifyNotify team membersfalse
--archive_latest_releaseArchive previous releasefalse
--configCustom 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):

VariableDescription
TESTAPPIO_API_TOKENYour API token
TESTAPPIO_APP_IDYour App ID
TESTAPPIO_RELEASERelease type: android, ios, or both
TESTAPPIO_ANDROID_PATHPath to APK file
TESTAPPIO_IOS_PATHPath to IPA file
TESTAPPIO_NOTIFYSend notifications: true or false
TESTAPPIO_RELEASE_NOTESCustom release notes
TESTAPPIO_GIT_RELEASE_NOTESUse git commit as notes: true or false
TESTAPPIO_GIT_COMMIT_IDInclude 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

Dedicated Integrations (Recommended)

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

IntegrationDescriptionLink
GitHub ActionNative GitHub Actions integrationtestappio/github-action
Fastlane PluginNative Fastlane plugintestappio/fastlane-plugin-testappio

Platform-Specific Guides

We have detailed guides for each CI/CD platform:

PlatformDocumentation
GitHub ActionsView Guide
FastlaneView Guide
GitLab CI/CDView Guide
JenkinsView Guide
BitriseView Guide
CircleCIView Guide
Travis CIView Guide
Azure PipelinesView Guide
CodemagicView Guide
Xcode CloudView Guide

View All Integrations →


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

OSArchitecturesBinary
macOSIntel (x86_64), Apple Silicon (arm64), Universalta-cli-Darwin-*
Linuxx86_64, ARM64 (aarch64), ARMv7, i686ta-cli-Linux-*
Windowsx86_64 (64-bit), i686 (32-bit)ta-cli-Windows-*.exe

Supported File Types

PlatformFile TypeNotes
Android.apkDebug or release signed APK
iOS.ipaRequires 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 manuallyexport 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

ResourceLink
Help Centerhelp.testapp.io
CLI Documentationhelp.testapp.io/ta-cli
Emailsupport@testapp.io
IssuesGitHub Issues

Contributing

We welcome contributions! Please see our Contributing Guidelines for details.


License

Apache 2.0 - See LICENSE file for details.


Built with love by TestApp.io
Trusted by thousands of developers worldwide

Happy releasing! 🎉

About

TestApp.io CLI (ta-cli) for app distribution to upload your Android (APK) and iOS (IPA) directly from this command line and notify your team members to install and share feedback.

Topics

Resources

Stars

17 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

43 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

TestApp.io

ta-cli

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.

Latest ReleaseDownloadsPlatformsLicense


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.


Table of Contents


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:

FileArchitecture
ta-cli-Windows-x86_64.exe64-bit (recommended)
ta-cli-Windows-i686.exe32-bit

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

Verify Installation

ta-cli version

Quick Start

1. Get your credentials

CredentialWhere to find it
API Tokenportal.testapp.io/profile/tokens
App IDYour 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]
FlagDescriptionDefault
--api_tokenYour API tokenFrom config
--app_idYour App IDFrom config
--releaseandroid, ios, or bothboth
--apkPath to Android APK fileFrom config
--ipaPath to iOS IPA fileFrom config
--release_notesCustom release notesNone
--git_release_notesUse latest git commit as notesfalse
--git_commit_idInclude commit ID in notesfalse
--notifyNotify team membersfalse
--archive_latest_releaseArchive previous releasefalse
--configCustom 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):

VariableDescription
TESTAPPIO_API_TOKENYour API token
TESTAPPIO_APP_IDYour App ID
TESTAPPIO_RELEASERelease type: android, ios, or both
TESTAPPIO_ANDROID_PATHPath to APK file
TESTAPPIO_IOS_PATHPath to IPA file
TESTAPPIO_NOTIFYSend notifications: true or false
TESTAPPIO_RELEASE_NOTESCustom release notes
TESTAPPIO_GIT_RELEASE_NOTESUse git commit as notes: true or false
TESTAPPIO_GIT_COMMIT_IDInclude 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

Dedicated Integrations (Recommended)

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

IntegrationDescriptionLink
GitHub ActionNative GitHub Actions integrationtestappio/github-action
Fastlane PluginNative Fastlane plugintestappio/fastlane-plugin-testappio

Platform-Specific Guides

We have detailed guides for each CI/CD platform:

PlatformDocumentation
GitHub ActionsView Guide
FastlaneView Guide
GitLab CI/CDView Guide
JenkinsView Guide
BitriseView Guide
CircleCIView Guide
Travis CIView Guide
Azure PipelinesView Guide
CodemagicView Guide
Xcode CloudView Guide

View All Integrations →


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

OSArchitecturesBinary
macOSIntel (x86_64), Apple Silicon (arm64), Universalta-cli-Darwin-*
Linuxx86_64, ARM64 (aarch64), ARMv7, i686ta-cli-Linux-*
Windowsx86_64 (64-bit), i686 (32-bit)ta-cli-Windows-*.exe

Supported File Types

PlatformFile TypeNotes
Android.apkDebug or release signed APK
iOS.ipaRequires 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 manuallyexport 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

ResourceLink
Help Centerhelp.testapp.io
CLI Documentationhelp.testapp.io/ta-cli
Emailsupport@testapp.io
IssuesGitHub Issues

Contributing

We welcome contributions! Please see our Contributing Guidelines for details.


License

Apache 2.0 - See LICENSE file for details.


Built with love by TestApp.io
Trusted by thousands of developers worldwide

Happy releasing! 🎉

About

TestApp.io CLI (ta-cli) for app distribution to upload your Android (APK) and iOS (IPA) directly from this command line and notify your team members to install and share feedback.

Topics

Resources

Stars

17 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors