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>
74 lines
2.4 KiB
YAML
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
|