From 62a1e7c469eef7326dd643becbb61650c7005395 Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Thu, 23 Jul 2026 17:35:45 +0200 Subject: [PATCH] iOS-App heisst jetzt Vorrania Web, Backend, Deploy und Docs trugen den neuen Namen bereits - iOS war der letzte Rest. Umgestellt sind Projekt- und Targetname, die Bundle-ID (com.scarriffle.vorrania), das URL-Schema, die Schnellaktionen, der Keychain-Service und die Anleitungen. ProjectGoodApp.swift heisst VorraniaApp.swift. Zwei Nebenwirkungen, die sich nicht vermeiden lassen: Die neue Bundle-ID macht die App fuer iOS zu einer anderen App. Die alte bleibt auf dem Home-Bildschirm liegen und muss von Hand weg, und das Token im Keychain haengt an der alten Bundle-ID - die neue kommt nicht daran, also einmal neu anmelden. Wer sich Kurzbefehle mit projectgood://checkin angelegt hat, traegt dort vorrania://checkin ein. Das Xcode-Projekt ist ab jetzt eingecheckt statt ignoriert, damit man ohne XcodeGen bauen kann; nur xcuserdata und DerivedData bleiben draussen. Gegengeprueft mit einem Simulator-Build: Bundle-ID, Anzeigename, Schema und Schnellaktionen stehen im fertigen Bundle richtig drin. Co-Authored-By: Claude Opus 4.8 --- .gitignore | 4 +- docs/ROADMAP.md | 2 +- ios/README.md | 8 +- ios/Sources/Info.plist | 10 +- ios/Sources/Session.swift | 2 +- ...ProjectGoodApp.swift => VorraniaApp.swift} | 8 +- ios/Vorrania.xcodeproj/project.pbxproj | 373 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + ios/project.yml | 8 +- 9 files changed, 401 insertions(+), 21 deletions(-) rename ios/Sources/{ProjectGoodApp.swift => VorraniaApp.swift} (92%) create mode 100644 ios/Vorrania.xcodeproj/project.pbxproj create mode 100644 ios/Vorrania.xcodeproj/project.xcworkspace/contents.xcworkspacedata 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