Skip to main content

Release Manager: Complete Guide

A complete guide to using the Release Manager — your central hub for publishing and managing your mobile app on the Apple App Store and Google Play Store directly from your Tapcart dashboard.

Updated this week

Release Manager: Complete Guide

1. Introduction

What is the Release Manager?

The Release Manager is your central hub for publishing and managing your mobile app on the Apple App Store and Google Play Store — directly from your Tapcart dashboard. Instead of switching between App Store Connect, Google Play Console, and Tapcart, you can handle everything in one place.

What You Can Do

  • Submit app updates — push new versions of your iOS and Android apps to the App Store and Google Play

  • Update your app listing — edit your app title, description, keywords, screenshots, and more per platform

  • Track build progress — monitor your builds in real time as they process and move through review

  • Manage beta testing — distribute TestFlight builds (iOS) or APK downloads (Android) for internal testing

  • Resolve account issues — get notified of account blockers (expired memberships, unsigned agreements) with direct links to fix them

Supported Platforms

Platform

Store

Developer Portal

API Credential Type

iOS

Apple App Store

App Store Connect

API Key (.p8 file)

Android

Google Play Store

Google Play Console

Google Service Account (via Firebase)

Getting the Most Out of the Release Manager

To unlock the full capabilities of the Release Manager, we recommend connecting both of your store accounts:

  1. For iOS — Upload your App Store Connect API key (.p8 file)

  2. For Android — Connect your Google Play Store via a Google Service Account

Without these connections, some features will be disabled — including the ability to update Release Notes, track app versions, and manage some aspects of your store listings. You can still access the Release Manager dashboard, but full functionality requires verified credentials for each platform.

The next section walks you through connecting your accounts step by step.

2. Setting Up Your Accounts

To unlock the full functionality of the Release Manager, you'll need to connect your Apple App Store and/or Google Play Store accounts. Each platform is set up independently — you can configure one now and add the other later.

Connecting Your Apple App Store Account

You'll need to upload an App Store Connect API key (.p8 file). This requires Admin or Account Holder permissions in App Store Connect.

When you first open the Release Manager, the iOS platform card will show a "Setup Required" badge with a prompt to get started:

Step-by-Step

  1. Go to App Store Connect → Users and Access → Integrations → App Store Connect API

  2. Click the + button to create a new key with the Admin role

  3. Copy the Issuer ID (shown at the top of the page) and the Key ID (shown in the table)

  4. Download the .p8 file — this is a one-time download, so save it somewhere secure

Once you have those three items, head to the Release Manager in your Tapcart dashboard:

  1. On the iOS platform card, click "Get started"

  2. Enter your Issuer ID and Key ID

  3. Upload your .p8 file

  4. Tapcart will upload and verify your credentials automatically

The form will look like this — enter your Issuer ID, Key ID, and select your .p8 file:

Once verified, you'll see a "API Key Configured and Verified" confirmation. You can re-test your credentials at any time using the "Test Again" button.

Troubleshooting

If verification fails, check the following:

  1. The API key has the Admin or App Manager role

  2. The .p8 file matches the Key ID you provided. Don't change the name of the file

  3. The Issuer ID is correct

  4. The API key hasn't been revoked in App Store Connect

For a detailed walkthrough, see Provisioning an App Store Connect API Key for iOS Builds.

Connecting Your Google Play Store Account

The Google Play setup has a few more steps. It requires Firebase Analytics to be configured first, followed by creating a Google Service Account that connects Tapcart to your Play Console.

Step 1: Ensure Firebase Is Configured

Before you can set up Google Play credentials, Firebase Analytics must be integrated with your app. If it's not configured yet, the Release Manager will show a "Firebase Integration Required" message.

For help setting up Firebase, see Firebase Analytics – Tapcart.

Step 2: Create a Service Account

Once Firebase is connected:

  1. On the Android platform card, click "Get started"

  2. Click "Create Service Account"

  3. Tapcart will automatically provision a Google Service Account for you

What happens under the hood: When you click "Create Service Account," Tapcart runs an automated setup behind the scenes:

  • Creates a service account (android-app-updater) in your app's GCP project

  • Enables the Android Publisher API in your project

  • Generates a private key for the service account and stores it securely in Tapcart's Secret Manager

  • Grants CI/CD access so the build pipeline can retrieve the credentials at build time

You don't need to do any of this manually — it all happens in a few seconds.

Step 3: Invite the Service Account to Google Play Console

After the service account is created, you'll see the service account email address. You need to invite it to your Play Console:

  1. Copy the service account email displayed on screen

  2. Go to your Google Play Console

  3. Navigate to Users and Permissions

  4. Click "Invite new users"

  5. Paste the service account email and grant it Admin access

  6. Return to the Tapcart dashboard and click "I've Invited the Service Account"

Tapcart will verify access to your Play Console. Once confirmed, you'll see a "Service Account Configured" status.

Troubleshooting

"Android App Not Found in Play Console"
This usually means no APK or AAB file has been uploaded to Google Play Console yet. Even if your app listing exists, Google Play requires at least one build to be uploaded before the app is accessible via the API. Upload your first build, wait 5–10 minutes for permissions to propagate, then click "Verify App & Service Account".

"Firebase Integration Required"
Firebase Analytics must be set up before you can create a service account. See the Firebase setup guide linked above.

Verification errors
If access verification fails, confirm that the service account email has been invited with Admin permissions in your Play Console and that the invitation has been accepted.

What Happens Without Credentials?

Feature

No Credentials

At Least One Platform Connected

View dashboard

Yes

Yes

Create a release

No

Yes (for connected platform)

Track build progress

No

Yes

Edit release notes

No

Yes

Manage TestFlight testers

No

Yes (iOS only)

3. Understanding Your Dashboard

When you open the Release Manager, you'll land on the main dashboard. It's organized into two areas: your main content on the left and a sidebar on the right.

Current Release Cards

At the top of the dashboard, the Current Releases card shows your active versions in production. You'll see a card for each platform — iOS and Android — displayed side by side.

When a platform is connected, its card shows:

  • Platform name and type (e.g., "iPhone — iOS" or "Android")

  • Status badge — "Published" (green) when live, or "Blocked" (red) if there's an account issue

  • Version and build number (e.g., "Version 1.2.3 (456)")

  • Release date — when the current version went live

  • "View" link — opens App Store Connect or Google Play Console directly

✅ Both platforms connected and live — this is what a fully set up Release Manager looks like.

When a platform is not connected, the card shows:

  • A "Setup Required" badge

  • A brief message explaining what's needed (API key for iOS, service account for Android)

  • A "Get started" button that opens the credentials setup flow

If an account blocker is detected (e.g., an unsigned agreement or expired membership), the card displays a red banner with the issue and a link to resolve it.

Build Progress

The Build Progress card tracks your pending releases in real time. When you have active builds, you'll see:

  • A count badge in the header (e.g., "2 active builds")

  • A build card per platform showing: version number and platform, build type (Production, TestFlight, APK), status badge, a progress bar with percentage and estimated time remaining, and a "View Details" link for completed or failed builds

  • "All builds complete" (green) once everything has finished

When no builds are in progress, you'll see an empty state: "No active builds — Start a new release to see build progress here."

The dashboard automatically checks for updates — every 15 seconds while builds are active, and every 60 seconds when idle.

Release History

The Release History card shows past versions and updates, split by platform.

iOS Release History (when connected):

  • Your current live version with build number and upload date

  • A color-coded status indicator — Live (green), In Review (amber), Rejected (red), Processing (blue)

  • A sparkline showing your 5 most recent versions at a glance

  • "View Release History" button — opens a sliding panel with your full version history

  • If your latest version was rejected, a red banner appears with a direct link to App Store Connect

Android Release History (when connected):

  • Your current live version with build number and date

  • A status indicator

  • "View in Play Console" link — since full historical data isn't available via the Google Play API, this links you directly to the Play Console for details

When a platform isn't connected, the history card shows a setup prompt with a "Configure Credentials" button.

Sidebar

The right side of the dashboard contains a single action: the "Create New Release" button. This button is enabled as long as at least one platform has verified credentials.

Quick Reference: Dashboard Actions

What You Want to Do

Where to Find It

Set up a platform for the first time

"Get started" on the platform card

Create a new release

"Create New Release" in the sidebar

Check on an active build

Build Progress card (auto-updates)

View details of a completed or failed build

Click the build card or "View Details"

Browse your iOS release history

"View Release History" on the iOS history card

Check your Android version in Play Console

"View in Play Console" on the Android history card

Resolve an account blocker

Banner on the platform card with a direct link

Open App Store Connect or Play Console

"View" link on the Current Release card

4. Creating a New Release

To start a new release, click "Create New Release" from the Release Manager sidebar. This opens the release creation form where you'll configure everything about your update — from build type and version number to app listing details and screenshots.

At any point, your progress is automatically saved. If you close the page and come back, your form data will be restored.

Choosing a Build Type

Build Type

iOS

Android

Description

Production

App Store release

Google Play release

Pushes your app live to the store

Development

TestFlight build

APK download

For internal testing only

If a platform has an account blocker (e.g., an unsigned agreement), the Production option will be disabled for that platform. For Android, APK builds remain available even when production is blocked.

Choosing a Release Type

Next, choose how your build should be submitted:

  • Manual — You control when the release goes live after it's approved

  • Automatic — The release goes live as soon as it's approved by Apple or Google

Automatic release is only available for Production builds. If you've selected TestFlight or APK, the Automatic option will be disabled with a message: "Switch to Build Type: Production to enable automatic submission."

Selecting Target Platforms

Choose which platforms to include in this release — App Store (iOS), Google Play (Android), or both. At least one must be selected. If a platform is blocked, it will be unavailable as a target.

Branding

Upload your app's visual assets. These are set per platform, so iOS and Android can have different assets.

Asset

Required Size

Format

Max File Size

App Icon

1024 × 1024 px

JPG

10 MB

Launch Screen

1125 × 2436 px

JPG

10 MB

Placeholder Image

750 × 750 px

JPG

10 MB

Each asset has a drag-and-drop uploader. You'll see a preview after uploading, and an error if dimensions don't match.

App Listing

This is the information customers see on your app's store page. All listing fields are per platform — you can customize them separately for iOS and Android.

Field

Max Length

Required

App Title

30 characters

Yes

App Subtitle / Tagline

30 characters

Yes

Primary Category

Yes

Secondary Category

Yes

Keywords

At least 1

Yes

App Description

4,000 characters

Yes (min 10 characters)

Screenshots

Requirement

iOS

Android

Minimum

3

3

Maximum

8

8

Format

JPEG only

JPEG only

Dimensions

1242 × 2688 px

1444 × 2880 or 1242 × 2688 px

Max file size

10 MB

8 MB

Auto-import: If your credentials are connected, the Release Manager will automatically fetch your current screenshots from App Store Connect or Google Play the first time you visit the form. You can then add, remove, or drag to reorder them. If auto-import doesn't work, you'll see a message explaining why — but you can still upload screenshots manually using the upload area.

Business Information

These URLs are shared across both platforms (all optional but recommended):

  • Marketing URL

  • Support URL

  • Privacy Policy URL

  • Terms of Service URL

Version and Build Info

Platform

Version Format

Increment Logic

Example

iOS

Decimal (X.Y)

+0.1

1.0 → 1.1 → 1.2

Android

Whole number

+1

1 → 2 → 3

Your new version must be higher than the current live version. The form validates this in real time. If a build is currently in progress, version fields are locked and a banner appears: "A build is in progress. Fields are locked."

Release Notes (What's New)

Platform

Character Limit

iOS (App Store)

4,000 characters

Android (Google Play)

500 characters

A character counter tracks your progress. At 90% of the limit, the counter turns yellow. At the limit, it turns red with "Character limit reached."

TestFlight Testers (iOS Development Builds Only)

When you select a TestFlight build for iOS, a testers panel appears where you can manage beta testing:

  • Beta Groups — Create and switch between tester groups using tabs

  • Add Testers — Add testers by email or select from your App Store Connect team members

  • Public Link — Toggle a shareable link that lets anyone join your TestFlight beta (with optional tester limit)

APK Distribution (Android Development Builds Only)

When you select an APK build for Android, a distribution panel appears:

  • Before the build completes: A message explaining that a signed APK will be generated and a download link will appear once it's ready

  • After the build completes: A download URL you can copy or open directly to distribute to testers

APK builds are for manual distribution only — they are not published to Google Play.

Submitting Your Release

When you're ready, click "Submit Release" at the bottom of the page. The button is disabled if no target platform is selected or required fields are incomplete. If all platforms are blocked, the button changes to "View Blockers" and opens a modal showing what needs to be resolved.

5. Submitting Your Release

Once you've filled out the release form, here's what happens when you hit "Submit Release".

Pre-Submission Checklist

Before the release is sent, the Release Manager runs a series of checks automatically.

Check

What It Validates

Error Message

Version number

New version must be greater than the current live version

"[Platform] version must be greater than current version ([version])"

Screenshots (iOS)

At least 3 screenshots required if iOS is targeted

"Please upload at least 3 iOS screenshots"

Build in review (iOS)

No existing iOS build can be in Waiting for Review, In Review, or Pending Developer Release

"Cannot create new release. Please remove your current App Store submission (currently in review) before creating a new update."

Required fields

All required fields must be complete for each targeted platform

Button disabled with tooltip

What Happens After You Submit

  1. The button changes to "Submitting..." and is disabled to prevent duplicate submissions

  2. Your form data is sent to the backend

  3. On success: You'll see a "Release created successfully!" toast notification, then you're redirected to the dashboard to track your build

  4. On failure: You'll see an error toast with details, and stay on the form to fix the issue

Tracking Your Build After Submission

After a successful submission, head to the Build Progress card on your dashboard. Your new build will appear there with real-time status updates. The dashboard polls for updates every 15 seconds while builds are active.

6. Build Progress & Statuses

After you submit a release, the Build Progress card on your dashboard tracks each build in real time. You don't need to refresh the page — it updates automatically.

Build Statuses

Status

Badge Color

What It Means

Building

Blue

Your app is being compiled, signed, and packaged

In Review

Amber

Apple or Google is reviewing your submission

Succeeded

Teal/Green

Build completed successfully and submitted to the store

Failed

Red

Something went wrong during the build (click for details)

How Progress Works

Build progress is estimated based on elapsed time using a ~20-minute build window. Progress is capped at 95% until the build actually completes — the final jump to 100% happens when the system confirms success.

When a Build Succeeds

The progress bar fills to 100% and turns green. Click the card to open the Build Details modal, which shows the full build pipeline, build details, source code info, and a link to view in App Store Connect or Play Console.

When a Build Fails

The progress bar turns red and a "View Details" link appears. The Build Details modal includes a user-friendly error message, suggested next steps, and a "Get Help" button linking to the Building and Deploying Releases help article.

Build Timeouts

If a build runs for more than 30 minutes without completing, it's automatically marked as failed: "Build timed out after 30 minutes. The build may have failed in Bitrise without sending a webhook notification." Try submitting a new release. If timeouts persist, reach out to support.

Auto-Refresh Intervals

Condition

Poll Frequency

Active builds in progress

Every 15 seconds

No active builds

Every 60 seconds

7. Account Blockers

The Release Manager monitors the health of your Apple Developer and Google Play Developer accounts in real time. If there's an issue that could prevent a release, you'll see a blocker with details on what's wrong and how to fix it.

Where Blockers Appear

  1. Dashboard — The platform card shows a red "Blocked" badge with a message and help link

  2. Create Release page — A warning banner appears at the top explaining the issue

  3. Blockers Modal — When all platforms are blocked, the submit button changes to "View Blockers"

iOS Blockers

Blocker

Severity

How to Resolve

Required agreements missing or expired

Critical

Sign in to your Apple Developer Account and accept any pending agreements

Unsigned Paid Applications Agreement (PLA)

Warning

The account holder must sign the PLA in Apple Developer Account

Expired or inactive membership

Critical

Renew your membership in Apple Developer Account

Membership expiring soon

Warning

Renew before it expires in Apple Developer Account

Android Blockers

Blocker

Severity

How to Resolve

App not found

Critical

Check your app listing in Google Play Console — an APK/AAB may need to be uploaded first

Account not verified

Critical

Complete verification in Google Play Console

App removed

Critical

Review the removal reason in Google Play Console

App suspended

Critical

Review the suspension reason in Google Play Console

Policy warning or violation

Warning

Review your policy status in Google Play Console

API error

Warning

This may be temporary — check Google Play Console and try again

Resolving Blockers

  1. Click the action button on the blocker (e.g., "Review in Apple Developer Account") — this opens the external console in a new tab

  2. Resolve the issue there (sign an agreement, renew a membership, verify your account, etc.)

  3. Return to the Release Manager — the system re-checks your account status automatically

  4. Once resolved, the blocker disappears and you can proceed with your release

8. Managing TestFlight (iOS Beta Testing)

The Release Manager includes built-in TestFlight management, so you can organize beta testers and share test builds without leaving your Tapcart dashboard. The TestFlight panel appears on the Create Release page when you select an iOS TestFlight build type.

Beta Groups

Creating a group:

  1. Click "New Group" (or "Create Beta Group" if you don't have any groups yet)

  2. Enter a group name (e.g., "External Beta Testers")

  3. Choose a group type: External (supports public link sharing) or Internal (for testers within your organization)

  4. Click "Create Group"

Adding and Removing Testers

Adding a tester:

  1. Select the group you want to add the tester to

  2. Use the dropdown to search and select a team member from your App Store Connect account

  3. Click "Add Tester"

Once added, the tester appears in the list with their name, email, and status badge — Installed (green), Invited (blue), Not Invited (gray), or Expired (red).

Removing a tester: Hover over a tester row and click the X button. The tester is removed immediately.

Public Link

For external groups, you can enable a public link that lets anyone join your TestFlight beta without a personal invitation.

Enabling a public link:

  1. Select an external beta group

  2. In the Public Link card, click "Enable Public Link"

  3. Once enabled, you'll see a QR code, the link URL with a "Copy Link" button, and a settings icon for additional options

You can set a tester limit (1–10,000) via the settings icon. When the limit is reached, no new testers can join via the public link. Public links are not available for internal groups.

9. FAQs / Troubleshooting

Release Creation

"Why can't I click the Submit Release button?"
The button is disabled when required fields are incomplete. Hover over it for a tooltip that tells you what's missing. Common reasons: no target platform selected, missing branding images, app title/subtitle/description not filled in, no keywords added, categories not selected, or version number not set.

"Why does it say I can't create a new release?"
If you see "Cannot create new release. Please remove your current App Store submission (currently in review) before creating a new update" — you have an iOS build that's currently Waiting for Review, In Review, or Pending Developer Release. Remove that submission in App Store Connect before submitting a new one.

"I submitted a release but nothing is happening."
After submitting, head to the Build Progress card on the dashboard. Your build should appear there within a few seconds. If it doesn't, try refreshing the page.

Version Numbers

"My version number shows a red error."
Your new version must be greater than the current live version. Click the "Use [suggested]" button to apply the recommended next version.

  • iOS versions must be a whole number or single decimal (e.g., 1.0, 1.1, 2.0)

  • Android versions must be a whole number (e.g., 1, 2, 3)

Screenshots

"Why are my screenshots not loading automatically?"
Auto-import requires verified API credentials. You can still upload screenshots manually — the upload area is always available regardless of credential status.

"My screenshot upload was rejected."
Check format (JPEG only), dimensions (iOS: 1242 × 2688 px; Android: 1444 × 2880 or 1242 × 2688 px), file size (iOS: 10 MB max; Android: 8 MB max), and count (min 3, max 8).

Developer API Credentials

"My Apple credentials failed verification."
Check that the API key has the Admin or App Manager role, the .p8 file matches the Key ID, the Issuer ID is correct, and the API key hasn't been revoked. You can re-upload your credentials or click "Test Again."

"My Google service account says 'Needs Invitation'."
The service account was created successfully but hasn't been invited to your Google Play Console yet. Copy the service account email shown on screen, go to Google Play Console → Users and Permissions → Invite new users, paste the email with Admin access, then return and click "I've Invited the Service Account."

"I see 'Android App Not Found in Play Console'."
No APK or AAB has been uploaded to Google Play Console yet. Upload your first build, wait 5–10 minutes, then click "Verify App & Service Account."

"I see 'Firebase Integration Required'."
Firebase Analytics must be configured before you can set up Google Play credentials. See Firebase Analytics – Tapcart for setup instructions.

Builds

"My build failed. What do I do?"
Click the failed build card to open the Build Details modal. If error analysis is available, you'll see an explanation and suggested fix. Click "Get Help" in the modal to open the Building and Deploying Releases help article.

"My build timed out."
If a build runs for more than 30 minutes, it's automatically marked as failed. Try submitting a new release. If timeouts persist, contact support.

Account Blockers

"My platform shows 'Blocked'."
A blocker means there's an issue with your developer account. Common causes:

  • iOS: Unsigned Paid Applications Agreement, expired Apple Developer membership

  • Android: App not found in Play Console, unverified developer account, app suspended

Click the action link on the blocker to resolve the issue in the relevant console. The Release Manager re-checks your account status automatically. See Section 7 (Account Blockers) for a full list.

Branding Images

"My image upload was rejected."
Each asset has strict dimension requirements: App Icon (1024 × 1024 px), Launch Screen (1125 × 2436 px), Placeholder Image (750 × 750 px). Images must be JPG and under 10 MB.

Form Data

"I accidentally closed the page. Is my work saved?"
Your form data is automatically backed up to your browser's local storage. When you return to the Create Release page, your data should be restored.

Did this answer your question?