iOS-App kompiliert erstmals: Info.plist gesichert und zwei Build-Fehler behoben

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>
This commit is contained in:
Scarriffle
2026-07-22 16:57:27 +02:00
parent faa9d6a25d
commit 3a0c130cb1
5 changed files with 30 additions and 22 deletions

View File

@@ -13,29 +13,17 @@ targets:
ProjectGood:
type: application
platform: iOS
# Info.plist wird bewusst NICHT aus dieser Datei erzeugt, sondern unveraendert
# aus Sources/Info.plist uebernommen. Ein "info:"-Block hier wuerde die Datei
# bei jedem "xcodegen generate" ueberschreiben und dabei Schluessel verlieren,
# die nur dort stehen (z. B. NSAppTransportSecurity fuer das HTTP-Heimnetz).
sources:
- path: Sources
info:
path: Sources/Info.plist
properties:
CFBundleDisplayName: Project-Good
CFBundleShortVersionString: "1.0"
CFBundleVersion: "1"
UILaunchScreen: {}
NSCameraUsageDescription: >-
Die Kamera wird zum Scannen von Barcodes beim Ein- und Auslagern verwendet.
UIApplicationShortcutItems:
- UIApplicationShortcutItemType: com.scarriffle.projectgood.checkin
UIApplicationShortcutItemTitle: Einlagern
UIApplicationShortcutItemIconType: UIApplicationShortcutIconTypeAdd
- UIApplicationShortcutItemType: com.scarriffle.projectgood.checkout
UIApplicationShortcutItemTitle: Auslagern
UIApplicationShortcutItemIconType: UIApplicationShortcutIconTypeRemove
CFBundleURLTypes:
- CFBundleURLName: com.scarriffle.projectgood
CFBundleURLSchemes: [projectgood]
excludes:
- Info.plist
settings:
base:
INFOPLIST_FILE: Sources/Info.plist
PRODUCT_BUNDLE_IDENTIFIER: com.scarriffle.projectgood
MARKETING_VERSION: "1.0"
TARGETED_DEVICE_FAMILY: "1,2"