Beim ersten Start fuehrt kein Weg an einer sechsstelligen PIN vorbei. Danach sperrt die App beim Kaltstart und beim Wegschalten; kommt man binnen einer Minute zurueck, geht sie ohne Nachfrage wieder auf. Face ID zuerst, die PIN als Rueckfallweg und als einziger Weg ohne Biometrie. Nach fuenf falschen PINs meldet die App ab. Gesperrt wird schon bei inactive, nicht erst im Hintergrund - sonst stuenden die Kontostaende im App-Umschalter. Von der PIN liegt nur ein gesalzener SHA-256 im Schluesselbund. Die Gerätemarke selbst bleibt wie bisher abgelegt: Die Sperre verdeckt die Oberflaeche, sie verschluesselt nichts. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
96 lines
3.5 KiB
YAML
96 lines
3.5 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: 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
|