Files
Vorrania/ios/project.yml
T
ScarriffleandClaude Opus 5 a220823882 Versionsnummern kommen aus project.yml statt dreifach auseinanderzulaufen
Die Info.plist hatte CFBundleShortVersionString und CFBundleVersion fest auf
"1.0" und "1" stehen. Damit blieb jede Aenderung an MARKETING_VERSION wirkungslos:
Xcode baute weiter 1.0, und da 1.0 bereits veroeffentlicht ist, lehnte App Store
Connect den Upload ab ("Invalid Pre-Release Train").

Beide Werte ziehen jetzt ueber $(MARKETING_VERSION) und
$(CURRENT_PROJECT_VERSION) aus den Build-Einstellungen - so, wie es die Datei
fuer EXECUTABLE_NAME, PRODUCT_NAME und den Bundle-Identifier schon tat. Gepflegt
werden sie in project.yml, die ohnehin die Quelle des Projekts ist; ein in Xcode
angeklicktes 1.1 hatte der naechste "xcodegen generate" sonst wieder verworfen.

Auf 1.1 (2) gesetzt und gegengeprueft: das gebaute Bundle meldet 1.1 / 2.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 13:55:39 +02:00

79 lines
3.5 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.1"
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