diff --git a/.gitignore b/.gitignore
index 4d6e910..f54e52f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,10 +22,10 @@ deploy/.env
Thumbs.db
# iOS (Schritt 2)
+# Das Projekt selbst (Vorrania.xcodeproj) ist eingecheckt, damit man ohne
+# XcodeGen bauen kann. Nur die persoenlichen Zustaende bleiben draussen.
ios/**/xcuserdata/
ios/**/DerivedData/
-# Wird aus ios/project.yml erzeugt ("xcodegen generate")
-ios/ProjectGood.xcodeproj/
# Lokale Python-Umgebung fuer Tests
backend/.venv/
diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md
index b966128..8991ca3 100644
--- a/docs/ROADMAP.md
+++ b/docs/ROADMAP.md
@@ -47,7 +47,7 @@ Selfhostbare Lebensmittel-Lagerverwaltung. Aufbau in mehreren Schritten.
nie ungefragt übernommen.
- Auslagern-Flow: scannen → Menge/Einheit, FEFO oder Chargenauswahl.
- Einkaufsliste, „bald ablaufend“ und Produktliste mit Bearbeiten.
-- Home-Screen-Shortcuts und URL-Schema `projectgood://checkin` / `checkout`.
+- Home-Screen-Shortcuts und URL-Schema `vorrania://checkin` / `checkout`.
- Anzeige folgt dem Datumsformat aus den Servereinstellungen.
## Schritt 2b – MHD-Genauigkeit und Benennung ✅
diff --git a/ios/README.md b/ios/README.md
index 1b8efb4..26bf6f3 100644
--- a/ios/README.md
+++ b/ios/README.md
@@ -15,14 +15,14 @@ REST-API wie die Web-Oberfläche.
brew install xcodegen
cd ios
xcodegen generate
-open ProjectGood.xcodeproj
+open Vorrania.xcodeproj
```
`project.yml` beschreibt das Projekt vollständig (Bundle-ID, Info.plist,
Shortcuts, URL-Schema).
### Variante B – ohne XcodeGen
1. Xcode → *File ▸ New ▸ Project…* → **App**, Interface **SwiftUI**, Sprache **Swift**
-2. Produktname `ProjectGood`, Bundle-ID z. B. `com.scarriffle.projectgood`
+2. Produktname `Vorrania`, Bundle-ID z. B. `com.scarriffle.vorrania`
3. Die von Xcode erzeugte `ContentView.swift` und `…App.swift` löschen
4. Den Ordner `Sources/` per Drag & Drop ins Projekt ziehen („Copy items if needed")
5. In den Target-Einstellungen die mitgelieferte `Sources/Info.plist` als Info.plist setzen
@@ -47,7 +47,7 @@ Es gibt zwei Wege direkt in den Scan-Bildschirm:
**Eigene Symbole auf dem Home-Bildschirm** – über die Apple-App *Kurzbefehle*:
1. Kurzbefehle ▸ **+** ▸ Aktion *URL öffnen*
-2. URL `projectgood://checkin` (bzw. `projectgood://checkout`) eintragen
+2. URL `vorrania://checkin` (bzw. `vorrania://checkout`) eintragen
3. Kurzbefehl benennen, dann ▸ *Zum Home-Bildschirm hinzufügen*
Beide Wege öffnen die App **direkt in der Kamera**.
@@ -55,7 +55,7 @@ Beide Wege öffnen die App **direkt in der Kamera**.
## Aufbau der Quellen
| Datei | Inhalt |
|---|---|
-| `ProjectGoodApp.swift` | App-Einstieg, Schnellaktionen, URL-Schema |
+| `VorraniaApp.swift` | App-Einstieg, Schnellaktionen, URL-Schema |
| `Session.swift` | Server-Adresse (UserDefaults) und Token (Keychain) |
| `APIClient.swift` | REST-Aufrufe gegen `/api/...` |
| `Models.swift` | Codable-Typen passend zu `backend/app/schemas.py` |
diff --git a/ios/Sources/Info.plist b/ios/Sources/Info.plist
index b028e4e..87f2df5 100644
--- a/ios/Sources/Info.plist
+++ b/ios/Sources/Info.plist
@@ -63,7 +63,7 @@
UIApplicationShortcutItemType
- com.scarriffle.projectgood.checkin
+ com.scarriffle.vorrania.checkin
UIApplicationShortcutItemTitle
Einlagern
UIApplicationShortcutItemIconType
@@ -71,7 +71,7 @@
UIApplicationShortcutItemType
- com.scarriffle.projectgood.checkout
+ com.scarriffle.vorrania.checkout
UIApplicationShortcutItemTitle
Auslagern
UIApplicationShortcutItemIconType
@@ -79,15 +79,15 @@
-
+
CFBundleURLTypes
CFBundleURLName
- com.scarriffle.projectgood
+ com.scarriffle.vorrania
CFBundleURLSchemes
- projectgood
+ vorrania
diff --git a/ios/Sources/Session.swift b/ios/Sources/Session.swift
index 70d5480..a9b40d7 100644
--- a/ios/Sources/Session.swift
+++ b/ios/Sources/Session.swift
@@ -75,7 +75,7 @@ final class Session: ObservableObject {
/// Minimaler Keychain-Zugriff für ein einzelnes Token.
enum Keychain {
- private static let service = "com.scarriffle.projectgood"
+ private static let service = "com.scarriffle.vorrania"
static func write(_ value: String, account: String) {
delete(account: account)
diff --git a/ios/Sources/ProjectGoodApp.swift b/ios/Sources/VorraniaApp.swift
similarity index 92%
rename from ios/Sources/ProjectGoodApp.swift
rename to ios/Sources/VorraniaApp.swift
index 0fdc386..5bbf739 100644
--- a/ios/Sources/ProjectGoodApp.swift
+++ b/ios/Sources/VorraniaApp.swift
@@ -15,16 +15,16 @@ final class Router: ObservableObject {
if type.hasSuffix("checkout") { route = .checkout }
}
- /// projectgood://checkin bzw. projectgood://checkout
+ /// vorrania://checkin bzw. vorrania://checkout
func handle(url: URL) {
- guard url.scheme == "projectgood" else { return }
+ guard url.scheme == "vorrania" else { return }
let target = (url.host ?? url.path.replacingOccurrences(of: "/", with: "")).lowercased()
if let route = Route(rawValue: target) { self.route = route }
}
}
@main
-struct ProjectGoodApp: App {
+struct VorraniaApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) private var appDelegate
@StateObject private var session = Session.shared
@StateObject private var router = Router()
@@ -52,7 +52,7 @@ struct ProjectGoodApp: App {
/// Nimmt Home-Screen-Quick-Actions entgegen (auch beim Kaltstart).
final class AppDelegate: NSObject, UIApplicationDelegate {
- static let shortcutNotification = Notification.Name("ProjectGoodShortcut")
+ static let shortcutNotification = Notification.Name("VorraniaShortcut")
static var pendingShortcut: String?
func application(_ application: UIApplication,
diff --git a/ios/Vorrania.xcodeproj/project.pbxproj b/ios/Vorrania.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..7f09030
--- /dev/null
+++ b/ios/Vorrania.xcodeproj/project.pbxproj
@@ -0,0 +1,373 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 77;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 0D8629839E465D80EC58E74B /* ProductViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 369B9841E43E727ACA2E2A2A /* ProductViews.swift */; };
+ 0E0AE6CC6FBA82B190BBC36F /* CheckInFormView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E56353CB483EFB1CCD09D8 /* CheckInFormView.swift */; };
+ 25FC3913EFFA37D013328FDE /* CategoryPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDD672F65352DA0D122EC9AE /* CategoryPicker.swift */; };
+ 39F1F17DCB4E491652D08DEE /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 378F1B2DE567B62169E84426 /* APIClient.swift */; };
+ 44F08407AF69F5B7FD15F932 /* ScannerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AF19A735AC17451B57BF5BB /* ScannerView.swift */; };
+ 4F86620DF8303DB02314DB5A /* CheckInView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0365A16FEAE3F2BEC321E68A /* CheckInView.swift */; };
+ 6816C33381DF52A96E5BB303 /* Models.swift in Sources */ = {isa = PBXBuildFile; fileRef = 314B1BB7220691A7423E8929 /* Models.swift */; };
+ 75F805F8AE93479933BD811D /* VorraniaApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9948219CDDC4188EA4298F22 /* VorraniaApp.swift */; };
+ 7738E209D4D32BFD514B76F5 /* ListViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6785CD9174067EFBB2B9043 /* ListViews.swift */; };
+ 7E2FA69E0C3BED650E91A7E9 /* AppIcon.icon in Resources */ = {isa = PBXBuildFile; fileRef = 099CCD94907BE0179B7D5742 /* AppIcon.icon */; };
+ 9B0A1A7C19764857BDC6ED26 /* RootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4741D0E95875919C921945CF /* RootView.swift */; };
+ A7017E6C0532A650439AED7B /* BestBeforeText.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA022A27118BEEEC5912ECDC /* BestBeforeText.swift */; };
+ AAF27320D2A67C994C29C26F /* ProductDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F574168AA0F849D46C384EE /* ProductDetailView.swift */; };
+ D70CB183C868FF0143A6A5E7 /* DisplaySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAC97A555856C6C5DD353E25 /* DisplaySettings.swift */; };
+ DFA55EF4ACA34537F445E998 /* Session.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD2F9406BD0D4F0D30FED345 /* Session.swift */; };
+ E9EA455CACB6ED5951B114C3 /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A75926511854BB8EE316ED3A /* LoginView.swift */; };
+ ED61DAE4824165D6D87F8C1D /* DateScanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 717C8EB336170526F5F3E695 /* DateScanView.swift */; };
+ F6C7E913CAB0FAF1826E6BD3 /* CheckOutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC0DDD06332E567E70CA842F /* CheckOutView.swift */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 0365A16FEAE3F2BEC321E68A /* CheckInView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckInView.swift; sourceTree = ""; };
+ 099CCD94907BE0179B7D5742 /* AppIcon.icon */ = {isa = PBXFileReference; lastKnownFileType = wrapper.icon; path = AppIcon.icon; sourceTree = ""; };
+ 314B1BB7220691A7423E8929 /* Models.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Models.swift; sourceTree = ""; };
+ 369B9841E43E727ACA2E2A2A /* ProductViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductViews.swift; sourceTree = ""; };
+ 378F1B2DE567B62169E84426 /* APIClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIClient.swift; sourceTree = ""; };
+ 4741D0E95875919C921945CF /* RootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootView.swift; sourceTree = ""; };
+ 4BF4E4F5524B15728CEEE116 /* Vorrania.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Vorrania.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 6F574168AA0F849D46C384EE /* ProductDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductDetailView.swift; sourceTree = ""; };
+ 717C8EB336170526F5F3E695 /* DateScanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateScanView.swift; sourceTree = ""; };
+ 8AF19A735AC17451B57BF5BB /* ScannerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScannerView.swift; sourceTree = ""; };
+ 9948219CDDC4188EA4298F22 /* VorraniaApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VorraniaApp.swift; sourceTree = ""; };
+ 99E56353CB483EFB1CCD09D8 /* CheckInFormView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckInFormView.swift; sourceTree = ""; };
+ A6785CD9174067EFBB2B9043 /* ListViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListViews.swift; sourceTree = ""; };
+ A75926511854BB8EE316ED3A /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = ""; };
+ AA022A27118BEEEC5912ECDC /* BestBeforeText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BestBeforeText.swift; sourceTree = ""; };
+ AAC97A555856C6C5DD353E25 /* DisplaySettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisplaySettings.swift; sourceTree = ""; };
+ AD2F9406BD0D4F0D30FED345 /* Session.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Session.swift; sourceTree = ""; };
+ CDD672F65352DA0D122EC9AE /* CategoryPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CategoryPicker.swift; sourceTree = ""; };
+ DC0DDD06332E567E70CA842F /* CheckOutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckOutView.swift; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXGroup section */
+ 5216EA3D3DA41052FD0202A7 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ 378F1B2DE567B62169E84426 /* APIClient.swift */,
+ AA022A27118BEEEC5912ECDC /* BestBeforeText.swift */,
+ CDD672F65352DA0D122EC9AE /* CategoryPicker.swift */,
+ 99E56353CB483EFB1CCD09D8 /* CheckInFormView.swift */,
+ 0365A16FEAE3F2BEC321E68A /* CheckInView.swift */,
+ DC0DDD06332E567E70CA842F /* CheckOutView.swift */,
+ 717C8EB336170526F5F3E695 /* DateScanView.swift */,
+ AAC97A555856C6C5DD353E25 /* DisplaySettings.swift */,
+ A6785CD9174067EFBB2B9043 /* ListViews.swift */,
+ A75926511854BB8EE316ED3A /* LoginView.swift */,
+ 314B1BB7220691A7423E8929 /* Models.swift */,
+ 6F574168AA0F849D46C384EE /* ProductDetailView.swift */,
+ 369B9841E43E727ACA2E2A2A /* ProductViews.swift */,
+ 4741D0E95875919C921945CF /* RootView.swift */,
+ 8AF19A735AC17451B57BF5BB /* ScannerView.swift */,
+ AD2F9406BD0D4F0D30FED345 /* Session.swift */,
+ 9948219CDDC4188EA4298F22 /* VorraniaApp.swift */,
+ );
+ path = Sources;
+ sourceTree = "";
+ };
+ 5612AB3DD4CD09397A8F1BAB = {
+ isa = PBXGroup;
+ children = (
+ 099CCD94907BE0179B7D5742 /* AppIcon.icon */,
+ 5216EA3D3DA41052FD0202A7 /* Sources */,
+ 9BD53E938DBCB7F0CF657753 /* Products */,
+ );
+ sourceTree = "";
+ };
+ 9BD53E938DBCB7F0CF657753 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 4BF4E4F5524B15728CEEE116 /* Vorrania.app */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ F94BFD4F59EC4E80E6CE55C2 /* Vorrania */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = ED9476E156CE913FF3C1E49E /* Build configuration list for PBXNativeTarget "Vorrania" */;
+ buildPhases = (
+ 08E03A34841D4B2D2C7E2E81 /* Sources */,
+ 049B3FB4A4D974E54814E40C /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = Vorrania;
+ packageProductDependencies = (
+ );
+ productName = Vorrania;
+ productReference = 4BF4E4F5524B15728CEEE116 /* Vorrania.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ B35524A6F4D28034E6687EE2 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ BuildIndependentTargetsInParallel = YES;
+ LastUpgradeCheck = 1430;
+ TargetAttributes = {
+ F94BFD4F59EC4E80E6CE55C2 = {
+ DevelopmentTeam = PP34X97WS3;
+ ProvisioningStyle = Automatic;
+ };
+ };
+ };
+ buildConfigurationList = 24001431CC5AE112F7B16FC4 /* Build configuration list for PBXProject "Vorrania" */;
+ developmentRegion = de;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ Base,
+ de,
+ );
+ mainGroup = 5612AB3DD4CD09397A8F1BAB;
+ minimizedProjectReferenceProxies = 1;
+ preferredProjectObjectVersion = 77;
+ productRefGroup = 9BD53E938DBCB7F0CF657753 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ F94BFD4F59EC4E80E6CE55C2 /* Vorrania */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 049B3FB4A4D974E54814E40C /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 7E2FA69E0C3BED650E91A7E9 /* AppIcon.icon in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 08E03A34841D4B2D2C7E2E81 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 39F1F17DCB4E491652D08DEE /* APIClient.swift in Sources */,
+ A7017E6C0532A650439AED7B /* BestBeforeText.swift in Sources */,
+ 25FC3913EFFA37D013328FDE /* CategoryPicker.swift in Sources */,
+ 0E0AE6CC6FBA82B190BBC36F /* CheckInFormView.swift in Sources */,
+ 4F86620DF8303DB02314DB5A /* CheckInView.swift in Sources */,
+ F6C7E913CAB0FAF1826E6BD3 /* CheckOutView.swift in Sources */,
+ ED61DAE4824165D6D87F8C1D /* DateScanView.swift in Sources */,
+ D70CB183C868FF0143A6A5E7 /* DisplaySettings.swift in Sources */,
+ 7738E209D4D32BFD514B76F5 /* ListViews.swift in Sources */,
+ E9EA455CACB6ED5951B114C3 /* LoginView.swift in Sources */,
+ 6816C33381DF52A96E5BB303 /* Models.swift in Sources */,
+ AAF27320D2A67C994C29C26F /* ProductDetailView.swift in Sources */,
+ 0D8629839E465D80EC58E74B /* ProductViews.swift in Sources */,
+ 9B0A1A7C19764857BDC6ED26 /* RootView.swift in Sources */,
+ 44F08407AF69F5B7FD15F932 /* ScannerView.swift in Sources */,
+ DFA55EF4ACA34537F445E998 /* Session.swift in Sources */,
+ 75F805F8AE93479933BD811D /* VorraniaApp.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 42F6240F33F6257B69608277 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 16.0;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = iphoneos;
+ SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
+ SWIFT_VERSION = 5.0;
+ };
+ name = Release;
+ };
+ 9FF98D8C55956D14369FF551 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ CODE_SIGN_STYLE = Automatic;
+ DEVELOPMENT_TEAM = PP34X97WS3;
+ GENERATE_INFOPLIST_FILE = NO;
+ INFOPLIST_FILE = Sources/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ MARKETING_VERSION = 1.0;
+ PRODUCT_BUNDLE_IDENTIFIER = com.scarriffle.vorrania;
+ SDKROOT = iphoneos;
+ SWIFT_VERSION = 5.9;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ CD14B99E428F1B09564274DC /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ CODE_SIGN_STYLE = Automatic;
+ DEVELOPMENT_TEAM = PP34X97WS3;
+ GENERATE_INFOPLIST_FILE = NO;
+ INFOPLIST_FILE = Sources/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ MARKETING_VERSION = 1.0;
+ PRODUCT_BUNDLE_IDENTIFIER = com.scarriffle.vorrania;
+ SDKROOT = iphoneos;
+ SWIFT_VERSION = 5.9;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Release;
+ };
+ E7EB062D93A728D757BA4C0D /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "$(inherited)",
+ "DEBUG=1",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 16.0;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = iphoneos;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ };
+ name = Debug;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 24001431CC5AE112F7B16FC4 /* Build configuration list for PBXProject "Vorrania" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ E7EB062D93A728D757BA4C0D /* Debug */,
+ 42F6240F33F6257B69608277 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+ ED9476E156CE913FF3C1E49E /* Build configuration list for PBXNativeTarget "Vorrania" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 9FF98D8C55956D14369FF551 /* Debug */,
+ CD14B99E428F1B09564274DC /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = B35524A6F4D28034E6687EE2 /* Project object */;
+}
diff --git a/ios/Vorrania.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Vorrania.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..919434a
--- /dev/null
+++ b/ios/Vorrania.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/ios/project.yml b/ios/project.yml
index 48ece0e..fc7b445 100644
--- a/ios/project.yml
+++ b/ios/project.yml
@@ -1,8 +1,8 @@
# XcodeGen-Spezifikation – erzeugt das Xcode-Projekt aus diesen Quellen.
-# brew install xcodegen && cd ios && xcodegen generate && open ProjectGood.xcodeproj
+# brew install xcodegen && cd ios && xcodegen generate && open Vorrania.xcodeproj
# Alternativ kann man in Xcode ein leeres App-Projekt anlegen und den Ordner
# "Sources" hineinziehen (siehe README.md).
-name: ProjectGood
+name: Vorrania
options:
bundleIdPrefix: com.scarriffle
# Ohne das baut Xcode eine englische App: DatePicker und Monatsnamen
@@ -13,7 +13,7 @@ options:
createIntermediateGroups: true
targets:
- ProjectGood:
+ Vorrania:
type: application
platform: iOS
# Info.plist wird bewusst NICHT aus dieser Datei erzeugt, sondern unveraendert
@@ -29,7 +29,7 @@ targets:
settings:
base:
INFOPLIST_FILE: Sources/Info.plist
- PRODUCT_BUNDLE_IDENTIFIER: com.scarriffle.projectgood
+ PRODUCT_BUNDLE_IDENTIFIER: com.scarriffle.vorrania
# Signing: automatisch verwaltet. Wer mit einem anderen Apple-Konto baut,
# traegt hier seine Team-ID ein (Xcode: Signing & Capabilities -> Team).
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon