Ratgeber

Eine iOS-App im App Store veröffentlichen, ohne einen Mac zu besitzen

Sie können eine iOS-App veröffentlichen, ohne einen Mac zu besitzen. Ohne macOS geht es nicht. Bauen und Signieren der App braucht Xcode. Fast alles andere passiert im Browser oder auf Ihrem iPhone. Ein gemieteter Mac oder ein CI-Runner übernimmt den einen Schritt, der macOS braucht.

Was Apple im Oktober 2026 verlangt

  • Eine kostenpflichtige Mitgliedschaft. Das Apple Developer Program kostet 99 USD pro Mitgliedsjahr, laut Apples Seite zur Registrierung. Gemeinnützige Organisationen, Schulen und Behörden können eine Befreiung von der Gebühr beantragen.
  • Ein aktuelles Xcode. Seit dem 28. April 2026 müssen Uploads mit Xcode 26 oder neuer und einem iOS 26 SDK gebaut sein. Das steht auf Apples Seite zu kommenden Anforderungen.
  • Ein aktuelles macOS. Xcode 26.6 braucht macOS Tahoe 26.2 oder neuer, laut Apples Systemanforderungen für Xcode.

Der Build passiert also auf einem Mac. Die Frage ist nur, wessen Mac.

Was Sie unter Windows oder Linux erledigen können

  • Sich im Web oder in der App Apple Developer für das Programm registrieren.
  • Den App-Eintrag in App Store Connect anlegen.
  • Einen API-Key für App Store Connect erstellen (Schritte unten).
  • Tester hinzufügen, den Store-Eintrag schreiben und zur Prüfung einreichen.
  • Einen fertigen Build hochladen. Apples Kommandozeilen-Tool Transporter unterstützt Windows 11 und Red Hat Enterprise Linux. Auf diesen Systemen braucht es die AppStoreInfo.plist, die Xcode beim Export schreibt. Der Upload kann also auf Ihrem PC laufen, aber die Datei kommt trotzdem von einem Mac.

Zuerst einen API-Key erstellen

Mit einem API-Key sprechen Tools auf dem Mac mit Apple. Ein Passwort oder eine Abfrage für die Zwei-Faktor-Authentifizierung ist nicht nötig. Apples Schritte für einen Team-Key:

  • Öffnen Sie in App Store Connect Users and Access, dann Integrations.
  • Wählen Sie App Store Connect API, dann den Tab Team Keys.
  • Klicken Sie auf Generate API Key, vergeben Sie einen Namen, wählen Sie eine Rolle und erstellen Sie den Key.
  • Laden Sie die .p8-Datei herunter. Apple erlaubt den Download nur einmal.

Für Team-Keys brauchen Sie die Rolle Admin. Notieren Sie die Key ID und die Issuer ID von dieser Seite. Halten Sie die .p8-Datei aus Ihrem Repository heraus.

Signieren ohne eigenen Schlüsselbund

Zum Signieren brauchen Sie ein Distributionszertifikat und ein Provisioning-Profil. Auf einem gemieteten Mac kommen Sie auf zwei Wegen daran.

Automatische Signierung. xcodebuild akzeptiert den API-Key. Mit dem Flag allowProvisioningUpdates legt es laut Hilfetext Profile, App-IDs und Zertifikate für automatisch signierte Targets an und aktualisiert sie. Apple bietet außerdem in der Cloud verwaltete Distributionszertifikate an. Die verwahrt Apple, also liegt kein privater Schlüssel auf der gemieteten Maschine.

Manuelle Signierung. Erstellen Sie mit der Schlüsselbundverwaltung auf dem gemieteten Mac eine Zertifikatsignierungsanforderung. Dann erzeugen Sie in Certificates, Identifiers and Profiles ein Apple-Distribution-Zertifikat und ein App-Store-Profil. Löschen Sie den Schlüsselbund, bevor Sie den Mac zurückgeben.

Bauen und hochladen vom Cloud-Mac

Archivieren Sie die App. Ersetzen Sie die Namen, die Key ID und die Issuer ID durch Ihre.

xcodebuild -workspace MyApp.xcworkspace -scheme MyApp \
  -configuration Release -destination 'generic/platform=iOS' \
  -archivePath build/MyApp.xcarchive archive \
  -allowProvisioningUpdates \
  -authenticationKeyPath ~/private_keys/AuthKey_ABC123DEF4.p8 \
  -authenticationKeyID ABC123DEF4 \
  -authenticationKeyIssuerID YOUR-ISSUER-ID

Dann exportieren Sie es. Mit destination upload schickt der Export den Build direkt an App Store Connect. Der Methodenname app-store-connect hat den älteren Wert app-store abgelöst.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>method</key><string>app-store-connect</string>
  <key>destination</key><string>upload</string>
  <key>signingStyle</key><string>automatic</string>
  <key>teamID</key><string>YOURTEAMID</string>
</dict>
</plist>
xcodebuild -exportArchive -archivePath build/MyApp.xcarchive \
  -exportOptionsPlist ExportOptions.plist -exportPath build/export \
  -allowProvisioningUpdates \
  -authenticationKeyPath ~/private_keys/AuthKey_ABC123DEF4.p8 \
  -authenticationKeyID ABC123DEF4 \
  -authenticationKeyIssuerID YOUR-ISSUER-ID

Lieber ein separater Upload-Schritt? Setzen Sie destination auf export und nutzen Sie dann altool. Es findet die Key-Datei in ~/private_keys anhand ihrer ID.

xcrun altool --upload-package build/export/MyApp.ipa \
  --api-key ABC123DEF4 --api-issuer YOUR-ISSUER-ID

Mit fastlane geht dasselbe über zwei Actions aus der Doku: app_store_connect_api_key lädt den Key, und pilot lädt zu TestFlight hoch.

Wir haben jedes Flag oben mit der Hilfeausgabe von xcodebuild und altool in Xcode 26.6 abgeglichen. Einen signierten Upload mit genau diesen Zeilen haben wir nicht ausgeführt. Die Details hängen vom Signing-Setup Ihres Projekts ab.

Versions- und Build-Nummern

Apple ordnet jeden Upload über Bundle-ID und Versionsnummer Ihrer App zu. Der Build-String kennzeichnet jeden Build und muss daher eindeutig sein. Erhöhen Sie die Build-Nummer bei jedem Upload. In der CI eignet sich die Laufnummer gut dafür. Die Versionsnummer behalten Sie für das, was Nutzer im Store sehen.

TestFlight auf Ihrem iPhone

Apple verarbeitet jeden Upload und schickt Ihnen eine E-Mail, wenn er bereit ist. Der Rest passiert in App Store Connect und auf dem Handy. Laut Apples Überblick zu TestFlight:

  • Bis zu 100 interne Tester aus Ihrem Team in App Store Connect.
  • Bis zu 10.000 externe Tester per E-Mail oder öffentlichem Link.
  • Der erste Build für externe Tester geht in die App-Prüfung.
  • Jeder Build kann bis zu 90 Tage lang getestet werden.

Tester installieren die kostenlose App TestFlight und nehmen die Einladung an. Für nichts davon brauchen Sie einen Mac. Screenshots für den Store machen Sie bequem im Simulator auf dem gemieteten Mac.

Wer dafür keinen Mac mieten sollte

Mit Expo erledigen EAS Build und EAS Submit Build und Upload in der Cloud von Expo. Wenn Sie zweimal im Jahr veröffentlichen, kostet ein gehosteter CI-Runner ein paar Cent pro Build. Das Setup dafür steht in iOS CI/CD mit GitHub Actions. MacRun bietet keine verwaltete Codesignierung an. Ihre Zertifikate und Schlüssel gehören Ihnen.

Ein gemieteter Mac passt, wenn Sie oft veröffentlichen. Er passt auch, wenn Sie den Bildschirm von Xcode brauchen, um die Signierung von Hand zu reparieren. Unsere M6-Tarife stehen auf der Preisseite.

Häufige Fragen

Kann man eine iOS-App ohne Mac veröffentlichen?

+

Ja, wenn Sie irgendwo Zugriff auf macOS haben. Build und Signierung brauchen Xcode auf einem Mac. Das kann ein gemieteter Mac oder ein Cloud-Mac sein. Registrierung, App Store Connect, TestFlight und die Prüfung funktionieren alle im Browser oder auf einem iPhone.

Kann ich eine .ipa von Windows aus zu App Store Connect hochladen?

+

Apples Kommandozeilen-Tool Transporter unterstützt Windows 11 und Red Hat Enterprise Linux. Auf diesen Systemen braucht es die AppStoreInfo.plist, die Xcode mit dem Build exportiert. Die .ipa muss also trotzdem auf einem Mac gebaut werden.

Welches Xcode brauche ich 2026 für den Upload?

+

Seit dem 28. April 2026 verlangt Apple, dass Apps für App Store Connect mit Xcode 26 oder neuer und einem iOS 26 SDK gebaut werden. Xcode 26.6 läuft auf macOS Tahoe 26.2 oder neuer.

Was kostet die Veröffentlichung im App Store?

+

Das Apple Developer Program kostet 99 USD pro Mitgliedsjahr. Für berechtigte gemeinnützige Organisationen, Schulen und Behörden gibt es Gebührenbefreiungen. Die Mac-Zeit für den Build kommt dazu, von ein paar Cent pro Build bei gehosteter CI bis zur monatlichen Miete.

Passende Ratgeber