Documentation
¶
Index ¶
- Constants
- func ActiveXcodeMajorVersion(ctx context.Context) (int, error)
- func DefaultExportOptionsPathForArchive(archivePath string) string
- func GetConsistentMarketingVersion(ctx context.Context, opts GetVersionOptions) (string, error)
- func InferArchivePlatform(archivePath string) (string, error)
- func IsDirectUploadMode(exportOptionsPlistPath string) bool
- func IsExportDestinationUsageError(err error) bool
- func NormalizeExportOptionsMethod(value string) (string, error)
- func NormalizeExportOptionsSigningStyle(value string) (string, error)
- func PreflightExport(ctx context.Context) error
- func PreflightExportDestination(ipaPath string, overwrite, directUpload bool) error
- func SupportsBuildStatusBundleID(ctx context.Context) bool
- func UniqueDiagnosticDetails(values []string) []string
- func UniqueExportOptionsPathForArchive(archivePath string) (string, error)
- func ValidateBuildOptions(opts BuildOptions) error
- func ValidateBumpVersion(ctx context.Context, opts BumpVersionOptions) error
- func ValidateExportDestination(ipaPath string, overwrite, directUpload bool) error
- func ValidateExportXcodebuildArgs(args []string) error
- func ValidateSetVersion(opts SetVersionOptions) error
- type ArchiveOptions
- type ArchiveResult
- type BuildOptions
- type BuildResult
- type BuildSettingsLookupPolicy
- type BuildSettingsLookupSession
- type BuildStatusOptions
- type BuildStatusResult
- type BumpType
- type BumpVersionOptions
- type BumpVersionResult
- type ExportOptions
- type ExportOptionsGenerateOptions
- type ExportOptionsGenerateResult
- type ExportResult
- type GetVersionOptions
- type ManualReleaseTestingExportOptions
- type ManualReleaseTestingExportOptionsResult
- func ValidateManualReleaseTestingExportOptions(ctx context.Context, opts ManualReleaseTestingExportOptions) (*ManualReleaseTestingExportOptionsResult, error)
- func WriteManualReleaseTestingExportOptions(ctx context.Context, opts ManualReleaseTestingExportOptions) (*ManualReleaseTestingExportOptionsResult, error)
- type ReleaseTestingExportOptions
- type SetVersionOptions
- type SetVersionResult
- type ValidateOptions
- type ValidateResult
- type VersionChange
- type VersionInfo
Constants ¶
const ( BumpMajor BumpType = "major" BumpMinor BumpType = "minor" BumpPatch BumpType = "patch" BumpBuild BumpType = "build" BuildSettingsLookupAuto BuildSettingsLookupPolicy = "auto" BuildSettingsLookupNever BuildSettingsLookupPolicy = "never" )
Variables ¶
This section is empty.
Functions ¶
func ActiveXcodeMajorVersion ¶ added in v1.260813.0
ActiveXcodeMajorVersion returns the major version reported by the active xcodebuild selected through DEVELOPER_DIR or xcode-select.
func DefaultExportOptionsPathForArchive ¶ added in v1.260722.0
DefaultExportOptionsPathForArchive returns the archive-adjacent default path used when an explicit ExportOptions.plist was not supplied.
func GetConsistentMarketingVersion ¶ added in v1.260722.0
func GetConsistentMarketingVersion(ctx context.Context, opts GetVersionOptions) (string, error)
GetConsistentMarketingVersion resolves one marketing version across the full selected mutation scope.
func InferArchivePlatform ¶
InferArchivePlatform returns the App Store platform for the archived app by reading the embedded app Info.plist inside the .xcarchive.
func IsDirectUploadMode ¶
IsDirectUploadMode reports whether ExportOptions.plist uploads directly to App Store Connect instead of producing a local IPA artifact.
func IsExportDestinationUsageError ¶ added in v1.260722.0
IsExportDestinationUsageError reports whether destination preflight failed because of deterministic CLI input rather than a filesystem access error.
func NormalizeExportOptionsMethod ¶ added in v1.260816.0
NormalizeExportOptionsMethod validates the public method enum shared by export-options generation callers.
func NormalizeExportOptionsSigningStyle ¶ added in v1.260810.0
NormalizeExportOptionsSigningStyle validates the public signing-style enum shared by export-options generation callers.
func PreflightExport ¶ added in v1.260722.0
PreflightExport verifies that local Xcode export tooling is available before callers perform any preparatory filesystem mutation.
func PreflightExportDestination ¶ added in v1.260722.0
PreflightExportDestination validates an IPA destination and proves its parent writable with a transient probe. Export repeats the check before the final mutation.
func SupportsBuildStatusBundleID ¶
SupportsBuildStatusBundleID reports whether the current altool help output advertises a dedicated --bundle-id flag for build-status lookups.
func UniqueDiagnosticDetails ¶
func UniqueExportOptionsPathForArchive ¶ added in v1.260722.0
UniqueExportOptionsPathForArchive returns a non-existing archive-adjacent path suitable for implicit generation. The random suffix prevents an implicit export from replacing a user-managed ExportOptions.plist.
func ValidateBuildOptions ¶ added in v1.260810.0
func ValidateBuildOptions(opts BuildOptions) error
ValidateBuildOptions checks deterministic command-shape errors without reading the filesystem or starting a subprocess.
func ValidateBumpVersion ¶ added in v1.260722.0
func ValidateBumpVersion(ctx context.Context, opts BumpVersionOptions) error
ValidateBumpVersion verifies the complete local bump, including a consistent baseline across the selected configurations, without changing any files. Callers can use it before remote work such as resolving a build number.
func ValidateExportDestination ¶ added in v1.260722.0
ValidateExportDestination checks an IPA destination without mutating the filesystem.
func ValidateExportXcodebuildArgs ¶ added in v1.260813.0
ValidateExportXcodebuildArgs rejects passthrough arguments that would switch xcodebuild away from the export operation or override paths managed by asc.
func ValidateSetVersion ¶ added in v1.260722.0
func ValidateSetVersion(opts SetVersionOptions) error
ValidateSetVersion verifies that a version mutation is locally valid and editable without changing any files. Callers can use it before remote work.
Types ¶
type ArchiveOptions ¶
type ArchiveResult ¶
type ArchiveResult struct {
ArchivePath string `json:"archive_path"`
BundleID string `json:"bundle_id,omitempty"`
Version string `json:"version,omitempty"`
BuildNumber string `json:"build_number,omitempty"`
Scheme string `json:"scheme,omitempty"`
Configuration string `json:"configuration,omitempty"`
}
func Archive ¶
func Archive(ctx context.Context, opts ArchiveOptions) (*ArchiveResult, error)
type BuildOptions ¶ added in v1.260810.0
type BuildOptions struct {
WorkspacePath string
ProjectPath string
Scheme string
Configuration string
Destination string
DerivedDataPath string
ResultBundlePath string
Clean bool
NoCodeSigning bool
XcodebuildArgs []string
LogWriter io.Writer
}
BuildOptions describes an ordinary local xcodebuild compile.
type BuildResult ¶ added in v1.260810.0
type BuildResult struct {
WorkspacePath string `json:"workspace,omitempty"`
ProjectPath string `json:"project,omitempty"`
Scheme string `json:"scheme"`
Configuration string `json:"configuration,omitempty"`
Destination string `json:"destination,omitempty"`
DerivedDataPath string `json:"derived_data_path"`
ResultBundlePath string `json:"result_bundle_path,omitempty"`
BuildProductsPath string `json:"build_products_path,omitempty"`
Clean bool `json:"clean"`
NoCodeSigning bool `json:"no_code_signing"`
Success bool `json:"success"`
DurationMS int64 `json:"duration_ms"`
ExitStatus *int `json:"exit_status,omitempty"`
}
BuildResult is the stable structured result for an ordinary Xcode build.
func Build ¶ added in v1.260810.0
func Build(ctx context.Context, opts BuildOptions) (*BuildResult, error)
Build runs an ordinary local xcodebuild compile. If xcodebuild starts and fails, the returned result records failure details while the error preserves the subprocess or context error chain.
type BuildSettingsLookupPolicy ¶ added in v1.260804.0
type BuildSettingsLookupPolicy string
BuildSettingsLookupPolicy controls whether version commands may fall back to xcodebuild when structured project parsing cannot resolve version settings.
func ParseBuildSettingsLookupPolicy ¶ added in v1.260804.0
func ParseBuildSettingsLookupPolicy(value string) (BuildSettingsLookupPolicy, error)
ParseBuildSettingsLookupPolicy validates and normalizes the xcodebuild build-settings fallback policy. An empty value preserves the default auto behavior for programmatic callers.
type BuildSettingsLookupSession ¶ added in v1.260804.0
type BuildSettingsLookupSession struct {
// contains filtered or unexported fields
}
BuildSettingsLookupSession shares successful fallback reads and diagnostic state across the phases of one version command.
func NewBuildSettingsLookupSession ¶ added in v1.260804.0
func NewBuildSettingsLookupSession(policy BuildSettingsLookupPolicy, diagnostic io.Writer) *BuildSettingsLookupSession
NewBuildSettingsLookupSession creates command-scoped state for xcodebuild build-settings fallback reads.
type BuildStatusOptions ¶
type BuildStatusResult ¶
type BuildStatusResult struct {
BuildStatus string `json:"build_status,omitempty"`
DeliveryUUID string `json:"delivery_uuid,omitempty"`
ImportStatus string `json:"import_status,omitempty"`
ProcessingErrors []string `json:"processing_errors,omitempty"`
}
func BuildStatus ¶
func BuildStatus(ctx context.Context, opts BuildStatusOptions) (*BuildStatusResult, error)
type BumpType ¶
type BumpType string
BumpType represents the version component to increment.
func ParseBumpType ¶
ParseBumpType validates and normalizes a bump type string.
type BumpVersionOptions ¶
type BumpVersionOptions struct {
ProjectDir string
Target string
Configuration string
BumpType BumpType
BuildNumber string
BuildSettingsLookup BuildSettingsLookupPolicy
BuildSettingsDiagnostic io.Writer
BuildSettingsSession *BuildSettingsLookupSession
// AllowExternalXCConfig authorizes rewriting xcconfig files that the project
// references outside its own directory. Without it, such a mutation fails.
AllowExternalXCConfig bool
}
BumpVersionOptions configures the bump operation.
type BumpVersionResult ¶
type BumpVersionResult struct {
BumpType string `json:"bumpType"`
OldVersion string `json:"oldVersion,omitempty"`
NewVersion string `json:"newVersion,omitempty"`
OldBuild string `json:"oldBuild,omitempty"`
NewBuild string `json:"newBuild,omitempty"`
ProjectDir string `json:"projectDir"`
Target string `json:"target,omitempty"`
Configuration string `json:"configuration,omitempty"`
ChangedFiles []string `json:"changedFiles"`
Changes []VersionChange `json:"changes"`
}
BumpVersionResult holds the result of a bump operation.
func BumpVersion ¶
func BumpVersion(ctx context.Context, opts BumpVersionOptions) (*BumpVersionResult, error)
BumpVersion increments the version or build number.
type ExportOptions ¶
type ExportOptionsGenerateOptions ¶ added in v1.260722.0
type ExportOptionsGenerateOptions struct {
ArchivePath string
OutputPath string
Method string
Destination string
SigningStyle string
TeamID string
Overwrite bool
}
ExportOptionsGenerateOptions describes an ExportOptions.plist generated from an existing Xcode archive.
type ExportOptionsGenerateResult ¶ added in v1.260722.0
type ExportOptionsGenerateResult struct {
Path string `json:"path"`
ArchivePath string `json:"archive_path"`
Method string `json:"method"`
Destination string `json:"destination"`
SigningStyle string `json:"signing_style"`
TeamID string `json:"team_id,omitempty"`
SigningCertificate string `json:"signing_certificate,omitempty"`
ProvisioningProfiles map[string]string `json:"provisioning_profiles,omitempty"`
Overwritten bool `json:"overwritten"`
}
ExportOptionsGenerateResult describes the generated ExportOptions.plist.
func GenerateExportOptions ¶ added in v1.260722.0
func GenerateExportOptions(ctx context.Context, opts ExportOptionsGenerateOptions) (*ExportOptionsGenerateResult, error)
GenerateExportOptions creates a validated ExportOptions.plist without changing signing assets. Automatic signing only reads archive metadata; manual signing may inspect locally installed profiles and identities.
type ExportResult ¶
type ExportResult struct {
ArchivePath string `json:"archive_path"`
IPAPath string `json:"ipa_path"`
BundleID string `json:"bundle_id,omitempty"`
Version string `json:"version,omitempty"`
BuildNumber string `json:"build_number,omitempty"`
}
func Export ¶
func Export(ctx context.Context, opts ExportOptions) (*ExportResult, error)
func ExportReleaseTesting ¶ added in v1.260816.0
func ExportReleaseTesting(ctx context.Context, opts ReleaseTestingExportOptions) (*ExportResult, error)
ExportReleaseTesting verifies the immutable options artifact and exports to a new IPA path. It does not expose overwrite or xcodebuild passthrough flags, keeping retries safe to resume from an already-published stage artifact.
type GetVersionOptions ¶ added in v1.260722.0
type GetVersionOptions struct {
ProjectDir string
Target string
Configuration string
BuildSettingsLookup BuildSettingsLookupPolicy
BuildSettingsDiagnostic io.Writer
BuildSettingsSession *BuildSettingsLookupSession
}
GetVersionOptions configures a structured version read.
type ManualReleaseTestingExportOptions ¶ added in v1.260816.0
type ManualReleaseTestingExportOptions struct {
OutputPath string
TeamID string
SigningCertificate string
ProvisioningProfiles map[string]string
}
ManualReleaseTestingExportOptions is the exact signing selection for an agent-owned release-testing export. Unlike GenerateExportOptions in manual mode, this service never discovers or heuristically selects installed signing assets.
type ManualReleaseTestingExportOptionsResult ¶ added in v1.260816.0
type ManualReleaseTestingExportOptionsResult struct {
Path string `json:"path"`
SHA256 string `json:"sha256"`
}
ManualReleaseTestingExportOptionsResult identifies the immutable plist artifact written for a release-testing export.
func ValidateManualReleaseTestingExportOptions ¶ added in v1.260816.0
func ValidateManualReleaseTestingExportOptions(ctx context.Context, opts ManualReleaseTestingExportOptions) (*ManualReleaseTestingExportOptionsResult, error)
ValidateManualReleaseTestingExportOptions reopens an existing create-only artifact and proves its bytes equal the exact plist this request would write.
func WriteManualReleaseTestingExportOptions ¶ added in v1.260816.0
func WriteManualReleaseTestingExportOptions(ctx context.Context, opts ManualReleaseTestingExportOptions) (*ManualReleaseTestingExportOptionsResult, error)
WriteManualReleaseTestingExportOptions writes a create-only, private ExportOptions.plist with fixed release-testing semantics. The caller must provide the exact certificate selector and every bundle-to-profile mapping.
type ReleaseTestingExportOptions ¶ added in v1.260816.0
type ReleaseTestingExportOptions struct {
ArchivePath string
ExportOptionsPath string
ExportOptionsSHA256 string
IPAPath string
Environment []string
LogWriter io.Writer
}
ReleaseTestingExportOptions describes a fixed release-testing export run. Environment is required and becomes the exact environment of every xcodebuild subprocess, including the Xcode version preflight.
type SetVersionOptions ¶
type SetVersionOptions struct {
ProjectDir string
Target string
Configuration string
Version string
BuildNumber string
// AllowExternalXCConfig authorizes rewriting xcconfig files that the project
// references outside its own directory. Without it, such a mutation fails.
AllowExternalXCConfig bool
}
SetVersionOptions configures what to set.
type SetVersionResult ¶
type SetVersionResult struct {
Version string `json:"version,omitempty"`
BuildNumber string `json:"buildNumber,omitempty"`
ProjectDir string `json:"projectDir"`
Target string `json:"target,omitempty"`
Configuration string `json:"configuration,omitempty"`
ChangedFiles []string `json:"changedFiles"`
Changes []VersionChange `json:"changes"`
}
SetVersionResult holds the result of a set operation.
func SetVersion ¶
func SetVersion(ctx context.Context, opts SetVersionOptions) (*SetVersionResult, error)
SetVersion sets the marketing version and/or build number.
type ValidateOptions ¶
type ValidateResult ¶
func Validate ¶
func Validate(ctx context.Context, opts ValidateOptions) (*ValidateResult, error)
type VersionChange ¶ added in v1.260722.0
type VersionChange struct {
Setting string `json:"setting"`
OldValue string `json:"oldValue,omitempty"`
NewValue string `json:"newValue"`
Target string `json:"target,omitempty"`
Configuration string `json:"configuration,omitempty"`
Path string `json:"path"`
Source string `json:"source"`
}
VersionChange describes one concrete build-setting mutation.
type VersionInfo ¶
type VersionInfo struct {
Version string `json:"version"`
BuildNumber string `json:"buildNumber"`
ProjectDir string `json:"projectDir"`
Target string `json:"target,omitempty"`
Configuration string `json:"configuration,omitempty"`
VersionSource string `json:"versionSource,omitempty"`
BuildNumberSource string `json:"buildNumberSource,omitempty"`
Modern bool `json:"modern"` // true if project uses MARKETING_VERSION build setting
}
VersionInfo holds the current version and build number from an Xcode project.
func GetVersion ¶
func GetVersion(ctx context.Context, projectDir, target string) (*VersionInfo, error)
GetVersion reads the current marketing version and build number.
func GetVersionScoped ¶ added in v1.260722.0
func GetVersionScoped(ctx context.Context, opts GetVersionOptions) (*VersionInfo, error)
GetVersionScoped reads version values from a selected Xcode target and configuration.