From 9e9ca9ca28f09106faada76a43a48524b089f92c Mon Sep 17 00:00:00 2001 From: Tobi G Date: Fri, 4 Sep 2026 13:49:40 +0200 Subject: [PATCH] Audit: Wisch-Zeile und Auswahlliste der App nachgezogen Gleichlauf, Funktion und Fehler geprueft. Sauber: 28/28 Dienste ueber const/Registrierung/services.yaml/Klarnamen, 27/27 Sensorrollen, Routen deckungsgleich, 47 Panel-Seiten live ohne einen Konsolenfehler, App ebenso, Fahrzeugstatus textgleich, Bestand ohne Befund ausser den drei bekannten Altbelegen mit odometer_km als Zeichenkette. Zwei echte Befunde, beide in der App und beide dort, wo ein juengerer Zwilling die Korrekturen des aelteren nie bekommen hat: WischLoeschen (Raeder-Archiv) liess den roten Loeschknopf dauerhaft sichtbar unter der Zeile stehen - genau der Haarlinien-Fehler, den das Panel am 16.08.2026 mit visibility:hidden behoben hat - und malte den Zeileninhalt mit dem durchscheinenden --tile auf eine Kachel, wodurch im Nachtmodus der Streifen heller wird und das Rot durchscheint (Regel aus Abschnitt AP). Beides behoben und im Nachtmodus nachgemessen. .dm-auswahl option stand auf --tile; die aufgeklappte Liste eines ` malt +der Browser selbst, ausserhalb der Seite - ein durchscheinender Wert laesst +dort den hellen Untergrund des Systems durch. Im Panel steht aus genau diesem +Grund seit dem 16.08.2026 `--canvas` (`.feld select option`, mit +ausdruecklichem Kommentar). Jetzt auch in der App. + +**Geprueft und NICHT geaendert:** `.dm-standort-leer` malt ebenfalls `--tile`, +aber `.standort-leer` im Panel tut dasselbe - beide gleich, also kein +Gleichlauf-Befund. Eine Aenderung waere hier eine Gestaltungsfrage fuer beide +Seiten, keine Korrektur einer Abweichung. + +### Zwischenablage und Teilen-Erweiterung: der Stand vor dem naechsten Xcode-Lauf + +Die **ausgelieferte** `App.ipa` (Stand `2026.9.4.5`, Commit `d819f2e`) +entpackt und gelesen. Alles daran ist richtig - bis auf den einen Punkt, der +sie unbrauchbar macht: + +| | | +|---|---| +| Erweiterung `DataMetric360Share.appex` | echtes Programm, 110.320 Bytes | +| `BelegZwischenablagePlugin` / `KalenderTerminPlugin` | beide im App-Programm, samt `pdfHolen` und `terminAnlegen` | +| App-Gruppe `group.app.datametric360` | in **beiden** Bereitstellungsprofilen | +| Standort- und beide Kalender-Schluessel | vorhanden | +| URL-Schema `datametric360` | vorhanden | +| Aktivierungsregel | Anhang oder Datei, je einer - das Teilen-Blatt zeigt die App also an | +| **`CFBundleVersion` der Erweiterung** | **fehlt** - genau der Grund, aus dem iOS die Installation ablehnt (Abschnitt CD) | +| `NSCameraUsageDescription` | fehlt - der Scanner kam erst danach | + +Beides ist im Skript laengst behoben und wirkt beim naechsten Lauf: +`ios-signieren.sh` schreibt eine echte Build-Nummer in **beide** Buendel, +**bricht ab**, wenn einem davon eine brauchbare fehlt, und setzt den +Kamera-Schluessel. + +Der Rest der Verdrahtung ist stimmig gelesen: beide Swift-Erweiterungen +erfuellen `CAPBridgedPlugin` mit `identifier`/`jsName`/`pluginMethods`, die +Namen decken sich mit `registerPlugin("BelegZwischenablage")` bzw. +`("KalenderTermin")` und den Methodennamen auf der TS-Seite, und +`ios-teilen-einrichten.mjs` kopiert beide Dateien und haengt sie an die +Sources-Phase des App-Ziels (mit Idempotenz-Pruefung), setzt die Entitlements +auf beiden Zielen. + +**Was das nicht heisst:** dass es auf dem Geraet laeuft. Swift wird hier nicht +uebersetzt, und die Lehre aus Abschnitt AK gilt unveraendert - vier von fuenf +Fehlern der nativen Huelle haben einen erfolgreichen Archivlauf erzeugt und +sind erst am fertigen `.ipa` aufgefallen. Nach dem naechsten Lauf gehoert +deshalb geprueft: `CFBundleVersion` in beiden Buendeln, `NSCameraUsageDescription` +in der App, beide Plugin-Namen im Programm. diff --git a/companion-app/src/screens/bausteine.tsx b/companion-app/src/screens/bausteine.tsx index f111e99..f385794 100644 --- a/companion-app/src/screens/bausteine.tsx +++ b/companion-app/src/screens/bausteine.tsx @@ -399,8 +399,15 @@ export function WischLoeschen({ setzeZug(null) } + // Sichtbar erst, wenn wirklich gewischt wird. Ohne das liegt der rote + // Knopf dauerhaft unter der Zeile - und weil Zeilenhoehen gebrochen sind, + // blitzt er als Haarlinie um jede Zeile durch. Genau dieser Fehler war im + // Panel schon einmal da (16.08.2026) und ist dort mit derselben + // visibility-Regel behoben; SwipeRow im Design-System fuehrt sie ebenfalls. + const zeigt = offen || zug !== null + return ( -
+