Binary Management
Appcircle supports publishing the application to the stores without using the Build module. To add an application version manually, you need to add a publish profile beforehand and then Open its details.

You can then upload the application by clicking on the Add Version button on the right.

When the upload is completed successfully, the relevant application versions will appear in the list.

You can install iOS app versions with different BundleIDs under the same Publishing Profile. However, you can only initiate the Publish process with the binary that matches the BundleID specified when creating the profile or within the profile itself.
Similarly, for Android Publish Profiles, all app versions must have identical Package Names within the Android Publish Profile.
You can view the Bundle ID (iOS) and Package Name (Android) beneath the Publish Profile name. Users can also verify this information by selecting the Binary Information for an app version under the actions menu.
BundleID Matching
When a binary BundleID uploaded to the Publish profile does not match the master BundleID specified for the profile, a warning icon will appear next to the binary. This icon indicates that the BundleID of the related binary does not match. For this reason, you cannot start the Publish process with the mismatched binary and send your application to the stores.

Note that you cannot mark your application version with a mismatched BundleID as a Release Candidate.
For BundleID change, you can use the Resign Binary feature in the Action button or upload a matching binary.
Afterwards, you can start submitting your application to the stores with the publish flow that you have configured.

For this, click on the Actions button for the relevant version and go to Details. From there, you can manually Start Flow for the uploaded application version.
Store Status
Appcircle now allows you to track the App Store status of your applications directly within the Publish module. This powerful feature is tailored for Enterprise License holders, ensuring continuous monitoring of your application's deployment status.

How It Works
- Enterprise License: This feature is accessible to users with an enterprise license.
- Continuous Monitoring: Once a version is set as a Release Candidate, it is automatically monitored every 30 minutes to check its status on TestFlight and the App Store Distribution.
- Priority on Distribution: If the version is available in both TestFlight and App Store Distribution, the system prioritizes the status from App Store Distribution.
- Version Status: If a version has never been submitted to the App Store, it will show as
Not Available
. - Completion of Distribution: When a version reaches
Ready for Distribution
, Appcircle stops monitoring it, allowing you to focus resources on versions that still require attention.
Ensure you select store credentials in the Publish settings to start monitoring. If the credentials are not selected, the status will display as Not Available
.
This streamlined approach ensures that you are always informed of your application's status, simplifying management and enhancing your deployment strategy directly from the Appcircle dashboard.
Filter By Status
In the Publish module, where your Publish profiles are listed, you can use the filter option to display specific Publish profiles based on their latest store status.


The iOS Publish filter options will only display the available statuses from the existing Publish profiles in your profile list.


FAQ
How can I get a binary from another organization to use in the Publish Module ?
Let’s assume there are two organizations: Organization A and Organization B. In Organization A, we have a build profile that generates an IPA, APK, or AAB. In Organization B, we have a Publish profile that we want to send the binary to.
In Organization A's build profile workflow, after the build step, we can add a Custom Script step that includes the code snippet below to transfer the binary generated in Organization A to the Publish profile in Organization B. In order to do this, we need Appcircle CLI, so this code snippet sets up the necessary information and sends binary with parameters.
#Bash script
sudo npm install -g @appcircle/cli
appcircle login --pat $ORG_B_PERSONAL_API_TOKEN
# If an IPA or AAB is required, change *.apk to *.ipa or *.aab
appcircle publish profile version upload \
--platform <string> \
--publishProfileId "$ORG_B_PUBLISH_PROFILE_ID" \
--app "$AC_OUTPUT_DIR"/*.apk \
--markAsRc <boolean> \
--summary <string>
- --platform "ios" or "android" [REQUIRED] Specifies the platform for the binary.
- --markAsRc true/false [OPTIONAL] Marks the binary as a release candidate automatically. (Default:
false
) - --summary "Release Notes" [OPTIONAL] Adds release notes to the app version.
Note: To include release notes, the version must first be marked as a release candidate.
Ensure that, uploading a binary to a Publish profile will require exact same Package Name or Bundle ID
Keep in mind that, uploading a binary to an existing profile requires a new version code. Using the same version code will cause the CLI to return an error.
The key point here is that we need two essential parameters to make this work.
ORG_B_PERSONAL_API_TOKEN
=> Organization PAT (Personal API Token) from Organization B.ORG_B_PUBLISH_PROFILE_ID
=> Publish profile ID from Organization B.$AC_OUTPUT_DIR
=> Automatically defined by the system. See Reserved Variables.
To generate Personal API Token, follow this documentation API authentication
To obtain the Publish profile ID, follow the steps below:
- Log in to organization B.
- Go to Publish module.
- Select the desired Publish profile
- Copy it from the URL.
https://my.appcircle.io/publish/android/123456f-7d89-4545-5454-123456789abc
- Then the Publish profile ID is =>
123456f-7d89-4545-5454-123456789abc
After collecting the required parameters, set the following values as Environment Variables:
ORG_B_PERSONAL_API_TOKEN
ORG_B_PUBLISH_PROFILE_ID
Please do not use sensitive variables such as Personal API Token, Profile ID directly within the step.
We recommend using Environment Variables groups for such sensitive variables.
Keep in mind that the Environment Variable Group must be selected in the build profile configuration.