# ITMS-90717: „Invalid large app icon” javítása Expóval

> ITMS-90717: a build 1024 x 1024-es ikonjában átlátszóság vagy alfacsatorna maradt. Exportáld átlátszatlanul, ellenőrizd sipsszel, és buildelj újra.

Eredeti oldal: [ITMS-90717: „Invalid large app icon” javítása Expóval](https://devoria.fr/hu/blog/itms-90717-invalid-large-app-icon-expo)
Szerző: [Mehdi Azizi](https://devoria.fr/hu/mehdi-azizi)
Megjelenés: 2026-11-04
A tartalom utolsó frissítése: 2026-11-04


ITMS-90717 az Apple automatikus ellenőrzése a buildeden. Azt jelzi, hogy az app nagy ikonja, az az 1024 x 1024 pixeles, amit az App Store mutat, átlátszóságot vagy alfacsatornát tartalmaz. **A javítás: egy négyzetes, átlátszatlan ikon, alfacsatorna nélkül exportálva, aztán egy új build.**

Expóval ritkán a PNG fájlod a bűnös: a prebuild eleve fehér háttérre teszi. Elolvastam ezt a kódot az SDK 57-ben, és ellenőriztem a Solys, a TradaZen és a Nolera ikonjait. Ilyenkor a hiba leggyakrabban egy verziókezelt `ios` mappából vagy egy Icon Composer fájlból jön. Megmutatom, hogyan találd meg, melyikből, és hogyan javítsd.

## Mit jelent az ITMS-90717 hiba?

Az üzenet címe „ITMS-90717: Invalid large app icon”. Azt írja, hogy az app képkatalógusában lévő nagy ikon „can't be transparent or contain an alpha channel”: nem lehet átlátszó, és nem tartalmazhat alfacsatornát. A régebbi üzenetek „Invalid App Store Icon”-ról beszéltek. Ugyanaz a szabály.

Ez a nagy ikon az App Store ikonja. Az [Xcode ikonokról szóló dokumentációja](https://developer.apple.com/documentation/xcode/configuring-your-app-icon) elmagyarázza: egy App Store-on terjesztett appnak a képkatalógusában kell megadnia az 1024 pontos ikonját.

Az alfacsatorna a PNG negyedik rétege a piros, a zöld és a kék mellett. Ez tárolja minden pixel átlátszóságát. **Egy ikon tűnhet teljesen kitöltöttnek, és mégis megtarthatja ezt a csatornát**: ez a csapda, ami minden fórumszálban előjön.

A többi ITMS hibához hasonlóan ez sem egy reviewer elutasítása. Az Apple a feltöltéskor elemezte a binárist. A feltöltő eszköztől függően a hiba validálási hibaként jelenik meg, például 409-es kóddal.

## Ellenőrizd az ikonodat sipsszel

Macen a `sips` alapból telepítve van. Egy sor elég:

```bash
sips -g hasAlpha assets/icon.png
```

Azt szeretnéd látni, hogy `hasAlpha: no`. 2026. október 15-én lefuttattam ezt a parancsot a Solys, a TradaZen és a Nolera app.json fájljaiban megadott ikonokon: mindegyik `no` választ ad, 1024 x 1024-ben.

Készítettem egy tesztikont is: egy teljesen átlátszatlan kék négyzetet, de alfacsatornával mentve. A `sips` válasza `yes`. **Egyetlen pixel sem átlátszó, a csatorna mégis ott van.** Ezért írja oly sok fejlesztő ez alá az üzenet alá, hogy „az ikonomban semmi átlátszóság nincs”.

A Preview-ban az inspektor (Tools, Show Inspector) szintén listázza a kép tulajdonságait, köztük az alfacsatornát.

## Javítás: exportáld az ikont alfacsatorna nélkül

Három módszer, a legegyszerűbbtől a legpontosabbig.

**1. Preview.** File, Export, PNG formátum, aztán vedd ki a pipát az Alpha jelölőnégyzetből. Az exportált fájlnak már nincs alfacsatornája.

**2. sips, semmit nem kell telepíteni.** A `sips` nem távolítja el egy PNG alfacsatornáját. Egy JPEG-en kell átvinni, annak nincs ilyen:

```bash
sips -s format jpeg -s formatOptions 100 icon.png --out icon.jpg
sips -s format png icon.jpg --out icon-opaque.png
sips -g hasAlpha icon-opaque.png
```

Az átlátszó sarkú tesztikonomon a sarkok fehérek lettek, az utolsó sor pedig `no` választ ad. A JPEG-en át vezető út kicsit tömöríti a képet, még maximális minőségen is: nézd meg alaposan az eredményt.

**3. ImageMagick.** Ha telepítve van, te választod meg a háttérszínt:

```bash
magick icon.png -background white -alpha remove -alpha off icon-opaque.png
```

Az [ImageMagick dokumentációja](https://imagemagick.org/command-line-options/#alpha) szerint a `-alpha remove` a háttérszínre teszi a képet, a `-alpha off` pedig kikapcsolja a csatornát.

Mindhárom módszer egyszínű kitöltéssel pótolja az átlátszóságot. Ha a logód átlátszó háttéren lebegett, a legtisztább megoldás, ha előveszed a forrásfájlt, és rajzolsz bele egy igazi hátteret. Az Expo ezt kéri az [app ikonról szóló útmutatójában](https://docs.expo.dev/develop/user-interface/splash-screen-and-app-icon/): az ikonnak ki kell töltenie az egész négyzetet, lekerekített sarkok és átlátszó pixelek nélkül. A maszkot az iOS maga alkalmazza.

## Honnan veszi az Expo az ikonodat, és mit csinál vele

Az Expo először az `ios.icon` mezőt olvassa, aztán a konfigurációd gyökerében lévő `icon` mezőt. Az [Expo konfigurációs referenciája](https://docs.expo.dev/versions/latest/config/app/) szerint az `ios.icon` háromféle formát fogad el: egy PNG-t, egy `light`, `dark` és `tinted` változatokat tartalmazó objektumot, vagy egy Icon Composerrel készült `.icon` mappát.

Az alábbi táblázat abból a kódból származik, amely a prebuild során az iOS ikont generálja: `@expo/prebuild-config` 57.0.16 (SDK 57), 2026. október 15-én olvastam:

| Amit megadsz             | Amit a prebuild csinál     | ITMS-90717 kockázat |
| ------------------------ | -------------------------- | ------------------- |
| `icon` PNG-ként          | Fehér háttérre lapítja     | Alacsony            |
| `ios.icon.light`         | Fehér háttérre lapítja     | Alacsony            |
| `ios.icon.tinted`        | Fehér háttérre lapítja     | Alacsony            |
| `ios.icon.dark`          | Megtartja az átlátszóságot | Az Apple így kéri   |
| `ios.icon` `.icon`-ként  | Változatlanul másolja      | Valós               |
| Verziókezelt `ios` mappa | A prebuild nem fut újra    | Valós               |

**PNG esetén az Expo maga távolítja el az átlátszóságot, és fehérrel helyettesíti.** Egy kivágott logó így egy fehér négyzeten végzi: hiba nincs, de a megjelenés talán nem az, amit akartál. A sötét változat megtartja az átlátszóságát, és ez szándékos: az Apple átlátszó hátteret kér a sötét ikonhoz, hogy a rendszer által adott háttér látsszon.

A Nolerán, amely mindhárom változatot megadja, a `sips` `no` választ ad a generált világos és színezett ikonra, és `yes` választ a sötétre. E változatok commitjának dátuma alapján az élesben lévő 1.0.2-es verzió már tartalmazza őket. Az IPA-ban ezt nem ellenőriztem.

### A verziókezelt ios mappa esete

Expóval ez a legvalószínűbb ok. Az [Expo folyamatos natív generálásról szóló oldala](https://docs.expo.dev/workflow/continuous-native-generation/) kimondja: ha a projekted tartalmazza az `android` és `ios` mappákat, az EAS Build nem futtatja a prebuildet. **Ilyenkor az app.json már nem nyúl az ikonhoz**: az `ios` mappában lévő PNG megy az Apple-hez.

Ellenőrizd a projekt gyökeréből:

```bash
sips -g hasAlpha ios/*/Images.xcassets/AppIcon.appiconset/*.png
```

Ha a parancs `yes` választ ad az 1024-es ikonra, cseréld le ezt a fájlt az átlátszatlan változatodra, ugyanazzal a névvel. Ha nem módosítottál semmit kézzel a natív részen, törölheted is az `ios` mappát, és hozzáadhatod a `.gitignore`-hoz: az EAS minden buildnél újragenerálja. A Solys, a TradaZen és a Nolera esetében ezt a mappát a git figyelmen kívül hagyja.

## Az iOS 26 formátuma: Icon Composer

Az Icon Composer az Apple eszköze az iOS 26 Liquid Glass ikonjaihoz. Egyetlen, több rétegből álló `.icon` fájlt készít. Az [Apple Icon Composer útmutatója](https://developer.apple.com/documentation/xcode/creating-your-app-icon-using-icon-composer) szerint az Xcode ebből a régebbi iOS verziókhoz szükséges képeket is előállítja.

Az Expo az SDK 54 óta kezeli. A mappát szövegként add meg, sosem a változatokat tartalmazó objektumban:

```json
{
  "expo": {
    "ios": {
      "icon": "./assets/app.icon"
    }
  }
}
```

Ebben az esetben a prebuild hozzányúlás nélkül másolja a mappát, és a végső ikont az Xcode készíti el. Ehhez tehát Xcode 26 vagy újabb kell, ami a friss EAS image-ekben van, ahogy az [ITMS-90725](https://devoria.fr/hu/blog/itms-90725-sdk-version-issue-javitasa-expo) útmutatóban elmagyarázom.

2025 augusztusa óta az Apple fejlesztői fórumán több szál jelez ITMS-90717 hibát `.icon` fájlokkal. A felmerült okok: egy átlátszó PNG réteg, egy a vászonnál nagyobb réteg, egy Blur effektes csoport a szél közelében. Az említett kerülőutak: a Blur kikapcsolása, kitöltött háttér megtartása, vagy visszatérés PNG-re. Ezekben a szálakban nincs hivatalos javítás az Apple-től, és a hibát 2026 augusztusában is jelezték még.

Az [Apple ikonokra vonatkozó szabályai](https://developer.apple.com/design/human-interface-guidelines/app-icons) ebbe az irányba mutatnak: ha háttérréteget importálsz, annak le kell fednie a teljes felületet, és átlátszatlannak kell lennie. Az appjaim még PNG-t használnak, így az Icon Composert éles környezetben nem teszteltem. **Ha egy `.icon` fájl blokkolja a feltöltésedet, állítsd vissza az `ios.icon` mezőt PNG-re**: az Expo lelapítja, és az ikonod átmegy ezen az ellenőrzésen.

## Ellenőrizd az ikont a végső buildben

Az IPA-ban az 1024-es ikon nem PNG fájl: az Xcode az `Assets.car` fájlba fordítja. Töltsd le az IPA-t a build oldaláról az expo.dev-en, aztán futtasd:

```bash
unzip -q MyApp.ipa -d ipa
xcrun assetutil --info ipa/Payload/*.app/Assets.car | grep -B3 '"RenditionName" : "App-Icon'
```

Minden ikonnál megjelenik egy `Opaque` mező. 2026. október 15-én az Xcode eszközével, az `actool`-lal lefordítottam a Solys ikonját és az átlátszó sarkú tesztikonomat. Az első `"Opaque" : true`, a második `"Opaque" : false` eredményt ad. Az Apple nem dokumentálja ezt a mezőt: tekintsd jelzésnek, ne az Apple ellenőrzésének.

Egy csapda, amiről tudnod kell: **ne a `sips`-szel teszteld az app gyökerében lévő kis PNG fájlokat.** Az Xcode alfacsatornával írja őket, még akkor is, ha a forrás átlátszatlan. A Solys ikonjával végzett tesztemen a `sips` `yes` választ ad rájuk.

## A többi ikonhiba

| Kód        | Amit az Apple jelez   | Irány Expóval          |
| ---------- | --------------------- | ---------------------- |
| ITMS-90717 | Átlátszó 1024-es ikon | Exportálás alfa nélkül |
| ITMS-90704 | Hiányzó 1024-es ikon  | Hiányzó 1024-es elem   |
| ITMS-90022 | Hiányzó iPhone ikon   | Hiányos katalógus      |
| ITMS-90023 | Hiányzó iPad ikon     | Hiányos katalógus      |

Az utolsó három üzenet főleg 2017-ből és 2018-ból származik, amikor az Xcode 9 megváltoztatta az ikonszabályokat.

Expóval ritkák lettek. A prebuild egyetlen univerzális, 1024-es ikont ír, a többi méretet az Xcode generálja. Ha nincs megadott ikon, az Expo még egy fehér négyzetet is létrehoz, hogy elkerülje a feltöltési hibát. **Ha mégis előjön valamelyik, nézd meg a verziókezelt `ios` mappát**: az `AppIcon.appiconset` `Contents.json` fájljában lennie kell egy `1024x1024` méretű elemnek, és az általa hivatkozott PNG-nek léteznie kell.

## A következő feltöltés előtt

Egy ikont tíz perc alatt kijavítasz, de minden hiba egy buildbe kerül. A többi automatikus ellenőrzés ugyanilyen alaposságot kíván, például az [ITMS-90683](https://devoria.fr/hu/blog/itms-90683-missing-purpose-string-expo) az engedélykérő szövegeknél, vagy az [ITMS-91053](https://devoria.fr/hu/blog/itms-91053-missing-api-declaration-expo) az adatvédelmi manifestnél. Ha a buildet elfogadták, telepítsd [TestFlighttal](https://devoria.fr/hu/blog/testflight-iphone-app-tesztelese), hogy lásd az ikonodat a kezdőképernyődön.

Egy reviewer elutasítása több rálátást igényel: a teendők az [Apple által elutasított app](https://devoria.fr/hu/expertise/apple-altal-elutasitott-alkalmazas) oldalon vannak, a leggyakoribb okok pedig a [miért utasítja el az Apple az appodat](https://devoria.fr/hu/blog/apple-elutasitas-miert-utasitottak-el-az-appodat) cikkben.

Hogy feltöltés előtt ellenőrizd az anyagodat, a [Review Kit](https://devoria.fr/hu/kits/app-review) összegyűjti az ellenőrzőlistámat és olyan Claude Code skilleket, amelyek átnézik a projektedet. Ha elakadt a feltöltésed, és emberi szemre van szükséged, [foglalj velem egy órát](https://devoria.fr/hu/coaching): videóhívásban, a te képernyődön nézzük át a projektedet. Ha pedig az első megjelenésedre készülsz, [kérd az ingyenes diagnózist](https://devoria.fr/hu/diagnostic): sorba rakja a lépéseket, és elküldi neked az Apple-elutasítás elleni ellenőrzőlistámat.

## Gyakori kérdések

### Miért lát az Apple alfacsatornát, ha az ikonomban semmi átlátszóság nincs?

Mert egy PNG akkor is megtarthat alfacsatornát, ha minden pixele átlátszatlan. Sok eszköz alapértelmezetten hozzáadja exportáláskor. Ellenőrizd a `sips -g hasAlpha` paranccsal, aztán exportáld újra az ikont e csatorna nélkül.

### Javítható az ITMS-90717 távoli frissítéssel?

Nem. Az ikon a binárisba van fordítva, az `Assets.car` fájlba. A távoli frissítés csak az app JavaScriptjét és erőforrásait változtatja meg. Javítsd az ikont, buildelj újra, aztán töltsd fel ismét.

### Lehet átlátszó a sötét ikon?

Igen. Az Apple átlátszó hátteret kér a sötét változathoz, és az Expo megtartja az átlátszóságát. Ebből arra következtetek, hogy az ellenőrzés a fő ikonra, az App Store ikonjára vonatkozik: annak kell átlátszatlannak lennie.

### Le kell kerekíteni az iOS ikon sarkait?

Nem. Adj meg egy teli négyzetet: a maszkot az iOS maga alkalmazza. A lekerekített sarkok átlátszó pixeleket hagynak a sarkokban, pontosan azt, amit ez az ellenőrzés elutasít.

### Kezeli az Expo az iOS 26 Icon Composer ikonjait?

Igen, az SDK 54 óta: add meg a `.icon` mappa elérési útját az `ios.icon` mezőben, szövegként. A prebuild változatlanul másolja, és az Xcode 26 fordítja le. Ha ezzel a formátummal ITMS-90717 hibát kapsz, ellenőrizd az átlátszó rétegeket és a Blur effektet, vagy térj vissza ideiglenesen PNG-re.


## A projekted

[Review Kit](https://devoria.fr/hu/kits/app-review): Az App Store review checklistem, a javított Apple-elutasításaim, a Google Play checklist és három Claude Code skill. 17 990 Ft.

[iOS & Android Kit](https://devoria.fr/hu/kits/ios): Készítsd el iPhone- és Android-appodat Claude Code-dal: az appjaim kezdőkódja, az út a store-okig és az összes kit. 35 990 Ft.

[Diagnózis: mi választ el az iPhone-appodtól](https://devoria.fr/hu/diagnostic): 7 kérdés, 60 másodperc: megtudod, mi akadályoz valójában abban, hogy kiadd az iPhone-appodat, megkapod a 4 lépéses utadat és a hozzád illő kitet.
