xcode

package
v1.260722.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 22, 2026 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultExportOptionsPathForArchive added in v1.260722.0

func DefaultExportOptionsPathForArchive(archivePath string) string

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

func InferArchivePlatform(archivePath string) (string, error)

InferArchivePlatform returns the App Store platform for the archived app by reading the embedded app Info.plist inside the .xcarchive.

func IsDirectUploadMode

func IsDirectUploadMode(exportOptionsPlistPath string) bool

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

func IsExportDestinationUsageError(err error) bool

IsExportDestinationUsageError reports whether destination preflight failed because of deterministic CLI input rather than a filesystem access error.

func PreflightExport added in v1.260722.0

func PreflightExport(ctx context.Context) error

PreflightExport verifies that local Xcode export tooling is available before callers perform any preparatory filesystem mutation.

func PreflightExportDestination added in v1.260722.0

func PreflightExportDestination(ipaPath string, overwrite, directUpload bool) error

PreflightExportDestination validates an IPA destination and proves its parent writable with a transient probe. Export repeats the check before the final mutation.

func SupportsBuildStatusBundleID

func SupportsBuildStatusBundleID(ctx context.Context) bool

SupportsBuildStatusBundleID reports whether the current altool help output advertises a dedicated --bundle-id flag for build-status lookups.

func UniqueDiagnosticDetails

func UniqueDiagnosticDetails(values []string) []string

func UniqueExportOptionsPathForArchive added in v1.260722.0

func UniqueExportOptionsPathForArchive(archivePath string) (string, error)

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 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

func ValidateExportDestination(ipaPath string, overwrite, directUpload bool) error

ValidateExportDestination checks an IPA destination without mutating the filesystem.

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 ArchiveOptions struct {
	WorkspacePath  string
	ProjectPath    string
	Scheme         string
	Configuration  string
	ArchivePath    string
	Clean          bool
	Overwrite      bool
	XcodebuildArgs []string
	LogWriter      io.Writer
}

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 BuildStatusOptions

type BuildStatusOptions struct {
	AppleID            string
	BundleID           string
	BundleVersion      string
	BundleShortVersion string
	Platform           string
	APIKey             string
	APIIssuer          string
	P8FilePath         string
	LogWriter          io.Writer
}

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.

const (
	BumpMajor BumpType = "major"
	BumpMinor BumpType = "minor"
	BumpPatch BumpType = "patch"
	BumpBuild BumpType = "build"
)

func ParseBumpType

func ParseBumpType(s string) (BumpType, error)

ParseBumpType validates and normalizes a bump type string.

type BumpVersionOptions

type BumpVersionOptions struct {
	ProjectDir    string
	Target        string
	Configuration string
	BumpType      BumpType
	BuildNumber   string
}

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 ExportOptions struct {
	ArchivePath    string
	ExportOptions  string
	IPAPath        string
	Overwrite      bool
	XcodebuildArgs []string
	LogWriter      io.Writer
}

type ExportOptionsGenerateOptions added in v1.260722.0

type ExportOptionsGenerateOptions struct {
	ArchivePath  string
	OutputPath   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

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)

type GetVersionOptions added in v1.260722.0

type GetVersionOptions struct {
	ProjectDir    string
	Target        string
	Configuration string
}

GetVersionOptions configures a structured version read.

type SetVersionOptions

type SetVersionOptions struct {
	ProjectDir    string
	Target        string
	Configuration string
	Version       string
	BuildNumber   string
}

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 ValidateOptions struct {
	IPAPath   string
	APIKey    string
	APIIssuer string
	LogWriter io.Writer
}

type ValidateResult

type ValidateResult struct {
	IPAPath   string `json:"ipa_path"`
	Validated bool   `json:"validated"`
}

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL