Build
CoreExtendedNFC is iOS-only. Validate with an iOS-capable toolchain and do not add macOS compatibility shims for CoreNFC.
Requirements
| Tool | Version |
|---|---|
| Swift | 6.2 or newer |
| iOS | 15.0 or newer |
| Xcode | iOS SDK with CoreNFC available |
| openssl-spm | 3.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.