Structure
FirebaseAppDistributionAction
Uploads a signed IPA, APK, or AAB to Firebase App Distribution and releases it to testers.
struct FirebaseAppDistributionActionOverview
Runs the upload → poll → release-notes → distribute sequence against the App Distribution v1 API. Works on both iOS and Android; the platform is derived from the Firebase app ID and checked against the artifact’s extension so a mismatched build fails before upload.
Credentials
Two mutually exclusive paths, checked in this order:
Workload Identity Federation (keyless) — needs both
workload_identity_providerandservice_account_email(options or, respectively, theGOOGLE_WORKLOAD_IDENTITY_PROVIDER/GOOGLE_SERVICE_ACCOUNT_EMAILenvironment variables). No service-account key ever exists; this is the required path wherever an org enforcesiam.disableServiceAccountKeyCreation. SeeWorkloadIdentityFederationClientfor the exchange and the IAM bindings it needs.Service-account JSON key — resolved, in order, from the
service_account_pathoption, theFIREBASE_SERVICE_ACCOUNT_JSONenvironment variable (raw JSON), orGOOGLE_APPLICATION_CREDENTIALS(a path).
Inline credentials in a Shipfile are never accepted — workload_identity_provider and service_account_email are identifiers, not secrets, so they’re fine directly in a Shipfile.
Usage
# Keyless, via Workload Identity Federation:
- action: firebase-app-distribution
options:
app_id: ${FIREBASE_IOS_QA_APP_ID}
artifact_path: ./build/staging-export/App.ipa
groups:
- qa-testers
release_notes: Staging candidate
workload_identity_provider: projects/123456789/locations/global/workloadIdentityPools/github-actions/providers/github
service_account_email: firebase-app-distribution-ci@novalingo-staging.iam.gserviceaccount.comTopics
Configuration
struct OptionsConfiguration options for the Firebase App Distribution action.
Results
struct ResultResult of a Firebase App Distribution release.
Initializers
init()Creates a
FirebaseAppDistributionAction.
Instance Methods
func run(with: FirebaseAppDistributionAction.Options, context: ActionContext) async throws -> FirebaseAppDistributionAction.ResultExecute the Firebase App Distribution release.
Type Properties
static let description: StringHuman-readable description for
--helpoutput.static let name: StringThe registered name used in Shipfile workflows.
static var validationRules: [ActionValidationRule]
Default Implementations
Relationships
Conforms To
ActionSwift.SendableSwift.SendableMetatype