NFC: Entitlement TAG statt NDEF, Tag-Session statt NDEF-Session
Der Upload nach App Store Connect scheiterte an der Entitlement-Pruefung: "NDEF is disallowed" und "TAG is missing in the entitlement". Apple hat den Wert NDEF zugunsten von TAG abgeloest; mit dem SDK von iOS 26/27 wird er abgelehnt. TAG ist der Wert fuer NFCTagReaderSession, deshalb laeuft der Lese- und Schreibweg jetzt darueber statt ueber NFCNDEFReaderSession. Die NDEF-Befehle bleiben dabei vollstaendig erhalten: alle vier Tag-Protokolle (MiFare, ISO7816, ISO15693, FeliCa) erben laut SDK-Header von NFCNDEFTag, also gibt es weiterhin queryNDEFStatus, readNDEF, writeNDEF und writeLock. Gepollt wird iso14443 (die ueblichen NTAG-Aufkleber) und iso15693 (Waeschetags mancher Hersteller). Die eigene Klasse hiess NFCTag und kollidierte damit mit dem gleichnamigen CoreNFC-Protokoll, das der neue Weg braucht - sie heisst jetzt NFCDienst. Info.plist enthaelt ausserdem die Neuformatierung durch Xcode (Schluessel sortiert, Kommentare entfernt). Inhaltlich unveraendert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
09a763a823
commit
140b81798c
+86
-118
@@ -2,123 +2,91 @@
|
||||
<!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 -->
|
||||
<!-- Deutsch als Sprache der App: Sonst zeichnet iOS DatePicker und
|
||||
Monatsnamen auf Englisch ("10. Dec 2027"). -->
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>de</string>
|
||||
<key>CFBundleLocalizations</key>
|
||||
<array>
|
||||
<string>de</string>
|
||||
</array>
|
||||
<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>Vorrania</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
|
||||
<!-- App-Store-Kategorie. Muss hier stehen: Das Projekt nutzt ein eigenes
|
||||
Info.plist (GENERATE_INFOPLIST_FILE = NO), deshalb wird die
|
||||
INFOPLIST_KEY_LSApplicationCategoryType-Build-Einstellung NICHT in das
|
||||
gebaute Info.plist uebernommen. -->
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.utilities</string>
|
||||
|
||||
<!-- Export-Compliance: Die App nutzt nur die Standard-Verschluesselung des
|
||||
Systems (HTTPS ueber Apples Betriebssystem) und faellt damit unter die
|
||||
Ausnahme. Mit diesem Schluessel entfaellt die "App Encryption
|
||||
Documentation"-Rueckfrage bei jedem Upload nach App Store Connect. -->
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
|
||||
<key>UILaunchScreen</key>
|
||||
<dict/>
|
||||
|
||||
<!-- Am iPhone bewusst nur Hochkant - damit sich beim Drehen nichts
|
||||
verstellt. Am iPad verlangt das System alle Ausrichtungen, solange die
|
||||
App nicht auf Vollbild besteht. -->
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
|
||||
<!-- Kamera für den Barcode-Scan -->
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>Die Kamera wird zum Scannen von Barcodes beim Ein- und Auslagern verwendet.</string>
|
||||
|
||||
<!-- NFC für die eingenähten Tags an Einzelstücken -->
|
||||
<key>NFCReaderUsageDescription</key>
|
||||
<string>NFC wird zum Lesen und Beschreiben der Tags an Einzelstücken verwendet.</string>
|
||||
|
||||
<!-- Lokaler Server ohne HTTPS (Heimnetz) -->
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsLocalNetworking</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
||||
<!-- Hintergrund-Aktualisierung: die App frischt gelegentlich den Plan der
|
||||
Ablauf-Benachrichtigungen auf. Zeitpunkt bestimmt iOS. -->
|
||||
<key>UIBackgroundModes</key>
|
||||
<array>
|
||||
<string>fetch</string>
|
||||
</array>
|
||||
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
||||
<array>
|
||||
<string>com.scarriffle.vorrania.refresh</string>
|
||||
</array>
|
||||
|
||||
<!-- Schnellaktionen beim langen Druck auf das App-Symbol -->
|
||||
<key>UIApplicationShortcutItems</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>UIApplicationShortcutItemType</key>
|
||||
<string>com.scarriffle.vorrania.checkin</string>
|
||||
<key>UIApplicationShortcutItemTitle</key>
|
||||
<string>Einlagern</string>
|
||||
<key>UIApplicationShortcutItemIconType</key>
|
||||
<string>UIApplicationShortcutIconTypeAdd</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>UIApplicationShortcutItemType</key>
|
||||
<string>com.scarriffle.vorrania.checkout</string>
|
||||
<key>UIApplicationShortcutItemTitle</key>
|
||||
<string>Auslagern</string>
|
||||
<key>UIApplicationShortcutItemIconType</key>
|
||||
<string>UIApplicationShortcutIconTypeRemove</string>
|
||||
</dict>
|
||||
</array>
|
||||
|
||||
<!-- vorrania://checkin bzw. vorrania://checkout -->
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>com.scarriffle.vorrania</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>vorrania</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
||||
<array>
|
||||
<string>com.scarriffle.vorrania.refresh</string>
|
||||
</array>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>de</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Vorrania</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleLocalizations</key>
|
||||
<array>
|
||||
<string>de</string>
|
||||
</array>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>com.scarriffle.vorrania</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>vorrania</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.utilities</string>
|
||||
<key>NFCReaderUsageDescription</key>
|
||||
<string>NFC wird zum Lesen und Beschreiben der Tags an Einzelstücken verwendet.</string>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsLocalNetworking</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>Die Kamera wird zum Scannen von Barcodes beim Ein- und Auslagern verwendet.</string>
|
||||
<key>UIApplicationShortcutItems</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>UIApplicationShortcutItemIconType</key>
|
||||
<string>UIApplicationShortcutIconTypeAdd</string>
|
||||
<key>UIApplicationShortcutItemTitle</key>
|
||||
<string>Einlagern</string>
|
||||
<key>UIApplicationShortcutItemType</key>
|
||||
<string>com.scarriffle.vorrania.checkin</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>UIApplicationShortcutItemIconType</key>
|
||||
<string>UIApplicationShortcutIconTypeRemove</string>
|
||||
<key>UIApplicationShortcutItemTitle</key>
|
||||
<string>Auslagern</string>
|
||||
<key>UIApplicationShortcutItemType</key>
|
||||
<string>com.scarriffle.vorrania.checkout</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>UIBackgroundModes</key>
|
||||
<array>
|
||||
<string>fetch</string>
|
||||
</array>
|
||||
<key>UILaunchScreen</key>
|
||||
<dict/>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
Reference in New Issue
Block a user