tool/screenshots_ios.sh runs the existing demo-login integration test on iPhone 6.5" (iPhone 14 Plus) and iPad 13" simulators, stores the canonical PNGs under materials/screenshots and mirrors alpha-free JPEGs to ios/fastlane/screenshots for `fastlane upload_screenshots`. Fixed the demo router answering timetable/custom-events with a week, which crashed the inline iOS widget refresh after a demo login. The screenshot test now skips the one-time Talk notification dialog and waits longer for the app shell on cold simulators. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
50 lines
1.6 KiB
Markdown
50 lines
1.6 KiB
Markdown
# Fastlane – App-Store-Screenshots & Upload
|
||
|
||
iOS-Gegenstück zu `android/fastlane`. Die App muss dafür **nicht** neu gebaut
|
||
werden – der Demo-Modus (`demo@`-Login) liefert die kompletten Inhalte aus
|
||
Fixtures.
|
||
|
||
## 1. Screenshots aufnehmen
|
||
|
||
Aus dem **Client**-Wurzelverzeichnis:
|
||
|
||
```bash
|
||
tool/screenshots_ios.sh
|
||
```
|
||
|
||
Fährt „iPhone 14 Plus“ (6,5″, 1284×2778) und „iPad Pro 13-inch (M5)“
|
||
(13″, 2064×2752) nacheinander durch und legt die PNGs in
|
||
`materials/screenshots/{ios/6-5-inch,ipados/13-inch}/` sowie als JPEG-Upload-Kopie
|
||
(App Store Connect lehnt Alpha-Kanäle ab) in `screenshots/de-DE/` ab. Fehlende
|
||
Simulatoren legt das Skript selbst an.
|
||
|
||
- Nur eine Größe: `PROFILES="iphone" tool/screenshots_ios.sh`
|
||
- Andere Simulatoren: `IPHONE_SIM="iPhone 11 Pro Max" IPAD_SIM="…" tool/screenshots_ios.sh`
|
||
|
||
App und Schlüsselbund der verwendeten Simulatoren werden dabei zurückgesetzt.
|
||
|
||
## 2. Hochladen
|
||
|
||
fastlane installieren (`brew install fastlane`), in App Store Connect unter
|
||
*Benutzer und Zugriff → Integrationen → App Store Connect API* einen Key mit
|
||
Rolle *App-Manager* anlegen und als JSON ablegen:
|
||
|
||
```json
|
||
{
|
||
"key_id": "ABC123XYZ",
|
||
"issuer_id": "00000000-0000-0000-0000-000000000000",
|
||
"key": "-----BEGIN PRIVATE KEY-----\n…\n-----END PRIVATE KEY-----",
|
||
"in_house": false
|
||
}
|
||
```
|
||
|
||
```bash
|
||
export APP_STORE_CONNECT_API_KEY=/pfad/zu/app-store-connect-api-key.json
|
||
cd ios
|
||
fastlane upload_screenshots
|
||
```
|
||
|
||
Die Screenshots landen in der aktuell bearbeitbaren App-Store-Version
|
||
(„Vorbereitung für Einreichung“); vorhandene Screenshots werden ersetzt. Der
|
||
API-Key wird **nicht** eingecheckt (siehe `.gitignore`).
|