From 5caa85ce3e812a9f83aace621df28797a95f3abe Mon Sep 17 00:00:00 2001 From: Nick Szaunig Date: Fri, 4 Sep 2026 09:26:37 +0200 Subject: [PATCH] feat: Apple-Touch-Icon fuer iOS "Zum Home-Bildschirm hinzufuegen" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit app/icon.svg deckt moderne Chrome/Android-Browser-Tabs und den manifest.ts-Eintrag ab, aber iOS/iPadOS liest fuer "Zum Home-Bildschirm hinzufuegen" ausschliesslich ein dediziertes Apple-Touch-Icon und akzeptiert dafuer kein SVG (nur PNG/JPG) — ohne diese Datei waere stattdessen ein Screenshot der Seite als Icon verwendet worden. Rendert dieselbe Grafik wie icon.svg per next/og ImageResponse als 180x180-PNG. Per pnpm build + manuellem HTTP-Abruf/Sichtpruefung verifiziert, dass Satori die SVG-Elemente korrekt rendert. Social-Media-Icons (TikTok/YouTube/Instagram, site-footer.tsx) per Code-Review geprueft: einfache, universell unterstuetzte SVG-Primitive (rect/circle/path), werden nur gerendert wenn eine URL konfiguriert ist — kein Fix noetig. Co-Authored-By: Claude Sonnet 5 --- src/app/apple-icon.tsx | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/app/apple-icon.tsx diff --git a/src/app/apple-icon.tsx b/src/app/apple-icon.tsx new file mode 100644 index 0000000..4359bd5 --- /dev/null +++ b/src/app/apple-icon.tsx @@ -0,0 +1,41 @@ +import { ImageResponse } from "next/og"; + +export const size = { width: 180, height: 180 }; +export const contentType = "image/png"; + +/** + * Apple-Touch-Icon fuer "Zum Home-Bildschirm hinzufuegen" auf iOS/iPadOS — + * Apple akzeptiert dafuer ausschliesslich PNG/JPG, kein SVG (anders als + * app/icon.svg, das moderne Chrome/Android direkt lesen, siehe + * app/manifest.ts). Ohne diese Datei nimmt iOS ersatzweise einen + * Screenshot der Seite als Icon — unbrandet und meist unbrauchbar. Gleiche + * Grafik wie app/icon.svg, per ImageResponse als Raster gerendert. + */ +export default function AppleIcon() { + return new ImageResponse( + ( + + + + + + + + + + + + + + + + + + + + + + ), + { ...size } + ); +}