AGENTS.md DH: die ausgelieferte .ipa registriert zwei eigene Plugins nicht

Am veroeffentlichten Artefakt gemessen, nicht am Projekt: in App.ipa
(2026.9.4.17) stehen in packageClassList nur die sechs Fremd-Plugins.
BelegZwischenablagePlugin und KalenderTerminPlugin sind einkompiliert - je
sechs Treffer im Binaerprogramm - und trotzdem tot, weil Capacitor 8
ausschliesslich diese Liste liest.

Damit sind die beiden Meldungen vom 04.09. weiterhin zutreffend: die
Zwischenablage meldet, die App muesse erst aktualisiert werden, und der
Kalendereintrag faellt auf das Teilen-Blatt zurueck, das den Kalender nie
erreichen kann.

Das Repo ist vollstaendig: der Fix kam in a99ae43, genau einen Commit nach
9652a43, der die .ipa zuletzt erneuert hat. Es fehlt allein der Xcode-Lauf.
Der Abschnitt nennt die Pruefpunkte fuer danach - vier prueft das Skript
selbst, der fuenfte bleibt Handarbeit auf dem Geraet.
This commit is contained in:
2026-09-06 22:03:44 +02:00
parent 6272200730
commit f53469f197
+64
View File
@@ -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.