18  H18: Review en updates publiceren

Je app staat in App Store Connect. Nu wacht je op Apple. Maar er is meer: je kunt je app eerst testen via TestFlight, reviewfeedback krijgen en verwerken, en later updates uitbrengen. In dit slothoofdstuk leer je hoe dat werkt.

18.1 Wat gaan we bouwen?

Geen code — wel een complete workflow voor bètatesten, de App Review doorstaan, en daarna updates publiceren. Na dit hoofdstuk weet je hoe een app levend blijft na publicatie.

Screenshot van App Store Connect TestFlight-tabblad met een lijst van bètatestrs

TestFlight op macOS: uitnodigingen versturen naar bètatestrs

18.2 Playground-voorbeeld

TestFlight en App Review werken buiten Xcode — er is geen playground-equivalent. Maar je kunt alvast oefenen met versienummers ophogen in code:

// Versiebeheer is een bewuste keuze, geen toeval.
// Elke update naar de App Store vereist een hoger build-nummer.

let versie = "1.0.0"     // Zichtbaar voor gebruikers
let buildNummer = 1       // Intern teller, elke upload +1

// Bij een bugfix: versie → "1.0.1", buildNummer → 2
// Bij een nieuwe functie: versie → "1.1.0", buildNummer → 3
// Bij een complete herziening: versie → "2.0.0", buildNummer → 4

18.3 Concept uitgelegd

18.3.1 TestFlight: je app aan vrienden geven om te testen

Stel je voor: je hebt een nieuw bordspel gemaakt. Voordat je het in de winkel legt, geef je het aan vrienden om te spelen. Ze ontdekken regels die onduidelijk zijn, of een fout in het spelmateriaal. Je repareert het — en daarna is het klaar voor de winkel.

TestFlight werkt precies zo. Je stuurt je app naar echte mensen — vrienden, familie, of onbekende bètatestrs — vóórdat Apple hem beoordeelt. Zij testen de app en sturen feedback terug. Zo vind je fouten die jij zelf nooit zou zien.

18.3.2 De App Review: Apple beoordeelt je app

Als je app klaar is, stuurt Apple hem naar een medewerker die de app echt opstart en gebruikt. Die kijkt of:

  • De app doet wat de beschrijving belooft
  • De app niet crasht
  • Er geen verborgen functies zijn
  • De privacy correct is

Als alles klopt, verschijnt de app in de App Store — meestal binnen 24 tot 48 uur.

18.3.3 Een update uitbrengen

Na publicatie wil je misschien een fout herstellen of een nieuwe functie toevoegen. Dat werkt hetzelfde als de eerste keer: versienummer ophogen, nieuwe Archive maken, uploaden, en indienen. Gebruikers met automatische updates krijgen de nieuwe versie vanzelf.

18.4 Code schrijven

18.4.1 Stap 1: TestFlight-build klaarzetten

In App Store Connect:

  1. Ga naar je app → TestFlight
  2. Wacht tot de build verschijnt die je eerder hebt geüpload
  3. Klik op de build → vul een Test Information in (wat moeten testrs controleren?)
  4. Klik op Save

Je build heeft nu de status Ready to Test.

18.4.2 Stap 2: bètatestrs uitnodigen

Interne testrs (maximaal 25 mensen uit je team):

  1. Ga naar Internal Group → klik op +
  2. Voeg e-mailadressen toe van mensen met toegang tot je App Store Connect-account

Externe testrs (tot 10.000 mensen, vereist een korte review van Apple):

  1. Maak een External Group aan
  2. Voeg de build toe
  3. Klik op Submit for Beta App Review
  4. Apple beoordeelt hem binnen een dag

Testrs ontvangen een e-mail met een uitnodiging om TestFlight te installeren.

18.4.3 Stap 3: App Review indienen

Terug in App Store Connect:

  1. Ga naar je app → macOS App1.0 Prepare for Submission
  2. Vul alle verplichte velden in (zie H17)
  3. Klik op Add for Review
  4. Klik op Submit to App Review

Je app heeft nu de status Waiting for Review.

18.4.4 Stap 4: een afwijzing verwerken

Als Apple je app afwijst, ontvang je een e-mail. Open App Store Connect → Resolution Center. Hier staat de reden.

Veelgemaakte afwijzingen voor de EnergyClock:

Reden Oplossing
Crasht bij opstarten Test op een schone Mac, check Console.app
Screenshots tonen geen echte data Maak nieuwe screenshots met echte prijzen
Privacy Manifest ontbreekt Voeg PrivacyInfo.xcprivacy toe (zie H16)
Beschrijving klopt niet Pas de App Store-beschrijving aan

Je kunt via Resolution Center reageren en Apple vragen om verduidelijking.

18.4.5 Stap 5: een update uitbrengen

Na publicatie wil je versie 1.1.0 uitbrengen met een nieuwe functie:

  1. In Xcode: verhoog Version naar 1.1.0 en Build naar een hoger nummer (bijv. 2)
  2. Maak een nieuwe Archive: Product > Archive
  3. Upload via Distribute App > App Store Connect > Upload
  4. In App Store Connect: maak een nieuwe versie aan → + Version or Platform → vul de What’s New-tekst in
  5. Koppel de nieuwe build en dien in

De What’s New-tekst is wat gebruikers zien bij de update in de App Store. Schrijf hier in gewone taal wat je hebt verbeterd.

NoteVerdieping: hoe Apple builds valideert

Elke build die je uploadt, doorloopt een geautomatiseerde scan door Apples servers voordat een medewerker hem ziet. Deze scan controleert:

  • Code signing: is de handtekening geldig en afkomstig van een gecertificeerde ontwikkelaar?
  • Private API gebruik: roept de app API’s aan die Apple niet heeft gepubliceerd? Dit leidt tot directe afwijzing.
  • Bitcode / bytecode: de build is gedeeltelijk gecompileerd voor Apples servers om te kunnen optimaliseren per apparaat.
  • Privacy Manifest: bevat de app de vereiste privacybeschrijvingen?

Pas als de scan slaagt, ziet een medewerker de app.

Cryptografisch getekende updates

Elke keer dat je een update uploadt, genereert Xcode een nieuwe cryptografische handtekening. macOS verifieert bij elke start of de handtekening klopt. Als iemand de binaire bestanden van een gepubliceerde app zou aanpassen, zou macOS dat onmiddellijk herkennen en de app weigeren te starten (Gatekeeper).

Reviewtijden bewaken

Apple publiceert geen exacte reviewtijden, maar de community houdt ze bij op appreviewtimes.com. Gemiddeld duurt een nieuwe app 24-48 uur; updates gaan vaak sneller. In drukke periodes (rond Apple-events of de feestdagen) kan het langer duren.

18.5 Apple documentatie

TestFlight uitleg:

developer.apple.com/testflight

App Review proces:

developer.apple.com/app-store/review

App Review Guidelines (verplichte lesstof voor publicatie):

developer.apple.com/app-store/review/guidelines

Lees de richtlijnen op zijn minst één keer volledig door. Zoek op “macOS” voor platform-specifieke eisen.

18.6 Samenvatting

Begrip Betekenis
TestFlight Apples platform voor bètatesten vóór publicatie
Interne testrs Tot 25 mensen uit je eigen team
Externe testrs Tot 10.000 mensen buiten je team, vereist review
App Review Handmatige beoordeling door een Apple-medewerker
Resolution Center Communicatie met Apple over afwijzingen
What’s New Tekst die gebruikers zien bij een update
Private API Niet-gepubliceerde Apple API, gebruik leidt tot afwijzing
Reviewtijd Gemiddeld 24-48 uur voor nieuwe apps

18.7 Opdracht

  1. Stuur de EnergyClock als TestFlight-build naar twee vrienden. Vraag ze specifiek te testen: werkt de klok op hun Mac? Zien ze de goede kleuren?
  2. Stel je voor dat Apple je app afwijst omdat “de app crasht bij het starten”. Schrijf in drie stappen op hoe je dit zou onderzoeken en oplossen.
  3. Schrijf een What’s New-tekst van maximaal drie zinnen voor een hypothetische versie 1.1.0 van de EnergyClock met een nieuwe dagelijkse statistiekenweergave.