Repository navigation
v4.0.0-beta.10
Pre-release4.0.0-beta.10 (2026-10-03)
Release preparation
-
Added GitHub Actions publishing through npm Trusted Publisher with exact-commit validation, complete Android/iOS CI gates, verified package artifacts, and provenance.
-
Hardened v4 release entrypoints with automatic next-beta selection within the current series, explicit stable/new-series versions, unpublished-version checks, safe option forwarding, branch checks, and basic quality gates before publication.
-
Added separate RN 0.84 Android/iOS CI build jobs and example mocked tests; hosted execution is recorded separately from local validation.
-
Added v3-to-v4 migration and stable cutover guidance, corrected clean-checkout example setup, and updated introductory NFC lifecycle handling. The package remains a beta pending separate stable-candidate validation and publication.
Android tag metadata
- Added optional cached NFC-A (
atqa,sak), NFC-V (dsfid,responseFlags), and ISO-DEP (historicalBytes,hiLayerResponse) fields to Android tag results. These are discovery-time values; reading them does not start another NFC exchange. NFC-A fields were observed on Android 12 with NTAG215; NFC-V and ISO-DEP metadata remain unverified on hardware.
TypeScript tag results
- Corrected
TagEvent.ndefMessageto be optional: nativegetTag()and discovery results can omit it. TypeScript consumers that iterate records should usetag.ndefMessage ?? []or check for its presence. This is a TypeScript source-compatibility change; JavaScript and native payloads are unchanged. - Declared existing Android NDEF writability/read-only fields and iOS technology-specific tag fields. No new NFC metadata is collected and the TurboModule Codegen contract is unchanged.
- Corrected
NdefRecord.idto accept Android's hexadecimal string or iOS's byte array. TypeScript consumers that assumed only byte arrays must narrow the value first.
Expo Development Build support
- Updated the pinned Expo validation and smoke consumer to 57.0.25 to match Expo Doctor's expected SDK patch range; React Native remains 0.86.3. The local compiler/Doctor gate and basic iPhone/Android regressions passed, with the documented Directory metadata warning retained.
- Added an Android scan prompt to the Expo smoke app with shared cancellation and cleanup handling, plus error-subclass logging. Recorded basic iPhone and Android physical-device smoke results, including NTAG215 NfcA reads; remaining validation gaps are listed in the test record.
- Hardened the packaged Expo config plugin for repeated evaluation, explicit permission opt-out, and current Expo Gradle layouts.
- Added a pinned packed-package Expo SDK 57 / React Native 0.86 New Architecture consumer validator for prebuild, Expo Doctor, Android, and iOS release gates.
- Documented Expo Development Builds as the supported Expo path; Expo Go remains unsupported, and local compilation is not presented as hosted EAS or physical-device NFC evidence.
Fixed
- Fixed
Ndef.decodeMessage()to accept Buffer and Uint8Array inputs, including subarrays, without modifying the input. DataView and non-byte typed arrays remain unsupported. - Aligned the iOS ISO 15693
getSystemInfobridge parameter with the generated TurboModule scalar protocol while preserving the existing internal NSNumber call.
Candidate: 6bf1643