DevOps / CI·CD 11. April 2026

Xcode SwiftPM-Paketregistrierung, Resolve und CI-Cache auf gemietetem Cloud-Mac (2026)

MacXCode Engineering-Team · ~16 Min.

Auf Apple-Silicon-Buildern in SG/JP/KR/HK/US East scheitern Pipelines oft am Dependency-Fetch, nicht am Compiler. Ergänzend: SwiftPM vs CocoaPods, parallele xcodebuild-Jobs, Self-Hosted Runner.

Warum Regionen zählen

  • Egress-Routen und IP-Allowlists unterscheiden sich.
  • Git LFS / Binärartefakte: RTT ⇒ warme Caches.
  • Multi-Tenant: kein blindes Teilen von ~/Library/Caches/org.swift.swiftpm.
Regel: Package.resolved auf Release-Branches committen; auf main read-only resolve.

Auth ohne GUI

CI-Secrets → ~/.netrc, Modus 600, nach dem Job löschen.

Lock-Policy

BranchPolicyCI
mainLock PflichtFehler bei Graphänderung
FeatureBot-UpdatesPR mit neuem Lock
Libraryoft kein Lockephemerer Lock in CI

Pfade

PfadRolleHinweis
SourcePackagesQuellenpro Job isolieren
DerivedDataIndexParallel-Limits
Globaler SPM-CacheDownloadsRO-Warm + isolierte Writer

SSH-CI-Schritte

swift package resolve — Signierung und Resolve im selben Benutzer wie Remote-Archive.

Regionalmatrix

ThemaMessungGegenmaßnahme
RTTTTFBSpiegel
GitHub429Backoff
Diskfs_usageeigenes Volume

FAQ

FrageAntwort
Cache deaktivieren?Nur bei Korruptionsdebug.
Xcode Cloud?Siehe Vergleich.
DeterminismusChecksum von Package.resolved in CI.

Mac mini M4

Schnelles NVMe und Unified Memory. Preise, Hilfe.

Dediziertes Apple-Silicon-CI

HK · JP · KR · SG · US