added automated App Store screenshots via iOS simulators and fastlane deliver
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>
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
app_identifier("eu.mhsl.marianum.mobile.client")
|
||||
team_id("MY55VF3KPG")
|
||||
@@ -0,0 +1,27 @@
|
||||
default_platform(:ios)
|
||||
|
||||
# App-Store-Auslieferung über fastlane deliver. Die Screenshots erzeugt
|
||||
# ../tool/screenshots_ios.sh (Demo-Login + integration_test) direkt in
|
||||
# screenshots/de-DE/; deliver ordnet sie anhand der Pixelgröße iPhone 6,5″ bzw.
|
||||
# iPad 13″ zu.
|
||||
#
|
||||
# Authentifizierung über einen App-Store-Connect-API-Key (JSON im fastlane-
|
||||
# Format, siehe README.md). Pfad per APP_STORE_CONNECT_API_KEY setzen; die Datei
|
||||
# selbst wird per .gitignore nicht eingecheckt.
|
||||
platform :ios do
|
||||
desc "Nur Screenshots hochladen (ersetzt die vorhandenen, verändert keine Texte/Binaries)"
|
||||
lane :upload_screenshots do
|
||||
upload_to_app_store(
|
||||
api_key_path: ENV["APP_STORE_CONNECT_API_KEY"] || "fastlane/app-store-connect-api-key.json",
|
||||
skip_binary_upload: true,
|
||||
skip_metadata: true,
|
||||
skip_app_version_update: true,
|
||||
skip_screenshots: false,
|
||||
overwrite_screenshots: true,
|
||||
screenshots_path: "./fastlane/screenshots",
|
||||
precheck_include_in_app_purchases: false,
|
||||
run_precheck_before_submit: false,
|
||||
force: true, # kein HTML-Vorschau-Bestätigungsschritt
|
||||
)
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,49 @@
|
||||
# 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`).
|
||||
Reference in New Issue
Block a user