Framework
ShipItKit
Topics
Classes
actor ActionRegistryCentral registry for built-in and plugin-provided actions.
actor AppStoreConnectClientActor-isolated client for the App Store Connect REST API.
actor GooglePlayJWTGeneratorGenerates and caches Google OAuth2 access tokens for service account authentication.
actor JWTGeneratorGenerates ES256-signed JWTs for App Store Connect API authentication.
actor PluginRegistryManages a collection of statically linked
ShipItPlugintypes and registers their action descriptors into anActionRegistry.actor RateLimiterTracks App Store Connect API rate limits and enforces backoff.
actor WorkloadIdentityFederationClientExchanges a GitHub Actions OIDC token for a short-lived Google Cloud access token via Workload Identity Federation — no service-account key ever exists on disk or in CI secrets.
Protocols
protocol ActionA discrete, composable unit of work in the release pipeline.
protocol EmptyBodyResponseA response type with no body content (e.g. 204 No Content).
protocol InfrastructureFailureClassifierClassifies whether a test failure log represents a transient infrastructure problem (retryable) versus a real test/build failure (not retryable).
protocol ShipItPluginDefine custom actions that extend ShipItSwifty.
protocol TestArtifactLocatorDiscovers parseable test artifacts from a project directory.
protocol TestRerunPlannerBuilds runner-specific rerun selectors from a parsed run.
protocol TestResultParserParses one runner-specific input into a normalized
ParsedTestRun.
Structures
struct AIReadinessReady-to-run diagnosis for a specific workflow goal.
struct AISessionBuilderBuilds a structured
AISessionPayloadfrom a project inspection.struct AISessionPayloadThe full structured payload returned by
shipit ai-session.struct ASCAppAn iOS or macOS app registered in App Store Connect.
struct ASCBetaGroupA TestFlight beta testing group.
struct ASCBetaTesterA TestFlight beta tester.
struct ASCBuildA processed build associated with an app in App Store Connect.
struct ASCListResponseGeneric list response wrapper for App Store Connect API list endpoints.
struct ASCResponseGeneric single-resource response wrapper for App Store Connect API responses.
struct ActionContextShared context passed to every action during execution.
struct ActionDescriptorType-erased registration metadata used by CLI commands, Shipfile workflows, and plugins to resolve actions by name at runtime.
struct ActionResultEnvelopeStandardized result wrapper emitted by the CLI and workflow runner.
struct ActionSchemastruct ActionValidationContextThe context passed to each
ActionValidationRuleduring Shipfile validation.struct ActionValidationRuleA single semantic validation rule attached to an
ActionDescriptor.struct AgvtoolA typed wrapper for
xcrun agvtoolcommands.struct AltoolA typed wrapper for
xcrun altoolcommands.struct AmbiguityFlagA field where multiple valid options exist and the agent cannot auto-select.
struct AndroidCLIConfigConfiguration for the external Google Android CLI.
struct AndroidCLIVersionActionstruct AndroidCLIWorkflowOptionsstruct AndroidCLIWorkflowResultstruct AndroidConfigAndroid-specific configuration for the
android:Shipfile block.struct AndroidCreateActionstruct AndroidDescribeActionstruct AndroidDocsActionstruct AndroidEmulatorActionstruct AndroidHelpActionstruct AndroidInfoActionstruct AndroidInfrastructureClassifierClassifies Android Gradle/emulator infrastructure failures.
struct AndroidInitActionstruct AndroidInstallActionstruct AndroidJUnitTestParserParses one or more Android JUnit XML files into a normalized
ParsedTestRun.struct AndroidLayoutActionstruct AndroidRunActionstruct AndroidSDKActionstruct AndroidScreenActionstruct AndroidSkillsActionstruct AndroidStudioActionstruct AndroidUpdateActionstruct AppConfigCore app identity and Xcode project settings.
struct AppStoreConnectConfigApp Store Connect API key configuration.
struct AppStoreReleaseServiceShared App Store release operations built on top of
AppStoreConnectClient.struct ArchiveActionArchives the app for distribution.
struct ArchiveConfigArchive configuration.
struct AssetUploaderHandles the multi-step asset upload protocol for App Store Connect.
struct BashA typed wrapper for
/bin/bashscript execution.struct BuildActionCompiles the app.
struct BuildConfigXcode build settings.
struct CLIOptionsCLI-level options that can override Shipfile and environment settings.
struct CertVaultGit-backed encrypted certificate and provisioning profile storage.
struct CertificateInfoInformation about a code signing certificate.
struct CertificateManagerManages code signing certificates — syncing from encrypted storage and creating new certificates via the App Store Connect API.
struct CodeSigningConfigCode signing configuration.
struct ConfigResolverMerges configuration from CLI flags, Shipfile.yml, environment variables, and built-in defaults.
struct CoverageActionReads and summarizes native coverage artifacts produced by a prior test run.
struct CustomActionConfigA user-defined reusable sequence of action steps.
struct CustomActionParameterA declared parameter on a
CustomActionConfig.struct DsymActionDownloads or uploads dSYM files for crash symbolication.
struct EnvironmentReads ShipItSwifty configuration from environment variables.
struct ExportActionExports an IPA from an
.xcarchiveusingxcodebuild -exportArchive.struct ExportConfigIPA export configuration.
struct FirebaseAppDistributionActionUploads a signed IPA, APK, or AAB to Firebase App Distribution and releases it to testers.
struct FirebaseAppDistributionClientJWT-authenticated HTTP client for the Firebase App Distribution API (v1).
struct FirebaseAppIDA parsed and validated Firebase app ID.
struct FirebaseReleaseA release record returned by the App Distribution API.
struct FirebaseReleaseNotesRelease notes attached to an App Distribution release.
struct FirebaseUploadReleaseResponseThe payload returned once the upload long-running operation completes.
struct FlutterCLIA typed wrapper for
flutterCLI commands used by ShipItKit.struct FlutterInfrastructureClassifierClassifies Flutter test infrastructure failures.
struct FlutterMachineOutputParserParses
flutter test --machinenewline-delimited JSON output.struct FrameActionOverlays device frames on raw screenshots.
struct FrameitA typed wrapper for the
frameitcommand.struct GenerateProjectActionGenerates an Xcode project from a project spec file (e.g. XcodeGen’s
project.yml).struct GitActionPerforms Git operations via SwiftyShell.
struct GitCLIA typed wrapper for ad hoc
gitCLI commands used by ShipItKit.struct GooglePlayApkAn uploaded APK.
struct GooglePlayBundleAn uploaded Android App Bundle.
struct GooglePlayClientJWT-authenticated HTTP client for the Google Play Developer API (v3).
struct GooglePlayEditA Google Play edit session. All publishing changes are made within an edit and then committed atomically.
struct GooglePlayReleaseA release within a track, tying version codes to a status and release notes.
struct GooglePlayReleaseNoteA release note for a specific language.
struct GooglePlayTrackA Google Play distribution track (e.g. internal, alpha, beta, production).
struct GooglePlayUploadServiceOrchestrates the Google Play edit → upload → track → commit workflow.
struct GoogleServiceAccountCredentialsService account credentials loaded from a Google Cloud service account JSON key file.
struct GradleBuildSummaryA concise, human-readable summary parsed from a Gradle build’s stdout.
struct IOSArchiveInfrastructureClassifierClassifies iOS xcodebuild archive infrastructure failures.
struct IOSConfigiOS-specific Shipfile overrides for the
ios:block.struct IOSInfrastructureClassifierClassifies iOS/macOS xcodebuild infrastructure failures.
struct IOSXCResultTestParserParses iOS test results from an
.xcresultbundle usingxcresulttool.struct IPAUploadServiceCoordinates the IPA upload to App Store Connect / TestFlight.
struct InferredConfigEntryA configuration value with full provenance — what was found, how, and why.
struct InfrastructureRetrySchedulerManages infrastructure-level retry logic for test invocations across all platforms.
struct JSONReporterEncodes
ActionResultEnvelopevalues to JSON strings for CLI output.struct JSScriptRunnerRuns a named script from
package.jsonusing the detected package manager.struct JestJSONTestParserParses Jest
--json --outputFileresults into a normalizedParsedTestRun.struct KMPInfrastructureClassifierClassifies Kotlin Multiplatform iOS test infrastructure failures run via Gradle.
struct KeychainHelperWraps macOS
securityCLI commands for keychain management.struct LintActionRuns static analysis and lint checks on the codebase.
struct MetadataActionManages App Store metadata — pull from or push to App Store Connect.
struct MetadataConfigApp Store metadata configuration.
struct NextActionThe single next deterministic step the agent should take.
struct NoContentResponseDefault empty-body response used for 204 No Content ASC endpoints.
struct NotificationsConfigNotification configuration.
struct NotifierSends build notifications to Slack, Teams, Discord, and custom webhooks.
struct NotifyActionPosts build results to Slack, Teams, Discord, or any custom webhook.
struct PagedLinksPagination links included in list API responses.
struct ParsedTestCaseOne parsed test case from a tool artifact.
struct ParsedTestRunA normalized test run parsed from an existing tool artifact.
struct ParsedTestSuiteLogical grouping for one parsed test suite.
struct ParsingDiagnosticRecoverable warning emitted while parsing an artifact.
struct PlayStoreActionUploads a release artifact to Google Play and assigns it to a distribution track.
struct PlutilA typed wrapper for macOS property list validation, conversion, extraction, and mutation.
struct PrecheckActionValidates App Store metadata against App Store guidelines before submission.
struct ProfileManagerManages provisioning profiles — creating via ASC API and installing locally.
struct ProjectGenerationConfigProject generation configuration for spec-driven projects (e.g. XcodeGen, Tuist).
struct ProjectInspectionstruct ProjectInspectorstruct ProvisionActionCreates App IDs on the Apple Developer Portal and registers devices.
struct ProvisioningProfileInfoInformation about a provisioning profile.
struct ReactNativeCLIA typed wrapper for
npx react-nativeCLI commands used by ShipItKit.struct ReactNativeInfrastructureClassifierClassifies React Native (Jest/Mocha) infrastructure failures.
struct ResolvedConfigFlat struct containing all resolved configuration values after merging CLI flags, environment variables, Shipfile.yml, and built-in defaults.
struct RetryPolicyDefines retry behavior with exponential backoff for transient failures.
struct SchemaFieldstruct SchemaSectionstruct ScreenshotsConfigScreenshot capture configuration.
struct SecretDescriptorDescribes a required secret: what it is, how to obtain it, and how to supply it.
struct SecurityCLIA typed wrapper for macOS
securityCLI commands.struct ShipfileThe top-level structure of a
Shipfile.ymlconfiguration file.struct ShipfileSuggesterstruct ShipfileValidatorstruct SignActionManages certificates and provisioning profiles via encrypted vault storage.
struct SimctlA typed wrapper for
xcrun simctlcommands.struct SimctlCommandA typed
simctlsubcommand and its arguments.struct SimctlListTargetA typed target accepted by
simctl list.struct SlackAttachmentA Slack message attachment for rich formatting.
struct SlackConfigSlack notification settings.
struct SlackPayloadA Slack incoming webhook message payload.
struct SnapshotActionCaptures localized screenshots on simulators by running UI tests.
struct SuggestedShipfilestruct TestActionstruct TestArtifactArtifact discovered by a
TestArtifactLocator.struct TestAttemptOne execution attempt within a multi-attempt test run.
struct TestDeviceConfigDevice configuration for test runs requiring a device.
struct TestFlightActionUploads a build to TestFlight and manages beta distribution.
struct TestFlightConfigTestFlight distribution configuration.
struct TestParseContextInput metadata passed to artifact locators before parsing.
struct TestResultsActionReads and normalizes test-result artifacts produced by a prior test run.
struct TestRunReportAggregate report spanning one or more rerun attempts.
struct TestSummaryAggregate counts for a parsed test run or rerun attempt.
struct UploadActionUploads an IPA and metadata to App Store Connect.
struct UploadCommitCommit data sent to App Store Connect to finalize a multi-part upload.
struct UploadHeaderAn HTTP header included in an upload operation.
struct UploadOperationA single upload operation describing how to PUT one part of the asset.
struct UploadReservationReservation returned by the App Store Connect API when reserving an asset upload slot.
struct ValidateArchiveActionValidates a
.xcarchive, exported.ipa, or app bundle for App Store upload readiness.struct ValidateBundleActionValidates an Android App Bundle (
.aab) or APK for Google Play upload readiness.struct ValidationIssuestruct ValidationReportstruct VersionActionBumps
CFBundleVersionand/orCFBundleShortVersionStringin the Xcode project.struct VersionBumperReads and writes
CFBundleVersionandCFBundleShortVersionStringusingplutilandxcrun agvtool.struct VersioningConfigBuild number and version bump strategy configuration.
struct WhichA typed wrapper for the
whichcommand.struct WorkflowA named sequence of actions forming a release workflow.
struct WorkflowConfigA named workflow definition — an ordered list of steps. Configuration for a named workflow, including optional workflow-level overrides and an ordered sequence of steps.
struct WorkflowResultThe result of executing a named workflow.
struct WorkflowStepA single step within a workflow, referencing a registered action by name.
struct WorkflowStepConfigA single step within a workflow definition from the Shipfile.
struct XccovA typed wrapper for
xcrun xccovcommands.struct XcodeBuildSummaryA concise, human-readable summary parsed from an
xcodebuildinvocation’s stdout.struct XcrunA fluent wrapper for the
xcruncommand.struct XcrunOptionA typed
xcrunoption and its raw arguments.
Functions
func formatDurationSeconds(Double) -> StringFormats an elapsed time (in seconds) for human-readable logs.
Enumerations
enum AndroidBuildTypeThe type of Android build artifact to produce.
enum BuildNumberStrategyStrategy for auto-incrementing build numbers.
enum BuildSystemThe build system that produces the native artifact for a given target platform.
enum BuiltInSchemaCatalogenum BuiltInValidationRulesMaps built-in action names to their semantic validation rules.
enum CompositeActionFactory and runtime for user-defined composite actions declared in
Shipfile.ymlundercustom_actions:.enum CoverageFormatOutput format for the coverage report.
enum CoverageSortSort order for coverage results.
enum FirebaseAppPlatformThe mobile platform encoded in a Firebase app ID.
enum FirebaseUploadResultOutcome of an upload, distinguishing a new release from a re-upload of identical bytes.
enum GooglePlayReleaseStatusDeployment status for a track release.
enum GradleTaskScopeWhere the Gradle task is qualified from.
enum InferenceConfidenceConfidence level for an inferred value.
enum InferenceSourceHow a configuration value was determined.
enum JSONValueA lossless JSON/YAML-compatible value type used for dynamically-typed action options.
enum JSPackageManagerThe JavaScript/Node.js package manager to use for running scripts.
enum JWTGeneratorErrorErrors thrown by
JWTGeneratorbefore reaching the JWT-signing layer.enum ParsingDiagnosticSeveritySeverity level for a parsing diagnostic.
enum PlatformThe target platform for build and distribution workflows.
enum PlutilConversionFormatA format accepted by
plutil -convert.enum PlutilConversionOutputThe destination for a converted property list.
enum PlutilEmptyCollectionAn empty property list collection accepted by
plutil -insert.enum PlutilExtractionFormatA format accepted by
plutil -extract.enum PlutilValueA typed value accepted by
plutil -insertandplutil -replace.enum PlutilValueTypeA property list type that
plutilcan verify while extracting a value.enum SchemaFieldNodeenum SchemaValidatorenum SchemaValueKindenum ShipItErrorTop-level error type for all ShipItSwifty failures.
enum SuggestionGoalenum TestArtifactKindCanonical artifact kind used by parser selection.
enum TestCaseStatusNormalized status for one parsed test case.
enum TestDeviceStrategyHow devices are provisioned for instrumented or e2e tests.
enum TestKindRuns unit and UI tests.
enum TestRerunSelectorRunner-specific test selector used for targeted reruns.
enum TestResultsFormatenum ValidationIssueSeverityenum WorkflowBuilderA result builder for constructing workflow step sequences with Swift DSL syntax.