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:
For iOS — Upload your App Store Connect API key (.p8 file)
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
Go to App Store Connect → Users and Access → Integrations → App Store Connect API
Click the + button to create a new key with the Admin role
Copy the Issuer ID (shown at the top of the page) and the Key ID (shown in the table)
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:
On the iOS platform card, click "Get started"
Enter your Issuer ID and Key ID
Upload your .p8 file
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:
The API key has the Admin or App Manager role
The .p8 file matches the Key ID you provided. Don't change the name of the file
The Issuer ID is correct
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:
On the Android platform card, click "Get started"
Click "Create Service Account"
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:
Copy the service account email displayed on screen
Go to your Google Play Console
Navigate to Users and Permissions
Click "Invite new users"
Paste the service account email and grant it Admin access
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
The button changes to "Submitting..." and is disabled to prevent duplicate submissions
Your form data is sent to the backend
On success: You'll see a "Release created successfully!" toast notification, then you're redirected to the dashboard to track your build
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
Dashboard — The platform card shows a red "Blocked" badge with a message and help link
Create Release page — A warning banner appears at the top explaining the issue
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
Click the action button on the blocker (e.g., "Review in Apple Developer Account") — this opens the external console in a new tab
Resolve the issue there (sign an agreement, renew a membership, verify your account, etc.)
Return to the Release Manager — the system re-checks your account status automatically
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:
Click "New Group" (or "Create Beta Group" if you don't have any groups yet)
Enter a group name (e.g., "External Beta Testers")
Choose a group type: External (supports public link sharing) or Internal (for testers within your organization)
Click "Create Group"
Adding and Removing Testers
Adding a tester:
Select the group you want to add the tester to
Use the dropdown to search and select a team member from your App Store Connect account
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:
Select an external beta group
In the Public Link card, click "Enable Public Link"
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.















