iOS-Signierung vorbereiten: Skript, Nachweis des Gerätebaus, offener Punkt

Phase 10 Schritt 7 lässt sich nicht abschließen, aber alles bis zur Signatur
ist gebaut und belegt: Simulator- und Gerätebau (arm64, Release) laufen
fehlerfrei durch, 146/146 Tests grün, Typecheck sauber.

Die Signatur scheitert allein daran, dass dem Entwicklerteam kein Gerät
bekannt ist -- Apple erzeugt ein Development-Profil nur für konkrete UDIDs.
Kein iPhone angeschlossen, keins je mit diesem Mac gepaart, kein
App-Store-Connect-Schlüssel zum Nachtragen.

Neu: companion-app/scripts/ios-signieren.sh macht Bauen, Synchronisieren,
Signieren und den .ipa-Export zu einem Befehl. Nötig, weil ios/ absichtlich
gitignored ist und jede in Xcode geklickte Signatureinstellung beim nächsten
npx cap add ios wieder verschwinden würde -- die Team-Kennung braucht eine
versionierte Heimat.

Bewusst nicht getan: eine unsignierte .ipa als Platzhalter einchecken. Sie
wäre nicht installierbar und läge als Binärdatei dauerhaft in der Historie.
This commit is contained in:
Paul Nothaft
2026-08-29 11:17:46 +02:00
parent 44522db34e
commit da85a2c0d6
4 changed files with 148 additions and 2 deletions
+14 -1
View File
@@ -423,6 +423,13 @@ nicht ein Riesencommit.
> echte Daten. `CapacitorHttp` umgeht die CORS-Beschränkung der WebView.
> Offen bleibt allein das Signieren aufs eigene Gerät — das braucht das
> angeschlossene iPhone und die Apple-ID des Besitzers.
>
> **2026-08-29:** Schritt 7 vorbereitet, aber nicht abschließbar. Der Gerätebau
> (arm64, Release) läuft fehlerfrei durch, das Signieren scheitert
> ausschließlich daran, dass dem Team `RMACS9VLS4` **kein Gerät** bekannt ist:
> Apple erzeugt ein Development-Profil nur für konkrete UDIDs. Der ganze
> Ablauf steckt jetzt in `companion-app/scripts/ios-signieren.sh` und läuft
> bis genau zu diesem Punkt. Details in `AGENTS.md` Abschnitt AI.
**Ziel:** Die App läuft auf dem iPhone. Zwei Stufen — erst PWA (sofort nutzbar), dann Capacitor
(Keychain + QR-Scan).
@@ -449,7 +456,13 @@ nicht ein Riesencommit.
(Offline-JS-QR-Bibliothek, keine Netzabfrage) als QR anzeigt. Inhalt des QR: JSON
`{"url": "...", "token": "..."}`. Wenn das zusammen > 1 Tag Aufwand wird: weglassen —
manuelles Einfügen ist die beschlossene, ausreichende Lösung.
7. **iOS-Sideload:** `npx cap open ios`, in Xcode Signing mit eigener Apple-ID, aufs Gerät bauen.
7. **iOS-Sideload:** statt Xcode von Hand jetzt `bash companion-app/scripts/ios-signieren.sh`
(baut Webbündel, synchronisiert die Hülle, archiviert signiert, exportiert die `.ipa`).
Die Team-Kennung steht im Skript, weil `ios/` gitignored ist und jede in Xcode geklickte
Einstellung beim nächsten `npx cap add ios` verschwinden würde.
⚠️ **Einmalige Voraussetzung, die kein Skript herstellen kann:** das iPhone muss dem Team
bekannt sein — Kabel anschließen und vertrauen, oder UDID unter developer.apple.com
eintragen. Sonst: „Your team has no devices from which to generate a provisioning profile".
⚠️ Entscheidungspunkt für den Besitzer: mit kostenlosem Apple-Konto läuft die Signatur nach
**7 Tagen** ab (App neu aufspielen); ein bezahltes Entwicklerkonto (99 €/Jahr) macht 1 Jahr.
Bei 7-Tage-Schmerz ist die PWA-Stufe die Alltagslösung, Capacitor das Extra für Keychain/QR.