Abgelehnte App-Store-Icons korrigieren: sRGB, Alpha-Kanäle und andere Fallen
Die Icon-Validierung von App Store Connect scheitert ohne hilfreiche Erklärung. Sie laden eine PNG-Datei mit 1024×1024 Pixeln hoch, die in jedem Ihrer Bildeditoren perfekt aussieht, und erhalten eine Variante von „The image could not be processed.“ Kein Hinweis auf den Farbraum, keiner auf den Alpha-Kanal. Nur ein Hindernis zwischen Ihrer Einreichung und dem App Store.
Tatsächlich prüft die Validierung wenige technische Eigenschaften. Scheitert eine davon, erscheint dieselbe allgemeine Fehlermeldung. Die drei häufigsten Ursachen sind ein anderes Farbprofil als sRGB (meist Display P3 aus modernen Designwerkzeugen), ein ausdrücklich verbotener Alpha-Kanal und – seltener – ein indizierter Farbmodus. Letzterer sollte bei einem 2025 erstellten Icon nicht mehr vorkommen, entsteht aber weiterhin bei älteren Optimierungspipelines. Alle drei Probleme lassen sich im Terminal in weniger als einer Minute beheben, sobald Sie wissen, worauf Sie achten müssen.
Was App Store Connect tatsächlich verlangt
Apples Anforderungen an das Icon des App-Store-Eintrags sind präzise: Die Datei muss eine PNG-Datei mit 1024×1024 Pixeln sein. Sie darf keinen Alpha-Kanal enthalten – weder einen teilweise transparenten noch einen vollständig deckenden, sondern überhaupt keine Alpha-Daten. Der Farbraum sollte sRGB sein: Apples Human Interface Guidelines führen auch Display P3 und Gray Gamma 2.2 als unterstützte Farbräume für App-Icons auf, doch nach unserer Erfahrung ist sRGB für das App-Store-Icon die sicherste Wahl. Der Farbmodus sollte RGB TrueColor sein, keine indizierte Palette.
Alpha-Kanäle sind ausgeschlossen, weil App Store Connect selbst den Eckenradius und die Bildkomposition der Icons anwendet. Ein Alpha-Kanal würde diesen Vorgang stören. sRGB ist erforderlich, weil der Store Icons auf zahlreichen Geräten mit unterschiedlichen Anzeigeprofilen darstellt; sRGB ist die gemeinsame Basis. Display P3, Apples Farbraum mit großem Farbumfang, ist eine gängige Exportoption in Werkzeugen wie Figma, Sketch und Affinity Designer. Nach unserer Erfahrung stecken Icons mit P3-Profil hinter vielen der in diesem Leitfaden behandelten Fehler.
Das Problem mit sips diagnostizieren
macOS enthält sips (Scriptable Image Processing System), ein Kommandozeilenwerkzeug, das Bilder ohne zusätzliche Abhängigkeiten prüfen und umwandeln kann. Damit sehen Sie am schnellsten, was Ihre Icon-Datei tatsächlich enthält.
sips --getProperty all icon.png
Die Ausgabe ist eine einfache Liste von Eigenschaften. Für die App-Store-Validierung sind hasAlpha, space und profile relevant. Bei einer problematischen Datei sieht das typischerweise so aus:
hasAlpha: yes
space: RGB
profile: Display P3
Diese Kombination wird abgelehnt. Der Wert space: RGB unterscheidet nicht zwischen allgemeinem RGB und sRGB; das Profilfeld klärt den Unterschied. Ein sauberes, uploadbereites Icon sollte hasAlpha: no und ein Profil wie „sRGB IEC61966-2.1“ oder eine entsprechende Angabe zeigen.
Für eine schnellere Prüfung in einem Build-Skript können Sie auch einzelne Eigenschaften abfragen:
sips --getProperty hasAlpha icon.png
sips --getProperty profile icon.png
Das Problem mit dem Farbprofil
Die häufigste Ursache einer Ablehnung ist ein Display-P3-Farbprofil. Moderne Mac-Displays unterstützen P3. Designwerkzeuge können mit einem Profil für einen großen Farbumfang exportieren, wenn Sie nicht ausdrücklich sRGB wählen. Figma hat die Option „Unmanaged“ im August 2023 entfernt; jede Datei verwendet jetzt sRGB oder Display P3, und Exporte übernehmen das Profil der Datei, sofern Sie es nicht in den Exporteinstellungen ändern. Sketch hat eine ähnliche Einstellung je Dokument. Arbeitet Ihr Designer auf einem MacBook Pro und exportiert ohne Prüfung dieser Einstellung, hat die erzeugte PNG-Datei ein P3-Profil.
Die Lösung ist eine Umwandlung in sRGB, nicht bloß eine neue Kennzeichnung. Der Unterschied ist entscheidend: Die Option sips -s profile bettet ein anderes Profil in die Metadaten ein, ohne die Pixelwerte umzuwandeln. Damit werden als P3 kodierte Pixel fälschlich als sRGB gekennzeichnet. Die richtige Option ist --matchTo; sie führt eine tatsächliche Farbraumkonvertierung durch:
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' icon.png --out icon-srgb.png
Dabei werden die Quellpixel als P3 gelesen, in entsprechende sRGB-Werte umgewandelt und in eine neue Datei geschrieben. Die Farbänderung ist auf den meisten Displays nicht wahrnehmbar, für die Validierung aber entscheidend. Prüfen Sie anschließend das Ergebnis:
sips --getProperty profile icon-srgb.png
Das Profil sollte jetzt „sRGB IEC61966-2.1“ anzeigen.
Den Alpha-Kanal entfernen
sips kann Alpha-Kanäle nicht entfernen. Es kann sie prüfen und einer Datei mit Alpha-Kanal ein Profil hinzufügen. Zum Entfernen der Alpha-Ebene benötigen Sie jedoch ein anderes Werkzeug. ImageMagicks convert erledigt das zuverlässig:
convert icon-srgb.png -background white -alpha remove -alpha off icon-final.png
Die Optionen wirken der Reihe nach. -background white legt die Hintergrundfarbe fest, die transparente Pixel ersetzt. -alpha remove verrechnet das Bild mit diesem Hintergrund und beseitigt die Transparenz. -alpha off entfernt den Alpha-Kanal vollständig aus der Ausgabe. Das Ergebnis ist eine vollständig deckende PNG-Datei, die die App-Store-Validierung akzeptiert.
Enthält Ihr Icon keine tatsächliche Transparenz – alle Pixel sind vollständig deckend –, hat die Datei aber strukturell dennoch einen Alpha-Kanal, können Sie stattdessen pngcrush verwenden. Seine verlustfreie Farbtypreduktion, die seit pngcrush 1.8.0 standardmäßig aktiviert ist, schreibt ein vollständig deckendes RGBA-Bild als RGB neu, ohne Pixelwerte zu verändern:
pngcrush -ow -rem alla icon.png
Der Alpha-Kanal besteht aus Pixeldaten, nicht aus einem Metadaten-Chunk; die Option -rem alla entfernt ihn daher nicht. Sie entfernt alle bekannten ergänzenden Chunks außer tRNS, einschließlich eines eingebetteten Farbprofils. Prüfen Sie das Profil deshalb anschließend erneut. -ow überschreibt die Datei direkt. Das ist schneller und verlustfrei, aber die Reduktion erfolgt nur, wenn keine tatsächliche Transparenz mit einem Hintergrund verrechnet werden muss. Zeigt identify -verbose icon.png | grep Alpha nicht vollständig deckende Pixel, verwenden Sie ImageMagick.
Sonderfall: indizierter Farbmodus
RGB TrueColor speichert jedes Pixel als drei unabhängige Kanalwerte mit 8 Bit (oder 16 Bit). Der indizierte Modus speichert eine Farbpalette und verweist über ganzzahlige Indizes darauf – ein Format für kleine GIFs von 1989, nicht für App-Icons. Die meisten Designwerkzeuge erzeugen keine indizierten PNG-Dateien. Einige Web-Optimierungspipelines, insbesondere ältere mit intensivem Einsatz von pngquant, können TrueColor-Icons jedoch bei der Palettenquantisierung in indizierte Bilder umwandeln.
So prüfen Sie den Farbmodus mit ImageMagick:
identify -verbose icon.png | grep -E "^ Type"
Eine TrueColor-Datei zeigt Type: TrueColor oder Type: TrueColorAlpha. Eine indizierte Datei zeigt Type: Palette. Wenn Sie Palette sehen, wandeln Sie die Datei um:
convert icon.png -type TrueColor icon-truecolor.png
In der Praxis ist dies der seltenste Ablehnungsgrund. Er tritt jedoch regelmäßig in Codebasen auf, deren Icons irgendwann ein Skript zur Optimierung von Bildressourcen durchlaufen haben.
Alle Korrekturen in einer Pipeline
Hat ein Icon alle drei Probleme – P3-Profil, Alpha-Kanal und möglicherweise veraltete Metadaten –, ist eine kurze Befehlskette der einfachste Ansatz: sips für die Farbumwandlung, danach ein ImageMagick-Befehl für alles Weitere:
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' icon.png --out /tmp/icon-srgb.png && convert /tmp/icon-srgb.png -type TrueColor -background white -alpha remove -alpha off -strip icon-final.png
Die abschließende Option -strip entfernt alle eingebetteten Profile, Kommentare und ergänzenden Metadaten-Chunks aus der Ausgabe. Die Pixel sind zu diesem Zeitpunkt bereits in sRGB umgewandelt, sodass eine kleine, bereinigte PNG-Datei entsteht. Möchten Sie die oben empfohlene ausdrückliche sRGB-Kennzeichnung beibehalten, lassen Sie -strip weg. Danach sollte eine abschließende Prüfung mit sips --getProperty all icon-final.png die Werte hasAlpha: no, space: RGB und entweder kein Profil oder ein ausdrücklich eingebettetes sRGB-Profil bestätigen.
Das Problem an der Quelle beheben
Korrekturen über die Kommandozeile funktionieren. Die eigentliche Lösung ist jedoch, das Designwerkzeug gleich für einen korrekten Export zu konfigurieren. Stellen Sie in Figma vor dem Export von Assets das Farbprofil der Datei auf sRGB ein oder wählen Sie sRGB in den Exporteinstellungen. In Sketch klicken Sie auf eine leere Stelle der Arbeitsfläche und stellen das Color Profile im Inspector ein. Öffnen Sie in Affinity Designer File → Document Setup, wählen Sie den Tab Color und stellen Sie sicher, dass sRGB IEC61966-2.1 als Profil gewählt ist.
App-Store-Icons sollten als PNG mit 1024×1024 Pixeln, ohne Skalierung und mit aktivem sRGB-Profil exportiert werden. Lädt Ihre CI/CD-Pipeline über xcrun altool oder direkt über die App Store Connect API hoch, ergänzen Sie vor dem Upload eine Prüfung mit sips --getProperty hasAlpha, die den Build bei vorhandenem Alpha-Kanal fehlschlagen lässt. Die frühzeitige Erkennung spart den API-Aufruf samt Antwortzeit und die manuelle Untersuchung.
Die grundlegende Erkenntnis: App Store Connect validiert genau die von Apple dokumentierten Anforderungen. Das Problem ist, dass die Dokumentation im Upload-Ablauf nicht angezeigt wird und Fehlermeldungen keine konkrete verletzte Bedingung nennen. Sobald Sie die drei geprüften Eigenschaften kennen, wird aus der undurchsichtigen Validierung eine einfache Checkliste.
Weiterführende Beiträge
- Vom SwiftUI-Konzept zum App Store in wenigen Wochen – Zeitplan und Entscheidungen bei der App-Einreichung, einschließlich Provisionierung und Prüfverfahren.
- Eine Prüfungsvorbereitungs-App mit Tausenden Fragen entwickeln – Architekturentscheidungen für eine modulare iOS-App mit Supabase-Backend und Offline-Funktionalität.
- Nebenläufigkeit in Swift 6: Ein praktischer Migrationsleitfaden – SwiftUI-Apps auf die strenge Nebenläufigkeitsprüfung von Swift 6 umstellen, mit echten Compilerwarnungen und ihren Lösungen.