2.6 KiB
2.6 KiB
Flutter Build iOS
Composite action to install Apple signing certificates and provisioning profiles into an isolated temporary keychain, build a Flutter iOS .ipa, and optionally push to TestFlight and Shorebird.
Inputs
| Name | Description | Required | Default |
|---|---|---|---|
working_directory |
Path to the Flutter app package directory. | No | . |
export_options_plist |
Relative path inside working_directory to ExportOptions.plist. |
No | ios/ExportOptions.plist |
build_args |
Extra arguments passed to flutter build ipa / ios. |
No | '' |
disable_spm |
Disable Flutter Swift Package Manager before building. | No | true |
artifact_prefix |
Optional prefix for copied versioned IPA in output_dir. |
No | '' |
output_dir |
Directory to copy versioned IPA into when artifact_prefix is set. |
No | artifacts |
certificate_base64 |
Base64-encoded Apple iOS distribution .p12 certificate. |
No | '' |
certificate_password |
Password for the Apple .p12 certificate. |
No | '' |
provisioning_profile_base64 |
Base64-encoded .mobileprovision profile. |
No | '' |
asc_key_id |
App Store Connect API Key ID. | No | '' |
asc_issuer_id |
App Store Connect API Issuer ID. | No | '' |
asc_private_key |
App Store Connect API Private Key (.p8 content). |
No | '' |
apple_id_username |
Fallback Apple ID email for altool upload. |
No | '' |
apple_id_password |
Fallback Apple ID app-specific password for altool upload. |
No | '' |
upload_to_testflight |
Whether to upload signed IPA to TestFlight when credentials are provided. | No | true |
shorebird_token |
Shorebird token for optional Shorebird iOS release. | No | '' |
Outputs
| Name | Description |
|---|---|
version |
Resolved package version from pubspec.yaml. |
ipa_path |
Path to the built or packaged .ipa file. |
signed |
'true' if a signed App Store IPA was exported, 'false' otherwise. |
Example Usage
- name: Build & Release iOS
uses: rodydavis/shared-actions/flutter-build-ios@main
with:
working_directory: packages/hfw_flutter
artifact_prefix: hfw-ios
certificate_base64: ${{ secrets.IOS_CERTIFICATE_BASE64 }}
certificate_password: ${{ secrets.IOS_CERTIFICATE_PWD }}
provisioning_profile_base64: ${{ secrets.IOS_PROVISIONING_PROFILE_BASE64 }}
asc_key_id: ${{ secrets.APP_STORE_CONNECT_KEY_ID }}
asc_issuer_id: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}
asc_private_key: ${{ secrets.APP_STORE_CONNECT_PRIVATE_KEY }}
shorebird_token: ${{ secrets.SHOREBIRD_TOKEN }}