Naar inhoud springen

iOS

iOS CI op GitHub Actions

Xcode wordt vanuit het niets opgebouwd en code-ondertekening is kwetsbaar in CI.

18m → 4m
Incrementeel bouwen
26m → 8m
UI-testpakket

Xcode wordt vanuit het niets opgebouwd en code-ondertekening is kwetsbaar in CI.

Waarom het gebeurt

DerivedData wordt tussen uitvoeringen verwijderd en handtekeningmiddelen moeten elke keer in een nieuwe sleutelhanger worden geïmporteerd.

Wat te veranderen

  1. Persist DerivedData tussen runs: dit is de grootste overwinning
  2. Gebruik een speciale CI-sleutelhanger en importeer het certificaat één keer per taak
  3. Pin de Xcode-versie expliciet met xcode-select
  4. Shard UI-tests in verschillende simulators in plaats van ze serieel uit te voeren

iOS op runnerhut

yaml
jobs:
ios:
runs-on: runnerhut-macos-15-m4
steps:
- uses: actions/checkout@v4
- run: sudo xcode-select -s /Applications/Xcode_16.4.app
- run: |
xcodebuild test \
-scheme App \
-destination 'platform=iOS Simulator,name=iPhone 16' \
-derivedDataPath ~/Library/Developer/Xcode/DerivedData
Een werkend uitgangspunt

De enige runnerhut-specifieke regel is `runs-on: runnerhut-macos-15-m4`. Al het andere is standaard GitHub Actions — dezelfde acties, dezelfde geheimen en hetzelfde machtigingsmodel dat u vandaag de dag gebruikt.

Je volgende build kan twee keer zo snel zijn, voor de halve prijs

Begin gratis. Weggaan is dezelfde ene regel, en die diff publiceren we ook.