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>
32 lines
1.1 KiB
YAML
32 lines
1.1 KiB
YAML
# XcodeGen-Spezifikation – erzeugt das Xcode-Projekt aus diesen Quellen.
|
||
# brew install xcodegen && cd ios && xcodegen generate && open ProjectGood.xcodeproj
|
||
# Alternativ kann man in Xcode ein leeres App-Projekt anlegen und den Ordner
|
||
# "Sources" hineinziehen (siehe README.md).
|
||
name: ProjectGood
|
||
options:
|
||
bundleIdPrefix: com.scarriffle
|
||
deploymentTarget:
|
||
iOS: "16.0"
|
||
createIntermediateGroups: true
|
||
|
||
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
|
||
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"
|
||
SWIFT_VERSION: "5.9"
|
||
GENERATE_INFOPLIST_FILE: NO
|