Build

CoreExtendedNFC is iOS-only. Validate with an iOS-capable toolchain and do not add macOS compatibility shims for CoreNFC.

Requirements

ToolVersion
Swift6.2 or newer
iOS15.0 or newer
XcodeiOS SDK with CoreNFC available
openssl-spm3.6.1 or newer, resolved by SwiftPM

Package.swift declares one external dependency, openssl-spm, for passport cryptography. The first build needs network access to fetch it.

Formatting and Linting

Use the Swift toolchain’s formatter with the repository configuration. Replace <files> with the changed Swift file paths.

swift format format --in-place --configuration .swift-format <files>
swift format lint --strict --configuration .swift-format <files>

Tests

DESTINATION="$(./Scripts/select-ios-simulator.sh)"
xcodebuild -scheme CoreExtendedNFC -destination "$DESTINATION" test

Example App

xcodebuild -project Example/CENFC.xcodeproj -scheme CENFC -destination 'generic/platform=iOS Simulator' build

NFC reads require a physical iPhone and card. For Singapore CEPAS, use the offline test guide and export Logs; passing a simulator build or mock tests does not verify card support.

GitHub Pages

.github/workflows/pages.yml publishes the static docs/ directory on pushes to main.