Files
certain/ios/project.yml
T
GuidoandClaude Opus 5 ffe1870bb8 build: Die iOS-App laesst sich mit einem Befehl bauen, starten und testen
Bisher musste das Xcode-Projekt von Hand angelegt werden, und der Swift-Code
wurde blind geschrieben, ohne ihn je zu uebersetzen. ios/project.yml
beschreibt das Projekt jetzt in 50 Zeilen; xcodegen generate macht daraus
Certain.xcodeproj. Das erzeugte Projekt liegt mit im Repository, damit man es
ohne xcodegen einfach oeffnen kann - geaendert wird aber die project.yml.

Festgelegt nach dem Muster von Vorrania: Buendelkennung com.scarriffle.certain,
Team PP34X97WS3, iPhone und iPad, Entwicklungssprache Deutsch, iOS 26 als
Mindestversion. Sprachfassung Swift 5, weil der Code nicht auf die strikte
Nebenlaeufigkeitspruefung von Swift 6 hin geschrieben ist.

Stufe 1 uebersetzt damit fehlerfrei, die 28 Tests laufen durch, und die App
startet im Simulator bei der Serverabfrage.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-21 05:45:42 +02:00

74 lines
2.4 KiB
YAML

# XcodeGen-Spezifikation - erzeugt das Xcode-Projekt aus diesen Quellen.
# brew install xcodegen && cd ios && xcodegen generate && open Certain.xcodeproj
# Die Datei ist die Wahrheit, nicht das erzeugte Certain.xcodeproj: wer einen
# Ordner hinzufuegt, laeuft einmal "xcodegen generate" und ist fertig.
name: Certain
options:
bundleIdPrefix: com.scarriffle
# Ohne das baut Xcode eine englische App: Datumsauswahl und Monatsnamen
# erscheinen dann als "10. Dec 2027" statt "10. Dez. 2027".
developmentLanguage: de
deploymentTarget:
iOS: "26.0"
createIntermediateGroups: true
targets:
Certain:
type: application
platform: iOS
sources:
- path: Anmeldung
- path: App
- path: Bausteine
- path: Einstellungen
- path: Konten
- path: Modelle
- path: Netzwerk
# Deutsch und Englisch, zeilengleich gehalten.
- path: Texte
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.scarriffle.certain
# Signing automatisch; wer mit einem anderen Apple-Konto baut, traegt
# hier seine Team-ID ein (Xcode: Signing & Capabilities -> Team).
CODE_SIGN_STYLE: Automatic
DEVELOPMENT_TEAM: PP34X97WS3
MARKETING_VERSION: "0.1"
CURRENT_PROJECT_VERSION: "1"
# iPhone und iPad, zweispaltig gedacht.
TARGETED_DEVICE_FAMILY: "1,2"
# Sprachfassung 5: der Code ist nicht auf die strikte
# Nebenlaeufigkeitspruefung von Swift 6 hin geschrieben. Umstellen,
# wenn die Uebergaenge AppZustand <-> CertainClient geprueft sind.
SWIFT_VERSION: "5.0"
# Keine eigene Info.plist pflegen - Xcode erzeugt sie aus diesen Werten.
GENERATE_INFOPLIST_FILE: YES
INFOPLIST_KEY_CFBundleDisplayName: Certain
INFOPLIST_KEY_UILaunchScreen_Generation: YES
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents: YES
INFOPLIST_KEY_UISupportedInterfaceOrientations: "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"
CertainTests:
type: bundle.unit-test
platform: iOS
sources:
- path: Tests
dependencies:
- target: Certain
settings:
base:
SWIFT_VERSION: "5.0"
GENERATE_INFOPLIST_FILE: YES
schemes:
Certain:
build:
targets:
Certain: all
run:
config: Debug
test:
config: Debug
targets:
- CertainTests