# ITMS-90717: korjaa “Invalid large app icon” Expossa

> ITMS-90717: buildisi 1024 x 1024 -ikonissa on läpinäkyvyyttä tai alfakanava. Vie se läpinäkymättömänä, tarkista sipsillä ja tee uusi build.

Alkuperäinen sivu: [ITMS-90717: korjaa “Invalid large app icon” Expossa](https://devoria.fr/fi/blog/itms-90717-invalid-large-app-icon-expo)
Kirjoittaja: [Mehdi Azizi](https://devoria.fr/fi/mehdi-azizi)
Julkaistu: 2026-11-04
Sisältö tarkistettu viimeksi: 2026-11-04


ITMS-90717 on Applen automaattinen tarkistus, joka tehdään buildillesi. Se kertoo, että sovelluksen suuressa ikonissa, siinä 1024 x 1024 pikselin kuvassa, jonka App Store näyttää, on läpinäkyvyyttä tai alfakanava. **Korjaus: neliön muotoinen, läpinäkymätön ikoni, joka on viety ilman alfakanavaa, ja sen jälkeen uusi build.**

Expossa PNG-tiedostosi on harvoin syyllinen: prebuild asettaa sen jo valmiiksi valkoiselle taustalle. Luin tämän koodin SDK 57:stä ja tarkistin Solysin, TradaZenin ja Noleran ikonit. Virhe johtuu silloin useimmiten versionhallintaan lisätystä `ios`-kansiosta tai Icon Composer -tiedostosta. Näin selvität, kummasta on kyse, ja korjaat sen.

## Mitä ITMS-90717-virhe tarkoittaa?

Viestin otsikko on "ITMS-90717: Invalid large app icon". Siinä tarkennetaan, että sovelluksesi kuvakatalogin suuri ikoni "can't be transparent or contain an alpha channel": se ei saa olla läpinäkyvä eikä sisältää alfakanavaa. Vanhemmissa viesteissä puhuttiin "Invalid App Store Icon" -virheestä. Sääntö on sama.

Tämä suuri ikoni on App Storen ikoni. [Xcoden ikonidokumentaatio](https://developer.apple.com/documentation/xcode/configuring-your-app-icon) selittää sen: App Storessa jaettavan sovelluksen on toimitettava 1024 pisteen ikoninsa kuvakatalogissaan.

Alfakanava on PNG:n neljäs kerros punaisen, vihreän ja sinisen rinnalla. Siihen tallennetaan jokaisen pikselin läpinäkyvyys. **Ikoni voi näyttää täysin peittävältä ja silti sisältää tämän kanavan**: tämä on se ansa, joka toistuu jokaisessa foorumiketjussa.

Kuten muutkaan ITMS-virheet, tämä ei ole tarkastajan hylkäys. Apple analysoi binäärin toimituksen yhteydessä. Lähetystyökalusta riippuen virhe näkyy validoinnin epäonnistumisena, esimerkiksi koodilla 409.

## Tarkista ikonisi sipsillä

Macissa `sips` on asennettu valmiiksi. Yksi rivi riittää:

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

Haluat nähdä tuloksen `hasAlpha: no`. Ajoin 15. lokakuuta 2026 tämän komennon Solysin, TradaZenin ja Noleran app.json-tiedostoissa määritellyille ikoneille: kaikki vastaavat `no`, kokona 1024 x 1024.

Tein myös testi-ikonin: täysin läpinäkymätön sininen neliö, mutta tallennettu alfakanavan kanssa. `sips` vastaa `yes`. **Yksikään pikseli ei ole läpinäkyvä, ja silti kanava on olemassa.** Siksi niin moni kehittäjä kirjoittaa tämän viestin alle "ikonissani ei ole mitään läpinäkyvyyttä".

Esikatselussa myös tarkastaja (Työkalut, Näytä tarkastaja) listaa kuvan ominaisuudet, alfakanava mukaan lukien.

## Korjaus: vie ikoni ilman alfakanavaa

Kolme tapaa, yksinkertaisimmasta tarkimpaan.

**1. Esikatselu.** Arkisto, Vie, muoto PNG, ja poista Alfa-valinta. Viedyssä tiedostossa ei ole enää alfakanavaa.

**2. sips, asentamatta mitään.** `sips` ei poista alfakanavaa PNG:stä. Täytyy kulkea JPEG:n kautta, koska siinä alfakanavaa ei ole:

```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
```

Läpinäkyväkulmaisessa testi-ikonissani kulmat muuttuivat valkoisiksi ja viimeinen rivi vastaa `no`. JPEG-välivaihe pakkaa kuvaa hieman, jopa maksimilaadulla: katso lopputulos tarkkaan.

**3. ImageMagick.** Jos se on asennettuna, voit valita taustavärin:

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

[ImageMagickin dokumentaation](https://imagemagick.org/command-line-options/#alpha) mukaan `-alpha remove` asettaa kuvan taustavärin päälle, ja `-alpha off` kytkee kanavan pois.

Nämä kolme tapaa täyttävät läpinäkyvyyden yhdellä tasaisella värillä. Jos logosi leijui läpinäkyvällä taustalla, siistein ratkaisu on avata lähdetiedosto ja piirtää siihen oikea tausta. Expo vaatii tätä [sovellusikonioppaassaan](https://docs.expo.dev/develop/user-interface/splash-screen-and-app-icon/): ikonin on täytettävä koko neliö, ilman pyöristettyjä kulmia tai läpinäkyviä pikseleitä. iOS lisää maskin itse.

## Mistä Expo hakee ikonisi ja mitä se sille tekee

Expo lukee ensin `ios.icon`-kentän ja sitten konfiguraatiosi juuressa olevan `icon`-kentän. [Expon konfiguraatioreferenssin](https://docs.expo.dev/versions/latest/config/app/) mukaan `ios.icon` hyväksyy kolme muotoa: PNG:n, olion, jossa on variantit `light`, `dark` ja `tinted`, tai Icon Composerilla luodun `.icon`-kansion.

Alla oleva taulukko perustuu koodiin, joka luo iOS-ikonin prebuildissa, `@expo/prebuild-config` 57.0.16 (SDK 57), luettu 15. lokakuuta 2026:

| Mitä määrittelet            | Mitä prebuild tekee     | ITMS-90717-riski   |
| --------------------------- | ----------------------- | ------------------ |
| `icon` PNG:nä               | Litistetään valkoiselle | Pieni              |
| `ios.icon.light`            | Litistetään valkoiselle | Pieni              |
| `ios.icon.tinted`           | Litistetään valkoiselle | Pieni              |
| `ios.icon.dark`             | Läpinäkyvyys säilyy     | Applen tarkoittama |
| `ios.icon` `.icon`-muodossa | Kopioidaan sellaisenaan | Todellinen         |
| Versioitu `ios`-kansio      | Prebuildia ei ajeta     | Todellinen         |

**PNG:n kanssa Expo poistaa läpinäkyvyyden itse ja korvaa sen valkoisella.** Rajattu logo päätyy siis valkoiselle neliölle: ei virhettä, mutta lopputulos ei ehkä ole sitä, mitä halusit. Tumma variantti säilyttää läpinäkyvyytensä, ja se on tarkoituksellista: Apple vaatii tummalle ikonille läpinäkyvän taustan, jotta järjestelmän tarjoama tausta näkyy.

Nolerassa, joka määrittelee kaikki kolme varianttia, `sips` vastaa `no` luodulle vaalealle ja sävytetylle ikonille ja `yes` tummalle. Varianttien commitin päivämäärän perusteella julkaistu versio 1.0.2 sisältää ne. En ole tarkistanut tätä sen IPA:sta.

### Versioidun ios-kansion tapaus

Tämä on Expossa todennäköisin syy. Expon [jatkuvaa natiivigenerointia käsittelevä sivu](https://docs.expo.dev/workflow/continuous-native-generation/) sanoo sen suoraan: jos projektissasi on `android`- ja `ios`-kansiot, EAS Build ei aja prebuildia. **Silloin app.json ei enää vaikuta ikoniin**: Applelle lähtee `ios`-kansion PNG.

Tarkista se projektin juuresta:

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

Jos komento vastaa `yes` 1024-ikonin kohdalla, korvaa tiedosto läpinäkymättömällä versiollasi samalla nimellä. Jos et ole tehnyt käsin mitään natiivimuutoksia, voit myös poistaa `ios`-kansion ja lisätä sen `.gitignore`-tiedostoon: EAS luo sen uudelleen jokaisessa buildissa. Solysissa, TradaZenissa ja Nolerassa git ohittaa tämän kansion.

## iOS 26:n muoto: Icon Composer

Icon Composer on Applen työkalu iOS 26:n Liquid Glass -ikoneille. Se tuottaa yhden monikerroksisen `.icon`-tiedoston. [Applen Icon Composer -oppaan](https://developer.apple.com/documentation/xcode/creating-your-app-icon-using-icon-composer) mukaan Xcode luo siitä myös kuvat vanhemmille iOS-versioille.

Expo tukee sitä SDK 54:stä lähtien. Määrittelet kansion tekstinä, et koskaan varianttiolion sisällä:

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

Tässä tapauksessa prebuild kopioi kansion koskematta siihen, ja Xcode tekee lopullisen ikonin. Tarvitset siis Xcode 26:n tai uudemman, eli tuoreiden EAS-imagejen version, kuten selitän [ITMS-90725](https://devoria.fr/fi/blog/itms-90725-sdk-version-issue-expo)-oppaassa.

Elokuusta 2025 lähtien Applen kehittäjäfoorumin ketjuissa on raportoitu ITMS-90717-virheestä `.icon`-tiedostojen kanssa. Raportoidut syyt: läpinäkyvä PNG-kerros, kangasta suurempi kerros, reunan lähellä oleva ryhmä Blur-efektillä. Mainitut kiertotiet: Blurin poisto, täyteläisen taustan säilyttäminen tai paluu PNG:hen. Ketjuissa ei ole Applen virallista korjausta, ja virheestä raportoitiin vielä elokuussa 2026.

[Applen ikonisäännöt](https://developer.apple.com/design/human-interface-guidelines/app-icons) ovat samoilla linjoilla: jos tuot taustakerroksen, sen on peitettävä koko pinta ja oltava läpinäkymätön. Sovellukseni käyttävät vielä PNG:tä, joten en ole testannut Icon Composeria tuotannossa. **Jos `.icon`-tiedosto estää lähetyksesi, vaihda `ios.icon` takaisin PNG:ksi**: Expo litistää sen, ja ikonisi läpäisee tämän tarkistuksen.

## Tarkista ikoni lopullisesta buildista

IPA:ssa 1024-ikoni ei ole PNG-tiedosto: Xcode kääntää sen `Assets.car`-tiedostoon. Lataa IPA buildin sivulta expo.devissä ja aja:

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

Jokaisella ikonilla näkyy `Opaque`-kenttä. Käänsin 15. lokakuuta 2026 Xcoden `actool`-työkalulla Solysin ikonin ja läpinäkyväkulmaisen testi-ikonini. Ensimmäinen antaa `"Opaque" : true`, jälkimmäinen `"Opaque" : false`. Apple ei dokumentoi tätä kenttää: pidä sitä vihjeenä, älä Applen tarkistuksena.

Yksi ansa kannattaa tietää: **älä testaa `sips`-komennolla sovelluksen juureen sijoitettuja pieniä PNG-tiedostoja.** Xcode kirjoittaa ne alfakanavan kanssa, vaikka lähde olisi läpinäkymätön. Testissäni Solysin ikonilla `sips` vastaa niille `yes`.

## Muut ikonivirheet

| Koodi      | Mitä Apple ilmoittaa  | Mistä etsiä Expossa     |
| ---------- | --------------------- | ----------------------- |
| ITMS-90717 | 1024-ikoni läpinäkyvä | Vie ilman alfaa         |
| ITMS-90704 | 1024-ikoni puuttuu    | 1024-merkintä puuttuu   |
| ITMS-90022 | iPhone-ikoni puuttuu  | Katalogi epätäydellinen |
| ITMS-90023 | iPad-ikoni puuttuu    | Katalogi epätäydellinen |

Kolme viimeistä viestiä ovat peräisin lähinnä vuosilta 2017 ja 2018, jolloin Xcode 9 muutti ikonisääntöjä.

Expossa ne ovat käyneet harvinaisiksi. Prebuild kirjoittaa yhden universaalin 1024-ikonin, ja Xcode luo muut koot. Jos ikonia ei ole määritelty, Expo luo jopa valkoisen neliön, jotta lähetys ei epäonnistu. **Jos jokin näistä virheistä tulee vastaan, katso versioitua `ios`-kansiota**: `AppIcon.appiconset`-kansion `Contents.json`-tiedostossa on oltava merkintä koolla `1024x1024`, ja sen viittaaman PNG:n on oltava olemassa.

## Ennen seuraavaa lähetystäsi

Ikonin korjaa kymmenessä minuutissa, mutta jokainen virhe maksaa yhden buildin. Muut automaattiset tarkistukset vaativat samaa huolellisuutta, kuten [ITMS-90683](https://devoria.fr/fi/blog/itms-90683-missing-purpose-string-expo) lupatekstien osalta tai [ITMS-91053](https://devoria.fr/fi/blog/itms-91053-missing-api-declaration-expo) tietosuojamanifestin osalta. Kun build on hyväksytty, asenna se [TestFlightilla](https://devoria.fr/fi/blog/testflight-testaa-iphone-sovellus-ennen-lahetysta), niin näet ikonisi kotinäytölläsi.

Tarkastajan hylkäykset vaativat enemmän harkintaa: toimintatapa on sivulla [Applen hylkäämä sovellus](https://devoria.fr/fi/expertise/apple-hylkasi-sovelluksen), ja yleisimmät syyt löytyvät artikkelista [miksi Apple hylkää sovelluksen](https://devoria.fr/fi/blog/apple-hylkasi-sovelluksen-syyt).

Jos haluat tarkistaa kokonaisuuden ennen lähetystä, [Review Kit](https://devoria.fr/fi/kits/app-review) kokoaa tarkistuslistani ja Claude Code -skillit, jotka käyvät projektisi läpi. Jos lähetyksesi jumittaa ja haluat ihmisen silmät asiaan, [varaa tunti kanssani](https://devoria.fr/fi/coaching): käydään projektisi läpi videopuhelussa, sinun näytölläsi. Ja jos valmistelet ensimmäistä julkaisuasi, [tee ilmainen diagnoosi](https://devoria.fr/fi/diagnostic): se laittaa vaiheet järjestykseen ja lähettää sinulle tarkistuslistani Applen hylkäysten välttämiseen.

## Usein kysytyt kysymykset

### Miksi Apple näkee alfakanavan, vaikka ikonissani ei ole läpinäkyvyyttä?

Koska PNG voi säilyttää alfakanavan, vaikka kaikki sen pikselit olisivat läpinäkymättömiä. Monet työkalut lisäävät sen oletuksena vientivaiheessa. Tarkista komennolla `sips -g hasAlpha` ja vie ikoni uudelleen ilman kanavaa.

### Voiko ITMS-90717:n korjata etäpäivityksellä?

Ei. Ikoni on käännetty binääriin, `Assets.car`-tiedostoon. Etäpäivitys muuttaa vain sovelluksen JavaScriptiä ja resursseja. Korjaa ikoni, tee uusi build ja lähetä se uudelleen.

### Saako tumma ikoni olla läpinäkyvä?

Kyllä. Apple vaatii tummalle variantille läpinäkyvän taustan, ja Expo säilyttää sen läpinäkyvyyden. Päättelen tästä, että tarkistus koskee pääikonia, App Storen ikonia: sen on oltava läpinäkymätön.

### Pitääkö iOS-ikonin kulmat pyöristää?

Ei. Toimita täysi neliö: iOS lisää maskin itse. Pyöristetyt kulmat jättävät kulmiin läpinäkyviä pikseleitä, juuri sitä, mitä tämä tarkistus hylkää.

### Tukeeko Expo iOS 26:n Icon Composer -ikoneita?

Kyllä, SDK 54:stä lähtien: määrittele `.icon`-kansion polku `ios.icon`-kenttään tekstinä. Prebuild kopioi sen sellaisenaan ja Xcode 26 kääntää sen. Jos saat ITMS-90717-virheen tällä muodolla, tarkista läpinäkyvät kerrokset ja Blur-efekti, tai palaa väliaikaisesti PNG:hen.


## Projektisi

[Review Kit](https://devoria.fr/fi/kits/app-review): App Store -tarkastuksen tarkistuslistani, korjatut Applen hylkäykseni, Google Playn lista ja kolme Claude Code -skilliä. 49 €.

[iOS & Android Kit](https://devoria.fr/fi/kits/ios): Tee iPhone- ja Android-sovelluksesi Claude Codella: sovellusteni pohjakoodi, polku kauppoihin asti ja kaikki kitit. 99 €.

[Diagnoosi: mikä erottaa sinut omasta iPhone-sovelluksestasi](https://devoria.fr/fi/diagnostic): 7 kysymystä, 60 sekuntia: tiedät, mikä oikeasti estää sinua julkaisemasta iPhone-sovellustasi, saat 4 vaiheen polkusi ja sinulle sopivan kitin.
