Files
FeelAloud/docs/TESTFLIGHT.md
2026-07-22 22:18:33 +02:00

134 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TestFlight- und Release-Ablauf
## Voraussetzungen
- Mac mit Xcode 26 oder neuer
- Apple Developer Program-Mitgliedschaft
- Berechtigung als Account Holder, Admin oder App Manager in App Store Connect
- Apple-Intelligence-kompatibles Test-iPhone mit iOS 26 oder neuer
- öffentlich erreichbare Support- und Datenschutz-URLs für eine spätere
App-Store-Veröffentlichung
## 1. Bundle-ID und Signing vorbereiten
1. `FeelAloud.xcodeproj` öffnen.
2. Target **FeelAloud** auswählen.
3. Unter **Signing & Capabilities** das richtige Team wählen.
4. Die voreingestellte Bundle-ID lautet `de.feelaloud`.
5. Falls sie im gewählten Team nicht verfügbar ist, eine dauerhaft eindeutige
Bundle-ID festlegen. Nach dem ersten Upload sollte sie nicht mehr geändert
werden.
6. **Automatically manage signing** aktiviert lassen, sofern kein eigener
manueller Signing-Prozess verwendet wird.
Zertifikate, `.p12`-Dateien, Provisioning Profiles und private Schlüssel gehören
nicht ins Git-Repository.
## 2. App in App Store Connect anlegen
1. In App Store Connect **Apps → + → New App** wählen.
2. Plattform **iOS** auswählen.
3. Primärsprache festlegen.
4. Als Arbeitsname **FeelAloud** verwenden.
5. Die zuvor registrierte Bundle-ID auswählen.
6. Eine interne SKU vergeben, beispielsweise `feelaloud-ios-001`.
Mögliche Metadaten für die spätere Produktseite:
| Feld | Entwurf |
| --- | --- |
| Name | `FeelAloud Mood & Voice Diary` |
| Untertitel | `Private check-ins and insights` |
| Kategorie | Health & Fitness |
| Altersfreigabe | Im App-Store-Fragebogen bestimmen |
Die Namensverfügbarkeit wird erst in App Store Connect verbindlich sichtbar.
## 3. Release-Konfiguration prüfen
Vor jedem Upload:
- `MARKETING_VERSION` kontrollieren, aktuell `1.0`;
- `CURRENT_PROJECT_VERSION` erhöhen, aktuell `1`;
- App-Icon und Display Name prüfen;
- Mikrofon- und Speech-Nutzungstexte kontrollieren;
- Privacy Manifest und App Privacy Report prüfen;
- die vollständige Checkliste in `QA-CHECKLIST.md` auf einem echten Gerät
durchführen;
- sicherstellen, dass keine Secrets oder personenbezogenen Testexporte im
Repository liegen.
Jeder Upload zu App Store Connect benötigt eine neue Build-Nummer.
## 4. Archiv erstellen und hochladen
1. In Xcode als Ziel **Any iOS Device (arm64)** oder ein angeschlossenes iPhone
auswählen.
2. **Product → Archive** wählen.
3. Im Organizer **Distribute App** öffnen.
4. **App Store Connect → Upload** auswählen.
5. Automatische Signing- und Symbol-Optionen prüfen.
6. Validierung abschließen und Build hochladen.
7. Die Verarbeitung in App Store Connect abwarten.
Alternativ kann der Upload über Xcode Cloud automatisiert werden, sobald ein
geeigneter macOS-CI-Prozess eingerichtet ist.
## 5. Interne Tests
1. In App Store Connect die App öffnen.
2. Tab **TestFlight** auswählen.
3. Testinformationen und Kontakt-E-Mail hinterlegen.
4. Eine interne Testergruppe anlegen.
5. Den verarbeiteten Build der Gruppe zuweisen.
6. Testende installieren die App über TestFlight.
Interne Tests sind der schnellste Weg für Teammitglieder. Für Personen außerhalb
des App-Store-Connect-Teams ist ein externer Test erforderlich.
## 6. Externe Tests
1. Externe Gruppe anlegen und Build hinzufügen.
2. Beta-Beschreibung, Testschwerpunkte und Kontaktinformationen ausfüllen.
3. Build zur Beta App Review einreichen.
4. Nach Freigabe per E-Mail oder öffentlichem TestFlight-Link einladen.
Empfohlener Testhinweis:
> FeelAloud benötigt ein Apple-Intelligence-kompatibles iPhone mit iOS 26.
> Bitte prüfe Spracheingabe, lokale Auswertung, tägliche Check-ins,
> Erinnerungen und Excel-Export. Die App ist kein Medizinprodukt.
## 7. Empfohlene App-Review-Notizen
- Die App besitzt kein Login und kein Backend.
- Mikrofon und Speech Recognition werden nur für einen aktiv gestarteten
Spracheintrag verwendet.
- Die Spracherkennung wird auf dem Gerät erzwungen.
- Foundation Models strukturieren Text lokal; alle Werte können vor dem
Speichern korrigiert werden.
- Erinnerungen sind lokale Notifications.
- Ein manueller Eingabepfad ist vorhanden, falls lokale Modelle nicht bereit
sind.
- Testgerät muss Apple Intelligence und die deutsche Spracherkennung
unterstützen.
## 8. Veröffentlichungsvoraussetzungen außerhalb TestFlight
Vor einem öffentlichen App-Store-Release zusätzlich erledigen:
- öffentliche Datenschutz- und Support-Seite bereitstellen;
- App-Store-Datenschutzfragebogen mit dem finalen Build abgleichen;
- Marken- und Namensprüfung abschließen;
- Screenshots für alle verlangten iPhone-Größen erstellen;
- Beschreibung, Keywords, Copyright und Review-Kontakt ergänzen;
- Datenlöschung innerhalb der App prüfen beziehungsweise implementieren;
- medizinische Aussagen und Krisenhinweise rechtlich prüfen;
- Release Candidate auf mehreren echten Geräten testen.
## Offizielle Referenzen
- [Apple: TestFlight](https://developer.apple.com/testflight/)
- [Apple: Foundation Models](https://developer.apple.com/documentation/foundationmodels)
- [Apple: Required Reason APIs](https://developer.apple.com/documentation/bundleresources/describing-use-of-required-reason-api)