Skip to content

Drop deprecated NDEF NFC entitlement blocking App Store upload - #118

Open
rdesai14 wants to merge 1 commit into
masterfrom
fix-nfc-entitlement
Open

rdesai14 wants to merge 1 commit into
masterfrom
fix-nfc-entitlement

Conversation

@rdesai14

Copy link
Copy Markdown
Contributor

Summary

The 1.7.0 upload was rejected by App Store Connect:

Invalid entitlement for core nfc framework. The sdk version '26.5' and min OS version '15.0' are not compatible for the entitlement 'com.apple.developer.nfc.readersession.formats' because 'NDEF is disallowed'.

Older Xcode versions automatically inserted NDEF into that entitlement array. Apple has since deprecated it in favour of TAG, and validation now fails on that value. Per Apple DTS on the developer forums:

Earlier versions of Xcode were automatically inserting NDEF to the com.apple.developer.nfc.readersession.formats entry - this has since been deprecated and replaced by TAG.

Changes

  • Removed NDEF from both the debug and release entitlements files, leaving TAG.
  • Bumped CURRENT_PROJECT_VERSION to 2 so the retry upload can't collide with the rejected 1.7.0 (1).
  • Added a comment in the release entitlements file so NDEF doesn't get re-added.

Functional impact

This app uses NDEF for real work, not incidentally — app/NFCScanning/nfc.js calls requestTechnology(NfcTech.Ndef) to both read badges (event scanning, swag checkout) and write them (check-in). Apple's guidance and developer reports are that TAG alone still permits reading and writing NDEF messages, so this should be behaviour-preserving.

That cannot be verified in the simulator, which has no NFC hardware. Badge scanning and writing need testing on a real device via TestFlight before the event, and this is now the top item on that list.

Test plan

  • Both entitlements files pass plutil -lint
  • Release build succeeds for device; reports 1.7.0 (2)
  • aps-environment still resolves to production for Release and development for Debug
  • Upload accepted by App Store Connect
  • NFC badge read verified on a real device (TestFlight)
  • NFC badge write / check-in verified on a real device (TestFlight)
  • Push notification delivery verified on a real device (TestFlight)

App Store Connect rejected the 1.7.0 upload with "Invalid entitlement for
core nfc framework ... NDEF is disallowed". Older Xcode versions inserted
NDEF into com.apple.developer.nfc.readersession.formats automatically;
Apple has since deprecated it in favour of TAG, and validation now fails
for that value against the current SDK.

Removing NDEF does not affect functionality -- NDEF messages can still be
read and written with TAG alone, which is what the badge scanning and
check-in writing in app/NFCScanning/nfc.js rely on. Worth verifying on a
real device via TestFlight, since NFC cannot be exercised in the simulator.

Build number goes to 2 so the retry upload cannot collide with the
rejected 1.7.0 (1).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant