Zpět na domů

iOS vývoj na Windows bez Mac — GitHub Actions

Článek popisuje vývoj a publikování iOS aplikací na Windows bez Mac s využitím GitHub Actions, XcodeGen a Claude Code. Dva příklady v App Store: messenger a kalkulačka. Kompletní instrukce k certifikátům a pipeline.

iOS bez Mac: od Windows do App Store za 15 min
Advertisement 728x90

Vývoj iOS aplikací na Windows s GitHub Actions a XcodeGen

Dvě iOS aplikace – šifrovaný messenger Dark Message a inženýrská kalkulačka HVAC – byly publikovány v App Store. Plně vyvinuty na Windows bez MacBooku. Proces: kód se píše lokálně, sestavení a podepisování na virtuálních macOS v GitHub Actions. Čas od push do repozitáře po sestavení na iPhone – 15 minut.

Tím se obchází požadavek Xcode na macOS. GitHub poskytuje bezplatné runnery s macOS, kde je nainstalován Xcode. Nastavení zahrnuje Apple Developer Account, XcodeGen pro generování projektu z YAML, CI/CD pipeline a podpisové certifikáty.

Cesty vývoje pro různé úrovně

Výběr přístupu závisí na dovednostech:

Google AdInline article slot
  • Vibe coding s AI: Claude Code generuje SwiftUI kód podle popisu. Funguje v terminálu na Windows. Příklad promptu: „iOS aplikace na SwiftUI, šifrování AES-256-GCM s PBKDF2, obrazovky pro vstup/dešifrování“.
  • Programátor bez Macu: Vlastní Swift kód + AI nastavuje infrastrukturu (XcodeGen, GitHub Actions, certifikáty).
  • Hardcore: Ruční struktura projektu, YAML konfigurace, pipeline. Iterace přes TestFlight bez lokálního náhledu.

Instalace Claude Code:

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

AI vytváří soubory, upravuje podle zpětné vazby. Náhled chybí, ale sestavení v cloudu to kompenzuje.

Krok 1: Apple Developer Account z Česka

Vytvořte Apple ID na appleid.apple.com (země ≠ Rusko). Zaregistrujte se na developer.apple.com/programs/enroll jako Individual. Platba $99/rok – zahraniční kartou (např. Revolut nebo ekvivalent). Přístup k App Store Connect do 24–48 hodin.

Google AdInline article slot

Krok 2: Struktura projektu a XcodeGen

XcodeGen generuje .xcodeproj z project.yml bez Xcode. Příklad konfigurace:

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: []

Struktura repozitáře:

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

Výhody YAML: kompaktní (30 řádků), žádné konflikty v Git, editovatelné v VS Code.

Google AdInline article slot

Krok 3: Repozitář a GitHub Actions

Inicializace:

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

Actions-runner s macOS sestavují projekt: xcodegen generate, xcodebuild, podpis, upload do TestFlight/App Store.

Krok 4: Podepisování kódu bez Macu

Potřeba:

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

Generování CSR na Windows s OpenSSL:

openssl genrsa -out ios_dist.key 2048
openssl req -new -key ios_dist.key -out ios_dist.csr -subj "/CN=Vaše jméno/[email protected]"

Nahrajte CSR na developer.apple.com/account/resources/certificates → Apple Distribution → stáhněte .cer. Převod na .p12:

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 → certifikát.

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

Uchovávejte tajemství v GitHub Settings → Secrets: CERTIFICATE_P12_BASE64, PROVISIONING_PROFILE_BASE64, APPSTORE_API_KEY.

Krok 5: Workflow YAML pro CI/CD

Příklad .github/workflows/build.yml (zjednodušený):

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

Úplný workflow zahrnuje xcodebuild archive, xcrun altool nebo xcrun notarytool pro App Store.

Co je důležité

  • GitHub Actions s macOS jsou zdarma pro public repo (2000 min/měsíc).
  • XcodeGen zjednodušuje správu projektu bez Xcode.
  • Podepisování kódu se automatizuje přes base64 zakódovaná tajemství.
  • Iterace: 15 minut od push do TestFlight.
  • Vhodné pro jednorázové projekty; pro produkci Mac urychluje vývoj.

— Editorial Team

Advertisement 728x90

Číst dál