> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# Publiceren in appstores

Onderscheid een werkende build van een release die gebruikers kunnen installeren.

## Bereid uw eerste winkelinzending stap voor stap voor

Maak en test eerst een native ontwikkelingsbuild met behulp van mobiele builds. Een winkelinzending stuurt de samengestelde app en de bijbehorende vermelding ter beoordeling naar Google of Apple; het is niet hetzelfde als het openen van een Expo Go-voorbeeld. Je hebt je eigen Expo en relevante winkelontwikkelaarsaccounts nodig, een geteste HTTPS-backend, definitieve app-naam/pictogram, screenshots, ondersteuningscontact en een openbaar privacybeleid URL.

Open apps/mobile/app.json in de editor en stel vóór de eerste upload de app-naam, slug, ios.bundleIdentifier en android.package in voor uw eigen product. Open apps/mobile/eas.json en vervang waar nodig de app-ID's van het iOS-indieningsteam door uw eigen ID's. De verzonden identificatiegegevens zijn voorbeelden. Lees Mobile-builds voor de exacte velden en vraag uw codeeragent om de twee bestanden te beoordelen voordat u gaat bouwen.

Als eas niet is geïnstalleerd, voert u npm install --global eas-cli uit. Gebruik vanuit de root van de repository de onderstaande login-opdracht, voltooi de browserauthenticatie, selecteer vervolgens de build-opdracht voor één platform in Build en verzend deze vervolgens. Lees de dashboardlogboeken van de build; wacht op een succesvolle .aab of .ipa voordat u probeert in te dienen. EAS vraagt ​​om projectkoppeling en ondertekeningsreferenties; deze horen bij jouw accounts, niet bij die van de kitverkoper.

Nadat het binaire bestand is geüpload, opent u uw app in de Play Console of App Store Connect, vult u de lijst en de vereiste vragenlijsten in, voegt u werkende inloginstructies voor de revisor toe en dient u deze daar ter beoordeling in. Het uploaden van een intern concept is geen publieke release. Als de beoordeling het verzoek afwijst, opent u de exacte beleidslink in de afwijzing en corrigeert u het probleem voordat u het verzoek opnieuw indient.

[Bereid de systeemeigen build en ID's voor](https://supastack.dev/nl/docs/mobile/builds.md)

[Huidige instructies voor het indienen van de winkel van Expo](https://docs.expo.dev/submit/introduction/)

[Huidige richtlijnen voor app-beoordelingen van Apple](https://developer.apple.com/app-store/review/guidelines/)

[Release-instructies voor Google Play](https://support.google.com/googleplay/android-developer/answer/9859455)

```
corepack pnpm --filter @supastack/mobile exec eas login
```


## Stel de accounts eenmalig in

Voor inzendingen voor de Store zijn drie accounts nodig: een gratis Expo-account voor EAS Build and Submit, een Google Play Console-ontwikkelaarsregistratie en een Apple Developer Program-lidmaatschap voor iOS. Installeer de EAS CLI en voer eas login uit voordat u gaat bouwen; Het kan dagen duren voordat beide winkelinschrijvingen zijn geverifieerd, dus begin er vroeg mee.

Hernoem de applicatie-ID's vóór de eerste upload - android.package en ios.bundleIdentifier worden verzonden als com.supastack.app in apps/mobile/app.json.. Google Play vergrendelt de pakketnaam bij de eerste upload, dus een verkeerde ID betekent een nieuw app-item in plaats van een nieuwe naam.


## Laat EAS de ondertekening beheren

apps/mobile/eas.json definieert ontwikkelings-, preview- en productiebuildprofielen. Met het productieprofiel kan EAS de Android-sleutelopslag en het iOS-distributiecertificaat op zijn infrastructuur genereren en bewaren. Inspecteer ze later met eas credentials en houd lokale sleutelopslag uit de repository.

Voor geautomatiseerde Play-inzending is een JSON-sleutel van het Google Play-serviceaccount vereist, gekoppeld onder Play Console → Instellingen → API-toegang met vrijgavetoestemming. Bewaar het op apps/mobile/secrets/play-store-service-account.json — het pad dat eas.json verwacht en een door git genegeerde map. De eerste upload van een nieuwe app gebeurt nog steeds handmatig in de Play Console; eas submit neemt het over van de tweede release.


## Bouwen en vervolgens indienen

Builds draaien op de EAS-infrastructuur, dus er is geen Android Studio- of Xcode-installatie nodig voor het binaire bestand. Het productieprofiel produceert een winkelklare .aab voor Play en .ipa voor de App Store met op afstand beheerde versienummers. Het previewprofiel produceert een interne distributie APK voor QA op fysieke apparaten.

Het verzonden verzendprofiel richt zich op de interne Play-track als conceptrelease. Er komt niets bij de testers totdat je deze in de Play Console promoot nadat de beoordeling is geslaagd.

```
corepack pnpm --filter @supastack/mobile build:android
corepack pnpm --filter @supastack/mobile submit:android

corepack pnpm --filter @supastack/mobile build:ios
corepack pnpm --filter @supastack/mobile submit:ios

# Internal-testing APK for a physical device:
corepack pnpm --filter @supastack/mobile build:android:preview
```


## Vul de Play Console-formulieren in

Speel beoordelingspoortjes op zowel gedeclareerde inhoud als op het binaire bestand: een openbaar privacybeleid URL, het formulier Gegevensveiligheid, de vragenlijst voor inhoudsbeoordeling, doelgroep en categorie. Antwoord Gegevensveiligheid afhankelijk van het echte gedrag van de app: de kit verzamelt account-e-mail voor authenticatie, slaat sessietokens op in beveiligde platformopslag en praat alleen met de door u geconfigureerde API; voeg toe wat uw product erbovenop toevoegt.

Voor een iOS-app waarvoor inloggen vereist is, geeft u App Review een werkend demo-account en instructies in de beoordelingsopmerkingen. Bekijk Apple's huidige regel voor inlogdiensten en de uitzonderingen daarop voordat u sociale aanmeldingsopties kiest; de vereisten zijn afhankelijk van de daadwerkelijke inlogstroom van de app. De officiële richtlijnen zijn gelinkt in het gedeelte over de eerste indiening hierboven.


## Poortaankopen achter RevenueCat eerst

Wanneer uw app mobiele aankopen aanbiedt, configureert u de verzonden RevenueCat-stroom: stel `MOBILE_PURCHASES_PROVIDER=revenuecat` en `EXPO_PUBLIC_MOBILE_PURCHASES_PROVIDER=revenuecat` in en geef vervolgens de overeenkomende openbare iOS- of Android-SDK-sleutel op. De native app ondersteunt aankoop en herstel; na een van beide wordt de toegang vernieuwd vanaf het door de server geverifieerde recht op de werkruimte. Stripe Checkout wordt niet gebruikt in de mobiele stroom. Zorg ervoor dat de betaalmuur niet beschikbaar is wanneer aankopen zijn uitgeschakeld of de vereiste configuratie ontbreekt. Valideer geconfigureerde winkelproducten, aankoop, herstel en vernieuwing van rechten in een EAS-ontwikkelingsbuild met winkeltestaccounts. Bekijk de huidige winkelrichtlijnen voor vereisten die van toepassing zijn op uw app en regio's.


## Controlelijst vóór indiening

Bevestig elk hieronder item voordat u het verzendt met uw eigen test-app en winkelaccounts.

- android.package en ios.bundleIdentifier zijn hernoemd naar een ID waarvan u de eigenaar bent
- EXPO_PUBLIC_API_URL in de bouwomgeving wijst op de productie API
- Privacybeleid gehost op een openbare URL en gekoppeld in de winkelvermelding
- Het gegevensveiligheidsformulier komt overeen met de echte verzameling: auth-e-mail, API-verkeer, alles wat uw product toevoegt
- Werkende demo-accountgegevens in de beoordelingsnotities van de App Store
- Betaalmuur verborgen of ondersteund door een geverifieerd RevenueCat-recht
- Deeplink-retour, sessieherstel en uitloggen geverifieerd op een fysiek apparaat
- Screenshots en lijstitems die voor elke winkel zijn voorbereid


## Herstellen van een afwijzing

Afwijzingen komen met een beleidsreferentie: verhelp de aangegeven oorzaak in plaats van naar het symptoom te gissen. Als de gegevensveiligheid niet overeenkomt, betekent dit meestal dat het formulier onjuist is, en niet de app. Een afwijzing waarvoor inloggen vereist is, betekent meestal dat de beoordelingsnotities geen demo-account bevatten. Opnieuw indienen met release-opmerkingen waarin de oplossing duidelijk wordt vermeld.

De volledige walkthrough – referentieopdrachten, consolevolgorde van bewerkingen en een afwijzingsplaybook – bevindt zich in docs/mobile-store-submission.md in de repository.


## Setup en configuratie

Native publicatie vereist Apple- en/of Google-ontwikkelaarsaccounts, app-ID’s, ondertekeningsgegevens en storebeoordeling. Het EAS-productionprofiel verhoogt buildnummers; submit.production stuurt een concept naar de interne Google Play-testtrack. Bundle-ID en scheme staan in apps/mobile/app.config.ts.

Webdeploys en store-releases volgen verschillende schema’s. Houd de API compatibel met de oudste ondersteunde build of schakel nieuwe functies via serverstatus in.

```
corepack pnpm --filter @supastack/mobile build
eas build --profile production --platform ios
eas build --profile production --platform android
eas submit --profile production --platform ios
eas submit --profile production --platform android
```


## Implementatieworkflow

Configureer vóór het inschakelen van native aankopen het RevenueCat-project, de storeproducten en entitlement. De serversleutel en webhook-Authorization blijven server-side; iOS- en Android-SDK-keys zijn publieke buildwaarden. Schakel sandbox-toegang in productie uit.

Bereid producteigen storemateriaal voor, zoals screenshots, beschrijvingen, privacyantwoorden en aankoopinformatie. De app controleert aankopen en herstel aan de hand van de actuele subscriberstatus op de server voordat toegang wordt getoond.


## Verificatie en probleemoplossing

Test op een fysiek apparaat exact het ingediende artifact: aanmeldcallback, sessieherstel, aankoop en herstel, serververversing van entitlements, workspacewissel, deep links en offline gedrag. Een lokale Expo-export is geen storeklare build.

Noteer buildnummer, storetrack, beoordelingsstatus en doel-API-omgeving. Een afwijzing hoort bij het releaseproces; pas metadata of featurevlaggen aan in plaats van zonder bewijs codeproblemen te raden.

Volgende omgeving: het Desktop-tabblad doorloopt hetzelfde product in de Tauri-shell.


## Volgende

[Desktop-overzicht](https://supastack.dev/nl/docs/desktop.md)
