Zurück zur Startseite

iOS-Entwicklung unter Windows ohne Mac — GitHub Actions

Der Artikel beschreibt die Entwicklung und Veröffentlichung von iOS-Apps unter Windows ohne Mac mit GitHub Actions, XcodeGen und Claude Code. Zwei Beispiele im App Store: Messenger und Rechner. Vollständige Anleitungen zu Zertifikaten und Pipeline.

iOS ohne Mac: von Windows zum App Store in 15 Min.
Advertisement 728x90

iOS-Apps auf Windows entwickeln mit GitHub Actions und XcodeGen

Zwei iOS-Apps – der verschlüsselte Messenger Dark Message und der HLK-Engineering-Rechner – sind im App Store veröffentlicht. Sie wurden vollständig auf Windows ohne MacBook entwickelt. Der Prozess: Code wird lokal geschrieben, während das Bauen und Signieren auf virtuellen macOS-Maschinen in GitHub Actions erfolgt. Die Zeit vom Pushen ins Repository bis zum Bauen auf einem iPhone beträgt 15 Minuten.

Dies umgeht die Xcode-Anforderung für macOS. GitHub stellt kostenlose Runner mit macOS bereit, auf denen Xcode installiert ist. Das Setup umfasst ein Apple Developer-Konto, XcodeGen zum Generieren des Projekts aus YAML, eine CI/CD-Pipeline und Signaturzertifikate.

Entwicklungswege für verschiedene Kenntnisstufen

Die Wahl des Ansatzes hängt von den Fähigkeiten ab:

Google AdInline article slot
  • Vibe-Coding mit KI: Claude Code generiert SwiftUI-Code aus Beschreibungen. Funktioniert im Terminal auf Windows. Beispiel-Prompt: "iOS-App in SwiftUI, AES-256-GCM-Verschlüsselung mit PBKDF2, Eingabe-/Entschlüsselungsbildschirme."
  • Programmierer ohne Mac: Eigener Swift-Code + KI richtet die Infrastruktur ein (XcodeGen, GitHub Actions, Zertifikate).
  • Hardcore: Manuelle Projektstruktur, YAML-Konfiguration, Pipeline. Iterationen über TestFlight ohne lokale Vorschau.

Installation von Claude Code:

npm install -g @anthropic-ai/claude-code
claude

KI erstellt Dateien, bearbeitet basierend auf Feedback. Keine Vorschau, aber Cloud-Builds kompensieren.

Schritt 1: Apple Developer-Konto aus Russland

Erstellen Sie eine Apple-ID unter appleid.apple.com (Land ≠ Russland). Registrieren Sie sich unter developer.apple.com/programs/enroll als Einzelperson. Zahlung 99 $/Jahr – nutzen Sie eine ausländische Karte (Bybit oder ähnlich). Zugang zu App Store Connect innerhalb von 24–48 Stunden.

Google AdInline article slot

Schritt 2: Projektstruktur und XcodeGen

XcodeGen generiert .xcodeproj aus project.yml ohne Xcode. Beispielkonfiguration:

name: DarkMessage
options:
  bundleIdPrefix: com.darkmessage
  deploymentTarget:
    iOS: "15.0"
  xcodeVersion: "15.0"
targets:
  DarkMessage:
    type: application
    platform: iOS
    sources:
      - path: Sources
    resources:
      - path: Resources
    settings:
      base:
        PRODUCT_BUNDLE_IDENTIFIER: com.darkmessage.ios
        MARKETING_VERSION: "1.0.0"
        CURRENT_PROJECT_VERSION: "1"
        SWIFT_VERSION: "5.9"
        TARGETED_DEVICE_FAMILY: "1,2"
        INFOPLIST_VALUES:
          UILaunchScreen: {}
    dependencies: []

Repository-Struktur:

  • Sources/: App.swift, Views/, Models/, Services/ (CryptoService.swift).
  • Resources/Assets.xcassets/.
  • project.yml.
  • .github/workflows/build.yml.

YAML-Vorteile: kompakt (30 Zeilen), keine Git-Konflikte, in VS Code bearbeitbar.

Google AdInline article slot

Schritt 3: Repository und GitHub Actions

Initialisierung:

git init
git add .
git commit -m "Initialer Commit"
git remote add origin https://github.com/user/repo.git
git push -u origin main

Actions-Runner mit macOS bauen das Projekt: xcodegen generate, xcodebuild, Signieren, Upload zu TestFlight/App Store.

Schritt 4: Code-Signing ohne Mac

Erforderlich:

  • Distribution Certificate (.p12).
  • Provisioning Profile (.mobileprovision).
  • App Store Connect API Key.

CSR auf Windows mit OpenSSL generieren:

openssl genrsa -out ios_dist.key 2048
openssl req -new -key ios_dist.key -out ios_dist.csr -subj "/CN=Ihr Name/[email protected]"

CSR hochladen unter developer.apple.com/account/resources/certificates → Apple Distribution → .cer herunterladen. In .p12 konvertieren:

openssl x509 -inform der -in ios_dist.cer -inkey ios_dist.key -out ios_dist.p12

Provisioning Profile: developer.apple.com → Profiles → + → App Store → Bundle-ID → Zertifikat.

API Key: App Store Connect → Users and Access → Keys → + → App Manager.

Geheimnisse in GitHub Settings → Secrets speichern: CERTIFICATE_P12_BASE64, PROVISIONING_PROFILE_BASE64, APPSTORE_API_KEY.

Schritt 5: Workflow YAML für CI/CD

Beispiel .github/workflows/build.yml (vereinfacht):

name: Build iOS
on: [push]
jobs:
  build:
    runs-on: macos-13
    steps:
      - uses: actions/checkout@v4
      - name: Xcode-Projekt generieren
        uses: maxim-lobanov/setup-xcodegen@v1
        with:
          xcodegen-version: '2.35.0'
      - run: xcodegen generate
      - name: Zertifikat importieren
        env:
          CERTIFICATE_P12: ${{ secrets.CERTIFICATE_P12_BASE64 }}
        run: |
          echo $CERTIFICATE_P12 | base64 --decode > cert.p12
          security import cert.p12 -k ~/Library/Keychains/login.keychain
      # ... Signieren, Archivieren, Hochladen

Vollständiger Workflow umfasst xcodebuild archive, xcrun altool oder xcrun notarytool für den App Store.

Wichtige Punkte

  • GitHub Actions mit macOS sind für öffentliche Repos kostenlos (2000 Min./Monat).
  • XcodeGen vereinfacht das Projektmanagement ohne Xcode.
  • Code-Signing wird über base64-kodierte Geheimnisse automatisiert.
  • Iterationen: 15 Minuten vom Push bis zu TestFlight.
  • Geeignet für Einmalprojekte; für Produktion beschleunigt ein Mac die Entwicklung.

— Editorial Team

Advertisement 728x90

Weiterlesen