Die App war bisher nie durch einen Compiler gelaufen. Mit Xcode 26.6 baut sie jetzt fehler- und warnungsfrei gegen das iOS-16-Deployment-Target. Info.plist: Der "info:"-Block in project.yml hat die handgepflegte Sources/Info.plist bei jedem "xcodegen generate" ueberschrieben und dabei Schluessel verloren, die nur in der Datei standen - insbesondere NSAppTransportSecurity/NSAllowsLocalNetworking. Ohne diese Ausnahme haette die App den Server im Heimnetz per http:// ueberhaupt nicht erreichen koennen. Die Datei ist jetzt die einzige Quelle: project.yml verweist nur noch per INFOPLIST_FILE darauf und nimmt sie aus den Sources heraus. Die Bundle-Keys, die vorher nur die erzeugte Fassung hatte (CFBundleExecutable, CFBundleIdentifier, CFBundlePackageType ...), stehen nun in der Datei selbst. ProductViews: onChange(of:) wurde in der zweiwertigen iOS-17-Form verwendet und war damit ein harter Fehler - auf die einwertige Form umgestellt. ProjectGoodApp: application(_:performActionFor:) als async-Fassung reicht das nicht-Sendable UIApplicationShortcutItem ueber eine Actor-Grenze. Das ist heute eine Warnung und im Swift-6-Sprachmodus ein Fehler; jetzt die Variante mit Completion-Handler. Der dritte Verdacht hat sich nicht bestaetigt: AudioServicesPlaySystemSound in ScannerView uebersetzt ohne zusaetzliches "import AudioToolbox", weil AVFoundation es bereits mitbringt. Deshalb dort keine Aenderung. Das erzeugte ProjectGood.xcodeproj wandert in .gitignore, da project.yml es vollstaendig beschreibt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
74 lines
2.4 KiB
Plaintext
74 lines
2.4 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<!-- Von Xcode aus den Build-Einstellungen gefuellt -->
|
|
<key>CFBundleDevelopmentRegion</key>
|
|
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
|
<key>CFBundleExecutable</key>
|
|
<string>$(EXECUTABLE_NAME)</string>
|
|
<key>CFBundleIdentifier</key>
|
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
|
<key>CFBundleInfoDictionaryVersion</key>
|
|
<string>6.0</string>
|
|
<key>CFBundleName</key>
|
|
<string>$(PRODUCT_NAME)</string>
|
|
<key>CFBundlePackageType</key>
|
|
<string>APPL</string>
|
|
|
|
<key>CFBundleDisplayName</key>
|
|
<string>Project-Good</string>
|
|
<key>CFBundleShortVersionString</key>
|
|
<string>1.0</string>
|
|
<key>CFBundleVersion</key>
|
|
<string>1</string>
|
|
<key>UILaunchScreen</key>
|
|
<dict/>
|
|
|
|
<!-- Kamera für den Barcode-Scan -->
|
|
<key>NSCameraUsageDescription</key>
|
|
<string>Die Kamera wird zum Scannen von Barcodes beim Ein- und Auslagern verwendet.</string>
|
|
|
|
<!-- Lokaler Server ohne HTTPS (Heimnetz) -->
|
|
<key>NSAppTransportSecurity</key>
|
|
<dict>
|
|
<key>NSAllowsLocalNetworking</key>
|
|
<true/>
|
|
</dict>
|
|
|
|
<!-- Schnellaktionen beim langen Druck auf das App-Symbol -->
|
|
<key>UIApplicationShortcutItems</key>
|
|
<array>
|
|
<dict>
|
|
<key>UIApplicationShortcutItemType</key>
|
|
<string>com.scarriffle.projectgood.checkin</string>
|
|
<key>UIApplicationShortcutItemTitle</key>
|
|
<string>Einlagern</string>
|
|
<key>UIApplicationShortcutItemIconType</key>
|
|
<string>UIApplicationShortcutIconTypeAdd</string>
|
|
</dict>
|
|
<dict>
|
|
<key>UIApplicationShortcutItemType</key>
|
|
<string>com.scarriffle.projectgood.checkout</string>
|
|
<key>UIApplicationShortcutItemTitle</key>
|
|
<string>Auslagern</string>
|
|
<key>UIApplicationShortcutItemIconType</key>
|
|
<string>UIApplicationShortcutIconTypeRemove</string>
|
|
</dict>
|
|
</array>
|
|
|
|
<!-- projectgood://checkin bzw. projectgood://checkout -->
|
|
<key>CFBundleURLTypes</key>
|
|
<array>
|
|
<dict>
|
|
<key>CFBundleURLName</key>
|
|
<string>com.scarriffle.projectgood</string>
|
|
<key>CFBundleURLSchemes</key>
|
|
<array>
|
|
<string>projectgood</string>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</plist>
|