# ITMS-90717: fiks «Invalid large app icon» med Expo

> ITMS-90717: 1024 x 1024-ikonet i builden din har gjennomsiktighet eller en alfakanal. Eksporter det ugjennomsiktig, sjekk med sips og bygg på nytt.

Opprinnelig side: [ITMS-90717: fiks «Invalid large app icon» med Expo](https://devoria.fr/no/blog/itms-90717-invalid-large-app-icon-expo)
Forfatter: [Mehdi Azizi](https://devoria.fr/no/mehdi-azizi)
Publisert: 2026-11-04
Innhold sist revidert: 2026-11-04


ITMS-90717 er en automatisk kontroll Apple kjører på builden din. Den sier at det store app-ikonet, det på 1024 x 1024 piksler som App Store viser, inneholder gjennomsiktighet eller en alfakanal. **Løsningen: et kvadratisk, ugjennomsiktig ikon, eksportert uten alfakanal, og så en ny build.**

Med Expo er PNG-filen din sjelden synderen: prebuild legger den allerede på en hvit bakgrunn. Jeg har lest denne koden i SDK 57 og sjekket ikonene til Solys, TradaZen og Nolera. Feilen kommer da som oftest fra en versjonert `ios`-mappe eller en Icon Composer-fil. Her ser du hvordan du finner ut hvilken, og fikser det.

## Hva betyr feilen ITMS-90717?

Meldingen har tittelen «ITMS-90717: Invalid large app icon». Den presiserer at det store ikonet i appens bildekatalog «can't be transparent or contain an alpha channel»: det kan verken være gjennomsiktig eller inneholde en alfakanal. Eldre meldinger snakket om «Invalid App Store Icon». Det er samme regel.

Dette store ikonet er det som vises i App Store. [Xcode-dokumentasjonen om ikoner](https://developer.apple.com/documentation/xcode/configuring-your-app-icon) forklarer det: en app som distribueres i App Store, må ha sitt 1024-punkters ikon i bildekatalogen.

Alfakanalen er det fjerde laget i en PNG, ved siden av rødt, grønt og blått. Den lagrer gjennomsiktigheten til hver piksel. **Et ikon kan se helt fylt ut og likevel ha denne kanalen**: det er fellen som går igjen i alle forumtråder.

Som de andre ITMS-feilene er dette ikke et avslag fra en reviewer. Apple har analysert binærfilen ved levering. Avhengig av opplastingsverktøyet dukker feilen opp som en valideringsfeil, for eksempel med kode 409.

## Sjekk ikonet ditt med sips

På Mac er `sips` installert fra før. Én linje holder:

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

Du vil se `hasAlpha: no`. Den 15. oktober 2026 kjørte jeg denne kommandoen på ikonene som er oppgitt i app.json for Solys, TradaZen og Nolera: alle svarer `no`, i 1024 x 1024.

Jeg lagde også et testikon: et helt ugjennomsiktig blått kvadrat, men lagret med en alfakanal. `sips` svarer `yes`. **Ingen piksler er gjennomsiktige, og likevel er kanalen der.** Det er derfor så mange utviklere skriver «ikonet mitt har ingen gjennomsiktighet» under denne meldingen.

I Preview viser også inspektøren (Tools, Show Inspector) bildets egenskaper, blant annet alfakanalen.

## Fiks det: eksporter ikonet uten alfakanal

Tre metoder, fra den enkleste til den mest presise.

**1. Preview.** File, Export, PNG-format, og fjern haken for Alpha. Den eksporterte filen har ikke lenger alfakanal.

**2. sips, uten å installere noe.** `sips` fjerner ikke alfakanalen fra en PNG. Du må gå via en JPEG, som ikke har noen:

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

På testikonet mitt med gjennomsiktige hjørner ble hjørnene hvite, og siste linje svarer `no`. Omveien via JPEG komprimerer bildet litt, selv med høyeste kvalitet: se nøye på resultatet.

**3. ImageMagick.** Har du det installert, velger du bakgrunnsfargen selv:

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

Ifølge [ImageMagick-dokumentasjonen](https://imagemagick.org/command-line-options/#alpha) legger `-alpha remove` bildet på bakgrunnsfargen, og `-alpha off` slår av kanalen.

Alle tre metodene fyller gjennomsiktigheten med en ensfarget bakgrunn. Hvis logoen din lå på en gjennomsiktig bakgrunn, er det ryddigst å gå tilbake til kildefilen og tegne en ekte bakgrunn der. Expo krever det i sin [guide om app-ikonet](https://docs.expo.dev/develop/user-interface/splash-screen-and-app-icon/): ikonet skal fylle hele kvadratet, uten avrundede hjørner eller gjennomsiktige piksler. iOS legger på masken selv.

## Hvor Expo henter ikonet ditt, og hva det gjør med det

Expo leser først `ios.icon`, deretter feltet `icon` på rotnivå i konfigurasjonen din. Ifølge [Expos konfigurasjonsreferanse](https://docs.expo.dev/versions/latest/config/app/) godtar `ios.icon` tre former: en PNG, et objekt med variantene `light`, `dark` og `tinted`, eller en `.icon`-mappe laget med Icon Composer.

Tabellen nedenfor er basert på koden som genererer iOS-ikonet ved prebuild, `@expo/prebuild-config` 57.0.16 (SDK 57), lest 15. oktober 2026:

| Det du oppgir          | Det prebuild gjør          | Risiko for ITMS-90717 |
| ---------------------- | -------------------------- | --------------------- |
| `icon` som PNG         | Flatet ut på hvit bakgrunn | Lav                   |
| `ios.icon.light`       | Flatet ut på hvit bakgrunn | Lav                   |
| `ios.icon.tinted`      | Flatet ut på hvit bakgrunn | Lav                   |
| `ios.icon.dark`        | Gjennomsiktighet beholdt   | Ønsket av Apple       |
| `ios.icon` som `.icon` | Kopiert uendret            | Reell                 |
| Versjonert `ios`-mappe | Prebuild kjøres ikke       | Reell                 |

**Med en PNG fjerner Expo gjennomsiktigheten selv og erstatter den med hvitt.** En frilagt logo havner dermed på et hvitt kvadrat: ingen feil, men kanskje ikke det utseendet du ville ha. Den mørke varianten beholder gjennomsiktigheten, og det er med vilje: Apple krever gjennomsiktig bakgrunn for det mørke ikonet, slik at bakgrunnen systemet leverer, vises.

På Nolera, som oppgir alle tre variantene, svarer `sips` `no` for det genererte lyse og fargetonede ikonet, og `yes` for det mørke. Ut fra datoen på commiten med disse variantene har versjon 1.0.2, som er publisert, dem med. Jeg har ikke sjekket det i IPA-en.

### Når ios-mappen er versjonert

Dette er den mest sannsynlige årsaken med Expo. [Expos side om continuous native generation](https://docs.expo.dev/workflow/continuous-native-generation/) sier det: hvis prosjektet ditt inneholder mappene `android` og `ios`, kjører ikke EAS Build prebuild. **Da rører ikke app.json ikonet lenger**: det er PNG-en i `ios`-mappen som sendes til Apple.

Sjekk det fra prosjektets rotmappe:

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

Svarer kommandoen `yes` for 1024-ikonet, bytter du ut filen med den ugjennomsiktige versjonen din, med samme navn. Har du ikke gjort noen native endringer for hånd, kan du også slette `ios`-mappen og legge den til i `.gitignore`: EAS genererer den på nytt ved hver build. I Solys, TradaZen og Nolera ignoreres denne mappen av git.

## iOS 26-formatet: Icon Composer

Icon Composer er Apples verktøy for Liquid Glass-ikonene i iOS 26. Det lager én enkelt `.icon`-fil med flere lag. Ifølge [Apples guide om Icon Composer](https://developer.apple.com/documentation/xcode/creating-your-app-icon-using-icon-composer) henter Xcode også bildene for eldre iOS-versjoner fra den.

Expo støtter dette siden SDK 54. Du oppgir mappen som tekst, aldri i variantobjektet:

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

I så fall kopierer prebuild mappen uten å røre den, og det er Xcode som lager det endelige ikonet. Du trenger derfor Xcode 26 eller nyere, som er det de nyere EAS-imagene bruker, slik jeg forklarer i guiden om [ITMS-90725](https://devoria.fr/no/blog/itms-90725-sdk-version-issue-expo).

Siden august 2025 har tråder i Apples utviklerforum rapportert ITMS-90717 med `.icon`-filer. Sporene som nevnes: et gjennomsiktig PNG-lag, et lag som er større enn lerretet, en gruppe med Blur-effekt nær kanten. Omveiene som nevnes: slå av Blur, behold en helfylt bakgrunn, eller gå tilbake til en PNG. Trådene gir ingen offisiell løsning fra Apple, og feilen ble fortsatt rapportert i august 2026.

[Apples retningslinjer for ikoner](https://developer.apple.com/design/human-interface-guidelines/app-icons) peker i samme retning: hvis du importerer et bakgrunnslag, må det dekke hele flaten og være ugjennomsiktig. Appene mine bruker fortsatt PNG, så jeg har ikke testet Icon Composer i produksjon. **Hvis en `.icon`-fil stopper opplastingen din, bytt `ios.icon` tilbake til en PNG**: Expo flater den ut, og ikonet ditt passerer denne kontrollen.

## Sjekk ikonet i den ferdige builden

I IPA-en er ikke 1024-ikonet en PNG-fil: Xcode kompilerer det inn i `Assets.car`. Last ned IPA-en fra build-siden på expo.dev, og kjør:

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

Hvert ikon viser et `Opaque`-felt. Den 15. oktober 2026 kompilerte jeg Solys-ikonet og testikonet mitt med gjennomsiktige hjørner med `actool`, Xcode-verktøyet. Det første gir `"Opaque" : true`, det andre `"Opaque" : false`. Apple dokumenterer ikke dette feltet: se på det som en indikasjon, ikke som Apples egen kontroll.

En felle du bør kjenne til: **ikke test de små PNG-ene som ligger i roten av appen med `sips`.** Xcode skriver dem med alfakanal, selv når kilden er ugjennomsiktig. I testen min med Solys-ikonet svarer `sips` `yes` for dem.

## De andre ikonfeilene

| Kode       | Det Apple melder        | Spor med Expo          |
| ---------- | ----------------------- | ---------------------- |
| ITMS-90717 | Gjennomsiktig 1024-ikon | Eksporter uten alfa    |
| ITMS-90704 | 1024-ikon mangler       | 1024-oppføring mangler |
| ITMS-90022 | iPhone-ikon mangler     | Ufullstendig katalog   |
| ITMS-90023 | iPad-ikon mangler       | Ufullstendig katalog   |

De tre siste meldingene stammer mest fra 2017 og 2018, da Xcode 9 endret reglene for ikoner.

Med Expo har de blitt sjeldne. Prebuild skriver ett enkelt universelt 1024-ikon, og Xcode genererer de andre størrelsene. Uten oppgitt ikon lager Expo til og med et hvitt kvadrat, for å unngå at opplastingen feiler. **Får du en av disse feilene, se på den versjonerte `ios`-mappen**: filen `Contents.json` i `AppIcon.appiconset` må inneholde en oppføring med størrelsen `1024x1024`, og PNG-en den viser til, må finnes.

## Før neste opplasting

Et ikon fikses på ti minutter, men hver feil koster en build. De andre automatiske kontrollene krever samme nøyaktighet, som [ITMS-90683](https://devoria.fr/no/blog/itms-90683-missing-purpose-string-expo) for tillatelsestekstene eller [ITMS-91053](https://devoria.fr/no/blog/itms-91053-missing-api-declaration-expo) for personvernmanifestet. Når builden er godkjent, installer den med [TestFlight](https://devoria.fr/no/blog/testflight-teste-iphone-app-for-innsending) for å se ikonet på hjemskjermen din.

Avslag fra en reviewer krever mer ettertanke: fremgangsmåten står på siden [app avvist av Apple](https://devoria.fr/no/expertise/app-avvist-av-apple), og de vanligste årsakene finner du i [hvorfor Apple avviser en app](https://devoria.fr/no/blog/avvist-av-apple-hvorfor-appen-blir-avvist).

For å sjekke prosjektet ditt før opplasting samler [Review Kit](https://devoria.fr/no/kits/app-review) sjekklisten min og Claude Code-skills som går gjennom prosjektet ditt. Hvis opplastingen står fast og du vil ha et menneskelig blikk, [book en time med meg](https://devoria.fr/no/coaching): vi går gjennom prosjektet ditt på video, på din skjerm. Og forbereder du din første lansering, [ta den gratis diagnosen](https://devoria.fr/no/diagnostic): den setter stegene i riktig rekkefølge og sender deg sjekklisten min mot avslag fra Apple.

## Ofte stilte spørsmål

### Hvorfor ser Apple en alfakanal når ikonet mitt ikke har noen gjennomsiktighet?

Fordi en PNG kan beholde en alfakanal selv når alle pikslene er ugjennomsiktige. Mange verktøy legger den til som standard ved eksport. Sjekk med `sips -g hasAlpha`, og eksporter ikonet på nytt uten denne kanalen.

### Kan jeg fikse ITMS-90717 med en ekstern oppdatering?

Nei. Ikonet er kompilert inn i binærfilen, i `Assets.car`. En ekstern oppdatering endrer bare JavaScript-koden og appens ressurser. Fiks ikonet, lag en ny build og send den inn på nytt.

### Kan det mørke ikonet være gjennomsiktig?

Ja. Apple krever gjennomsiktig bakgrunn for den mørke varianten, og Expo beholder gjennomsiktigheten. Jeg slutter av dette at kontrollen gjelder hovedikonet, det i App Store: det er det som må være ugjennomsiktig.

### Må jeg runde av hjørnene på iOS-ikonet?

Nei. Lever et helfylt kvadrat: iOS legger på masken selv. Avrundede hjørner etterlater gjennomsiktige piksler i hjørnene, akkurat det denne kontrollen avviser.

### Støtter Expo Icon Composer-ikonene i iOS 26?

Ja, siden SDK 54: oppgi stien til `.icon`-mappen i `ios.icon`, som tekst. Prebuild kopierer den uendret, og Xcode 26 kompilerer den. Får du ITMS-90717 med dette formatet, sjekk gjennomsiktige lag og Blur-effekten, eller gå midlertidig tilbake til en PNG.


## Prosjektet ditt

[Review Kit](https://devoria.fr/no/kits/app-review): Sjekklisten min for App Store-gjennomgang, Apples avslag på appene mine med rettelser, sjekklisten for Google Play og tre Claude Code-skills. 499 kr.

[iOS & Android Kit](https://devoria.fr/no/kits/ios): Lag din iPhone- og Android-app med Claude Code: startkoden fra appene mine, veien helt til butikkene og alle kitene. 999 kr.

[Diagnose: dette står mellom deg og iPhone-appen din](https://devoria.fr/no/diagnostic): 7 spørsmål, 60 sekunder: du får vite hva som egentlig hindrer deg i å publisere iPhone-appen din, veien din i 4 steg og kitet som passer deg.
