Appcircle Publish
Upload an application binary to an Appcircle Publish profile and/or trigger its publish flow (app store publishing) directly from your Fastlane pipeline.
Learn more about Appcircle Publish.
System Requirements
Compatible Agents:
- macOS 14.2, 14.5
Supported Version:
- Fastlane 2.222.0
- Ruby 3.2.2
Note: Both Appcircle Cloud and self-hosted Appcircle installations are supported. See Self-Hosted Appcircle below to configure custom endpoints.
Generating/Managing the Personal API Tokens
To generate a Personal API Token:
- Go to the My Organization screen (second option at the bottom left).
- Find the Personal API Token section in the top right corner.
- Press the "Generate Token" button to generate your first token.
.png)
What the action does
The action has two independent switches — upload and publish — both default
to false. You must enable at least one. Create the Publish profile in
Appcircle first; the action targets it by name (profile names are unique per
platform).
upload |
publish |
Behavior |
|---|---|---|
true |
false |
Upload appPath as a new app version on the profile. |
false |
true |
Trigger the publish flow for the profile's current release candidate. |
true |
true |
Upload appPath, mark the new version as release candidate, then trigger the publish flow for it. |
false |
false |
Error — nothing to do. |
Rules:
- In-progress guard: if a publish is already running for the target profile, the action does not start a new one and fails fast.
- Release candidate: when both
uploadandpublisharetrue, the freshly uploaded version is automatically marked as the release candidate before it is published. In publish-only mode, the profile's existing release candidate is published. - Progress: while publishing, the action polls the publish status and prints step-by-step progress (with status icons) until the flow succeeds or fails.
Manual-approval steps: if the profile's publish flow contains a manual step (e.g. "Get Approval via Email"), the flow waits for that action and the plugin keeps polling until it completes or the poll times out. For CI use, prefer publish flows without manual gates.
Getting Started
This project is a fastlane plugin. To get started with appcircle_publish, add it to your project by running:
fastlane add_plugin appcircle_publish
Upload only:
lane :upload_to_publish do
appcircle_publish(
personalAPIToken: "$(AC_PERSONAL_API_TOKEN)",
platform: "$(AC_PLATFORM)", # "ios" or "android"
publishProfile: "$(AC_PUBLISH_PROFILE)",
upload: true,
appPath: "$(AC_APP_PATH)"
)
end
Publish only (publishes the profile's current release candidate):
lane :trigger_publish do
appcircle_publish(
personalAPIToken: "$(AC_PERSONAL_API_TOKEN)",
platform: "$(AC_PLATFORM)",
publishProfile: "$(AC_PUBLISH_PROFILE)",
publish: true
)
end
Upload and publish (uploads, marks it release candidate, then publishes):
lane :upload_and_publish do
appcircle_publish(
personalAPIToken: "$(AC_PERSONAL_API_TOKEN)",
platform: "$(AC_PLATFORM)",
publishProfile: "$(AC_PUBLISH_PROFILE)",
upload: true,
publish: true,
appPath: "$(AC_APP_PATH)"
)
end
personalAPIToken/personalAccessKey: Provide exactly one to authenticate Appcircle services.platform: Target platform of the Publish profile —iosorandroid.publishProfile: Name of the Publish profile to target.upload(defaultfalse): UploadappPathas a new app version.publish(defaultfalse): Trigger the profile's publish flow.appPath: Path to the application file. Required whenuploadistrue. For iOS use a.ipafile; for Android use a.apkor.aabfile.
Self-Hosted Appcircle
If you run a self-hosted Appcircle installation, point the action to your own endpoints with the optional authEndpoint and apiEndpoint parameters. Both default to the Appcircle cloud, so existing cloud users do not need to set them.
authEndpoint(optional): Authentication endpoint URL. Defaults tohttps://auth.appcircle.io.apiEndpoint(optional): API endpoint URL. Defaults tohttps://api.appcircle.io.
appcircle_publish(
personalAPIToken: "$(AC_PERSONAL_API_TOKEN)",
platform: "$(AC_PLATFORM)",
publishProfile: "$(AC_PUBLISH_PROFILE)",
publish: true,
authEndpoint: "https://auth.my-appcircle.example.com",
apiEndpoint: "https://api.my-appcircle.example.com"
)
Self-signed or private CA certificates: If your self-hosted Appcircle server uses a self-signed certificate (or one issued by a private/internal CA), requests will fail certificate validation. The plugin does not disable TLS verification. Trust the server's CA on the machine running Fastlane — add it to the system certificate store, or point the
SSL_CERT_FILEenvironment variable at a PEM bundle that includes it.
Leveraging Environment Variables
Utilize environment variables seamlessly by substituting the parameters with $(VARIABLE_NAME) in your task inputs. The plugin automatically retrieves values from the specified environment variables within your pipeline.
If you would like to learn more about this plugin and how to utilize it in your projects, please contact us
Issues and Feedback
For any other issues and feedback about this plugin, please submit it to this repository.
Troubleshooting
If you have trouble using plugins, check out the Plugins Troubleshooting guide.
Reference
For more detailed instructions and support, visit the Appcircle Publish documentation.