Tankstellen-Nadel, doppeltes Tanken-Symbol, Tankstellenname, packageClassList
Fuenf Meldungen des Eigentuemers, vier davon behoben: 1. Tankstellen-Nadel war bei 32 px ein dunkler Fleck (poi zeichnet nur einen Ring). Gefuellter Punkt in currentColor zwischen Silhouette und Symbol - die Geometrie stand im Pfad. Rot wurde ausdruecklich abgelehnt, die Umsetzung aendert keine Farbe. 2. Tanken-Symbol im Standort-Blatt wurde gefuellt UND umrandet, weil das CI-Symbol zusaetzlich stroke-Attribute mitbekam. Jetzt ueber ciSVG wie das Parkplatz-Symbol daneben; in der App dafuer imRaster an SymbolTanken (der 0,84-Faktor gilt nur in der Reiterleiste). 3. Tankstellenname: der Bestand hat zwei Bauformen - aeltere Belege tragen den Betreiber in station_name und die Anschrift daneben. Neu tankstelleTeile() liest beide Felder, entfernt Firmierungen, kuerzt Strassen und trennt die Hausnummer auch ohne Leerzeichen. Uebersicht: Marke, Strasse, Ort. Einzelbeleg: zwei Zeilen. adresseTeilen() hat keinen Aufrufer mehr und ist entfernt. 4. Zwischenablage und Kalendereintrag hatten denselben Grund: Capacitor 8 registriert nur, was in packageClassList steht, und cap sync traegt dort ausschliesslich npm-Pakete ein. Beide app-eigenen Plugins lagen im Programm und wurden nie registriert. ios-teilen-einrichten.mjs traegt sie jetzt nach, ios-signieren.sh bricht ab, wenn sie im fertigen .ipa fehlen. 5. Geteilter Beleg nur mit Datum und Uhrzeit bleibt offen - der Weg nutzt denselben belegLesen()-Pfad wie eine gewaehlte Datei, es fehlt der konkrete Beleg oder die Protokollzeile. tsc sauber, 246 Tests, vite build sauber, Panel als Modul geparst, audi_ha_test auf 2026.9.4.20 ohne Traceback. Panel und App liefern fuer die Tankstelle byteweise dasselbe.
This commit is contained in:
@@ -97,6 +97,44 @@ for (const datei of PLUGIN_DATEIEN) {
|
||||
}
|
||||
melden(`Quellen nach ios/App/${ZIEL_NAME}/ kopiert`)
|
||||
|
||||
/* ------------------------------------------ Eigene Plugins registrieren */
|
||||
|
||||
/* Capacitor 8 sucht Plugin-Klassen NICHT im Programm. `registerPlugins()`
|
||||
in CapacitorBridge.swift liest ausschliesslich `packageClassList` aus der
|
||||
capacitor.config.json des Buendels und loest jeden Eintrag ueber
|
||||
NSClassFromString auf - was dort nicht steht, existiert fuer die Bruecke
|
||||
nicht, auch wenn die Klasse einkompiliert ist.
|
||||
|
||||
Genau daran sind beide eigenen Plugins gescheitert: `cap sync` erzeugt die
|
||||
Liste aus den installierten npm-Paketen, und unsere Plugins sind keine.
|
||||
In der ausgelieferten .ipa vom 04.09.2026 standen dort nur die sechs
|
||||
Fremd-Plugins - die Zwischenablage meldete deshalb 'diese App-Fassung
|
||||
enthaelt den nativen Teil noch nicht' (Nutzerbefund), obwohl
|
||||
BelegZwischenablagePlugin nachweislich im Programm lag, und der
|
||||
Kalendertermin fiel still auf das Teilen-Blatt zurueck, das den Kalender
|
||||
gar nicht erreichen kann (siehe AGENTS.md Abschnitt BS).
|
||||
|
||||
Die Klassennamen kommen aus den Swift-Dateien selbst (@objc(...)), damit
|
||||
sie nicht an zwei Stellen gepflegt werden muessen. */
|
||||
const konfigPfad = join(iosApp, "App", "capacitor.config.json")
|
||||
if (!existsSync(konfigPfad)) {
|
||||
abbruch(`${konfigPfad} nicht gefunden - erst 'npx cap sync ios' laufen lassen.`)
|
||||
}
|
||||
const eigeneKlassen = PLUGIN_DATEIEN.map((datei) => {
|
||||
const quelle = readFileSync(join(APP, "native", datei), "utf8")
|
||||
const treffer = /@objc\(([A-Za-z0-9_]+)\)/.exec(quelle)
|
||||
if (!treffer) abbruch(`${datei}: kein @objc(...)-Name gefunden`)
|
||||
return treffer[1]
|
||||
})
|
||||
const konfig = JSON.parse(readFileSync(konfigPfad, "utf8"))
|
||||
konfig.packageClassList = konfig.packageClassList ?? []
|
||||
const fehlten = eigeneKlassen.filter((k) => !konfig.packageClassList.includes(k))
|
||||
if (fehlten.length) {
|
||||
konfig.packageClassList.push(...fehlten)
|
||||
writeFileSync(konfigPfad, JSON.stringify(konfig, null, 2) + String.fromCharCode(10))
|
||||
}
|
||||
melden(`packageClassList: ${eigeneKlassen.join(", ")} eingetragen`)
|
||||
|
||||
/* ------------------------------------------------------------- URL-Schema */
|
||||
|
||||
/* Ohne dieses Schema kann die Erweiterung die App nicht holen - sie legt den
|
||||
|
||||
Reference in New Issue
Block a user