iOS: archief-optie voor een .ipa (App Store Connect) en stappen in docs

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014MGLqt1ukfnarqhut9ifcx
This commit is contained in:
jf
2026-10-30 05:18:33 +00:00
co-authored by Claude Sonnet 5.5
parent 88a89bfa01
commit 44064d2ea2
2 changed files with 64 additions and 1 deletions
+36
View File
@@ -80,6 +80,42 @@ meldingen, en verder werkt alles. Dat komt erbij zodra het account er is, want h
vast: een APNs-sleutel, de Push Notifications-capability, een provisioning profile en een
`Entitlements.plist`.
## Een .ipa voor TestFlight en de App Store
Kan zodra het Apple Developer Program actief is (Kwik-Bit Automatisering B.V., aangemeld op
27 oktober 2026, betaald; de accountpagina toont geen "Pending" meer). Stappen, in deze volgorde:
1. **Voorwaarden accepteren** op developer.apple.com/account (de nieuwe licentieovereenkomst,
uiterlijk 14 november 2026). Alleen de accounthouder kan dat. Zonder dit werken Certificates,
App Store Connect en de API niet meer.
2. **App-ID registreren**: Certificates, IDs & Profiles > Identifiers > App IDs, bundel-ID
`nl.mijnbesluit.app` (gelijk aan `ApplicationId`). Capabilities: voorlopig geen extra;
Push Notifications komt later met APNs.
3. **Distributiecertificaat** (Apple Distribution) maken: Xcode > Settings > Accounts > het team >
Manage Certificates > + > Apple Distribution, op de Mac waar je bouwt. De private sleutel
blijft in de sleutelhanger van die Mac; bij een gehuurde Mac is die weg als de Mac weg is,
dus bewaar er een export van (met wachtwoord, buiten git).
4. **App Store-profiel** (Provisioning Profiles > + > App Store Connect) voor `nl.mijnbesluit.app`
met dat certificaat; downloaden en dubbelklikken op de Mac. Noteer de naam van het profiel.
5. **App-record** in App Store Connect (Apps > + > Nieuwe app): naam MijnBesluit, bundel-ID
`nl.mijnbesluit.app`, primaire taal Nederlands, SKU naar keuze.
6. **Bouwen**: op de Mac, met de namen uit stap 3 en 4:
```
export IOS_SIGN_KEY="Apple Distribution: Kwik-Bit Automatisering B.V. (TEAMID)"
export IOS_PROFILE="<naam van het profiel>"
tools/ios-bouwen.sh archief
```
Het script toont eerst welke certificaten en profielen er staan, maakt dan de `.ipa`
(`dotnet publish`, ios-arm64, Release, `ArchiveOnBuild`) en zegt waar hij staat. Het bouwnummer
(`ApplicationVersion`) moet bij elke upload hoger zijn dan de vorige.
7. **Uploaden** met de app Transporter (Mac App Store, gratis): inloggen met het Apple-account,
`.ipa` erin slepen. Na enkele minuten staat de build onder TestFlight; de exportverklaring en
de App Privacy-antwoorden volgen in App Store Connect (zie hieronder).
Niet gedaan en niet getest: dit script en deze stappen zijn nog nooit tegen Apple gedraaid.
## Twee vallen waar je vroeg in loopt
**Ontbrekende gebruikstoelichting = de app sluit.** Vraag je om Face ID zonder
+28 -1
View File
@@ -4,6 +4,9 @@
# tools/ios-bouwen.sh controle alleen kijken of de Mac er klaar voor is
# tools/ios-bouwen.sh simulator bouwen en starten in de iPhone-simulator (geen account nodig)
# tools/ios-bouwen.sh toestel bouwen en op een aangesloten iPhone zetten (Apple-ID / team nodig)
# tools/ios-bouwen.sh archief een .ipa voor App Store Connect / TestFlight maken
# (betaald Apple Developer Program, distributiecertificaat en
# App Store-profiel nodig; zie docs/iOS-app.md)
#
# Eerste keer: chmod +x tools/ios-bouwen.sh
set -euo pipefail
@@ -70,7 +73,31 @@ case "$MODUS" in
echo "Gebouwd. Installeren gaat het makkelijkst via Visual Studio (Pair to Mac) of"
echo "Xcode > Window > Devices and Simulators, of: dotnet build -t:Run -p:_DeviceName=<UDID>"
;;
archief)
controle
# Namen, geen geheimen: de exacte naam van het distributiecertificaat en van het App Store-profiel.
# export IOS_SIGN_KEY="Apple Distribution: Kwik-Bit Automatisering B.V. (TEAMID)"
# export IOS_PROFILE="MijnBesluit App Store"
# Zie de lijst hieronder voor wat er op deze Mac staat.
stap "Distributiecertificaten op deze Mac"
security find-identity -v -p codesigning | grep -i 'Apple Distribution' \
|| echo "(geen 'Apple Distribution'-certificaat gevonden; maak er een in Xcode > Settings > Accounts > Manage Certificates)"
stap "Provisioning profiles op deze Mac"
ls "$HOME/Library/MobileDevice/Provisioning Profiles" 2>/dev/null || echo "(geen profielen gevonden)"
[[ -n "${IOS_SIGN_KEY:-}" ]] || stop "zet IOS_SIGN_KEY op de exacte naam van het 'Apple Distribution'-certificaat (zie de lijst hierboven)."
[[ -n "${IOS_PROFILE:-}" ]] || stop "zet IOS_PROFILE op de naam van het App Store-profiel voor nl.mijnbesluit.app."
stap "Archief maken (ios-arm64, Release)"
# Let op: ApplicationVersion (bouwnummer) moet bij elke upload hoger zijn dan de vorige.
dotnet publish "$PROJECT" -f "$TFM" -c Release -p:MetIos=true -p:MetAndroid=false \
-p:RuntimeIdentifier=ios-arm64 -p:ArchiveOnBuild=true \
-p:CodesignKey="$IOS_SIGN_KEY" -p:CodesignProvision="$IOS_PROFILE"
echo
echo "Klaar. De .ipa staat onder:"
find "$(dirname "$PROJECT")/bin/Release" -name '*.ipa' -print 2>/dev/null || true
echo "Uploaden: open de app Transporter (gratis, Mac App Store), log in met het Apple-account en"
echo "sleep de .ipa erin. Daarna staat de build na enkele minuten in App Store Connect > TestFlight."
;;
*)
stop "onbekende optie '$MODUS' (kies: controle, simulator of toestel)"
stop "onbekende optie '$MODUS' (kies: controle, simulator, toestel of archief)"
;;
esac