diff --git a/AGENTS.md b/AGENTS.md index 15f55d8..37cc736 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -12489,3 +12489,67 @@ dieselben Werte**. Zusammenfassen würde es schlechter machen. Die Typografie selbst ist längst deckungsgleich (13px, `.01em`, `text-transform:none`, `--fg3`, `line-height 1.3`). Geändert wurde nur eine wirkungslose Angabe: `.dm-fussnote` trug `font-weight: 300`, obwohl es „Audi Type" nur als 400 gibt. + +## DH. Die ausgelieferte .ipa registriert zwei eigene Plugins nicht (2026-09-06) + +Gemessen am veroeffentlichten Artefakt, nicht am Projekt - die Regel aus +Abschnitt AK. Entpackt aus `companion-app/auslieferung/App.ipa` (Stand +`2026.9.4.17`, aus Commit `9652a43`): + +``` +Payload/App.app/capacitor.config.json -> packageClassList: 6 Klassen + SecureStorage, AppPlugin, FilesystemPlugin, + PreferencesPlugin, SharePlugin, CapacitorUpdaterPlugin + + BelegZwischenablagePlugin FEHLT (6 Treffer im Binaerprogramm) + KalenderTerminPlugin FEHLT (6 Treffer im Binaerprogramm) +``` + +Beide Klassen sind einkompiliert und trotzdem tot: Capacitor 8 registriert +ausschliesslich, was in dieser Liste steht (`registerPlugins()` in +`CapacitorBridge.swift`, Abschnitt CM). Auf dem Geraet heisst das bis heute - +die beiden Meldungen des Eigentuemers vom 04.09. sind also nach wie vor +zutreffend: + +* **Zwischenablage**: "die App muss erst aktualisiert werden"; + `Capacitor.isPluginAvailable()` ist falsch. +* **Kalendereintrag**: `UNIMPLEMENTED`, der Rueckfall auf Datei plus + Teilen-Blatt greift - und der kann den Kalender prinzipiell nie erreichen + (Abschnitt BS). + +**Das Repo ist vollstaendig, das Artefakt nicht.** Der Fix kam in `a99ae43`, +also genau EINEN Commit nach `9652a43` - dem Commit, der die `.ipa` zuletzt +erneuert hat. Seither gab es keinen Xcode-Lauf. Er steht an zwei Stellen: + +* `ios-teilen-einrichten.mjs` traegt die Klassen nach jedem `cap sync` in + `ios/App/App/capacitor.config.json` ein. +* `ios-signieren.sh` (Zeilen 344-352) liest die Namen aus den + `@objc(...)`-Angaben der eigenen `native/*.swift` und **bricht ab**, wenn + eine davon in der fertigen `.ipa` fehlt. Die Pruefliste kann damit nicht von + den tatsaechlichen Plugins abdriften. + +### Was der naechste Xcode-Lauf mitbringt, und was danach zu pruefen ist + +Die `.ipa` springt von `2026.9.4.17` auf den aktuellen Stand. **Die +Oberflaeche ist dabei nicht das Thema** - das OTA-Buendel traegt sie laengst; +am 06.09. nachgerechnet: `manifest.json` und `bundle.json` beide +`2026.9.6.4`, 378.713 Bytes, sha256 `1d9d562b...` gegen die tatsaechlichen +Bytes bestaetigt. Es geht ausschliesslich um den nativen Teil. + +`ios-signieren.sh` ruft `ios-luftweg.sh` selbst auf (Zeile 376) - Manifest +und Cache-Brecher werden also mit erneuert, von Hand ist daran nichts +nachzuziehen (die Falle aus Abschnitt CD). + +Am **fertigen Buendel** zu pruefen, nicht am Projekt: + +| Punkt | | +|---|---| +| `packageClassList` | enthaelt beide eigenen Klassen | +| `CFBundleVersion` in App **und** Erweiterung | beide vorhanden - der Installationsblocker aus Abschnitt CD | +| `CFBundleShortVersionString` | in beiden gleich | +| App-Gruppe `group.app.datametric360` | in beiden Bereitstellungsprofilen | +| Zwischenablage und Kalender | **auf dem Geraet ausprobieren** - erst das beweist die Registrierung | + +Die ersten vier prueft das Skript selbst und bricht sonst ab. Der fuenfte Punkt +bleibt Handarbeit: dass eine Klasse in der Liste steht, heisst noch nicht, dass +die Bruecke sie zur Laufzeit findet.