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:
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user