Die Auswahl war nicht flach, weil die Beschriftung gefehlt haette - der volle Pfad stand laengst drin. Sie kam vom Server nach dem BLATTnamen sortiert, und so standen "Garage -> Fach A" und "Keller -> Fach A" irgendwo zwischen allem anderen. Geschwister und Kinder fanden nie zusammen. Neu ist baum() in Baum.swift: bringt eine flache Eltern-Kind-Liste in Baumreihenfolge und rueckt je Ebene ein. Waisen gelten als oberste Ebene, damit nichts lautlos aus der Auswahl faellt. Derselbe Lauf lag bisher dreimal im Projekt (CategoryPicker, TreeMasterView, LocationEditor). Alle drei zeigen jetzt auf den einen - unterm Strich verschwinden mehr Zeilen als dazukommen. Zwei der Kopien waren auch nicht gleichwertig: LocationEditor.pfad hatte den Zyklusschutz von path(in:) nicht und waere bei einer ringfoermigen Elternkette endlos gelaufen. Umgestellt sind neun Auswahlfelder. Die Lagerortzeile beim Kassenzettel zeigte nur den nackten Namen und bekommt den vollen Pfad - dort ist kein Platz zum Einruecken. MARKETING_VERSION stand auf 1.2 in der project.pbxproj, aber auf 1.1 in der project.yml, aus der sie erzeugt wird. Die Quelle nachgezogen, sonst haette das naechste "xcodegen generate" die Anhebung zurueckgedreht. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
79 lines
3.5 KiB
YAML
79 lines
3.5 KiB
YAML
# XcodeGen-Spezifikation – erzeugt das Xcode-Projekt aus diesen Quellen.
|
||
# 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: Vorrania
|
||
options:
|
||
bundleIdPrefix: com.scarriffle
|
||
# Ohne das baut Xcode eine englische App: DatePicker und Monatsnamen
|
||
# erscheinen dann als "10. Dec 2027" statt "10. Dez. 2027".
|
||
developmentLanguage: de
|
||
deploymentTarget:
|
||
iOS: "16.0"
|
||
createIntermediateGroups: true
|
||
|
||
# Erste (und einzige) Fremdabhaengigkeit: AppAuth uebernimmt den
|
||
# OpenID-Connect-Anmeldevorgang. Selbst gebaut waere das ein Sicherheitsrisiko –
|
||
# PKCE, State-Pruefung und der Ablauf im System-Browser stecken hier drin.
|
||
packages:
|
||
AppAuth:
|
||
url: https://github.com/openid/AppAuth-iOS
|
||
from: 1.7.6
|
||
|
||
targets:
|
||
Vorrania:
|
||
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
|
||
# App-Icon im Icon-Composer-Format (Xcode 26).
|
||
- path: AppIcon.icon
|
||
dependencies:
|
||
- package: AppAuth
|
||
product: AppAuth
|
||
settings:
|
||
base:
|
||
INFOPLIST_FILE: Sources/Info.plist
|
||
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
|
||
CODE_SIGN_STYLE: Automatic
|
||
DEVELOPMENT_TEAM: PP34X97WS3
|
||
# Die einzige Stelle fuer die Versionsnummern. Die Info.plist zieht
|
||
# sie ueber $(MARKETING_VERSION)/$(CURRENT_PROJECT_VERSION) - frueher
|
||
# standen dort feste Werte, die jede Aenderung hier wirkungslos machten.
|
||
# MARKETING_VERSION ist die sichtbare Version (App Store),
|
||
# CURRENT_PROJECT_VERSION die Build-Nummer: muss bei jedem Upload
|
||
# innerhalb derselben Version steigen.
|
||
MARKETING_VERSION: "1.2"
|
||
CURRENT_PROJECT_VERSION: "2"
|
||
TARGETED_DEVICE_FAMILY: "1,2"
|
||
SWIFT_VERSION: "5.9"
|
||
GENERATE_INFOPLIST_FILE: NO
|
||
# NFC: eingenaehte Tags an Einzelstuecken lesen und beschreiben – fuer
|
||
# Kleidung, wo ein aufgeklebter QR die Waesche nicht uebersteht.
|
||
# Dafuer muss im Apple-Developer-Portal die Capability "Near Field
|
||
# Communication Tag Reading" fuer die App-ID aktiv sein (einmalig), sonst
|
||
# schlaegt das Signieren fehl.
|
||
#
|
||
# Associated Domains stand hier bis 2026-09 noch drin, obwohl f981f41 die
|
||
# Universal Links entfernt hat: XcodeGen erzeugt Sources/Vorrania.entitlements
|
||
# aus diesem Block und schrieb den Eintrag bei jedem "generate" zurueck. Die
|
||
# Domain existiert laengst nicht mehr, jede Installation fragte sie vergeblich ab.
|
||
entitlements:
|
||
path: Sources/Vorrania.entitlements
|
||
properties:
|
||
# "TAG", nicht "NDEF": Die App-Store-Pruefung lehnt NDEF seit dem
|
||
# SDK von iOS 26/27 ab ("NDEF is disallowed") und verlangt TAG. Deshalb
|
||
# laeuft der Code ueber NFCTagReaderSession; die NDEF-Befehle gibt es
|
||
# dort weiterhin, weil alle Tag-Protokolle von NFCNDEFTag erben.
|
||
com.apple.developer.nfc.readersession.formats:
|
||
- TAG
|