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.

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 → 418.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:
- Ga naar je app → TestFlight
- Wacht tot de build verschijnt die je eerder hebt geüpload
- Klik op de build → vul een Test Information in (wat moeten testrs controleren?)
- 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):
- Ga naar Internal Group → klik op
+ - 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):
- Maak een External Group aan
- Voeg de build toe
- Klik op Submit for Beta App Review
- 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:
- Ga naar je app → macOS App → 1.0 Prepare for Submission
- Vul alle verplichte velden in (zie H17)
- Klik op Add for Review
- 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:
- In Xcode: verhoog Version naar
1.1.0en Build naar een hoger nummer (bijv.2) - Maak een nieuwe Archive: Product > Archive
- Upload via Distribute App > App Store Connect > Upload
- In App Store Connect: maak een nieuwe versie aan → + Version or Platform → vul de What’s New-tekst in
- 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.
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
- 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?
- 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.
- 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.