# 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: Abos - path: Arbeitsliste - path: Bausteine - path: Buchungen - path: Budget - path: Dashboard - path: Einstellungen - path: Konten - path: Modelle - path: Nebenraeume - path: Netzwerk # Deutsch und Englisch, zeilengleich gehalten. - path: Texte # Icon-Composer-Buendel (Ordner). Als Datei einhaengen, sonst zerlegt # XcodeGen es in eine Gruppe und actool findet das Icon nicht. - path: AppIcon.icon type: file buildPhase: resources settings: base: PRODUCT_BUNDLE_IDENTIFIER: com.scarriffle.certain ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon # 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" # Nur iPhone, nur Hochformat - am Rechner gibt es die Weboberflaeche. TARGETED_DEVICE_FAMILY: "1" SUPPORTED_PLATFORMS: "iphoneos iphonesimulator" SUPPORTS_MACCATALYST: NO SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD: NO SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD: NO INFOPLIST_KEY_LSApplicationCategoryType: "public.app-category.finance" # 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" INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad: "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait" # Ohne diesen Text stuerzt die App beim ersten Face-ID-Versuch ab. INFOPLIST_KEY_NSFaceIDUsageDescription: "Damit entsperrst du Certain, ohne deine PIN zu tippen." CertainTests: type: bundle.unit-test platform: iOS sources: # Tests/Fixtures/antworten.json landet als Ressource im Buendel - # der Test "Serverantworten" liest sie von dort. - 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