The repo already meets the 14.0.0 / RN 0.85.3 / iOS 18 / Android 31
version matrix. This removes leftovers from that upgrade that were not
caught in the version bump:
- docs: bump stale Node 20+ -> 22+ and Xcode 15+ -> 16+ references in
README.md, CLAUDE.md, docs/ios-tests/README.md,
docs/android-tests/README.md, and PREPAREANDROID_DETAILED.md
(engines.node is >=22; iOS 18 SDK requires Xcode 16+; CI uses both).
- iosTests/package.json: drop dead `chai` devDependency (replaced by the
custom assert module; no longer imported) and the deprecated
`metro-react-native-babel-preset@0.77.0` (superseded by
@react-native/babel-preset@0.85.3).
- androidTests/package.json: drop the same deprecated
`metro-react-native-babel-preset@0.77.0`.
- SalesforceReact.podspec: remove the dead
`libs/SalesforceReact/SalesforceReact/SalesforceReact.h` entry from
public_header_files (stale path from the pre-14.0 iOS->ios/ layout move;
the umbrella header no longer exists, so CocoaPods warned on it).
- setversion.sh: document that it stamps only the SDK version, not the
RN/iOS-min/minSdk toolchain values, which must be bumped manually.
No public API, dependency version, or build-matrix value changes.
Summary
An audit against the 14.0.0 / RN 0.85.3 / iOS 18.0 / Android 31 version matrix (the row published in
README.md) found the repo already meets the matrix in every place that defines it —package.json,SalesforceReact.podspec,android/build.gradle, both test apps, and CI are all at target. The RN 0.85.3 and iOS 18 work landed in earlier PRs.This PR cleans up the leftovers that the version bump didn't catch. No public API, dependency version, or build-matrix value is changed.
Changes
Docs — stale toolchain minimums (engines.node is
>=22; the iOS 18 SDK requires Xcode 16+; CI already uses Node 22 / Xcode^16):README.md: Xcode 15+ → 16+CLAUDE.md: Node 20+ → 22+, Xcode 15+ → 16+docs/ios-tests/README.md: Xcode 15 → 16, Node 20 → 22, and CI examplenode-version: '20'→'22'docs/android-tests/README.md: CI examplenode-version: '20'→'22'docs/android-tests/PREPAREANDROID_DETAILED.md: "Node 20+" → "Node 22+"Dead dependencies in the test apps:
iosTests/package.json: removedchai@4.4.1(replaced by the customassert.jsper CLAUDE.md; no longer imported) and the deprecatedmetro-react-native-babel-preset@0.77.0(superseded by@react-native/babel-preset@0.85.3)androidTests/package.json: removed the same deprecatedmetro-react-native-babel-preset@0.77.0Podspec — dead header path:
SalesforceReact.podspec: removedlibs/SalesforceReact/SalesforceReact/SalesforceReact.hfrompublic_header_files. That path is from the pre-14.0 layout (before the bridge moved toios/SalesforceReact/); the umbrella header no longer exists, so CocoaPods warned on the non-matching glob.Release tooling — documentation:
setversion.sh: added a SCOPE comment clarifying it stamps only the SDK version (package.json version, SDK git tag, podspecs.version) and that the RN / iOS-min /minSdktoolchain values must be bumped manually each upgrade and kept in sync with the README compatibility table.Verification
package.jsonfiles validate as JSON.Xcode 15,Node 20,chai,metro-react-native-babel-preset, orlibs/SalesforceReactreferences.🤖 Generated with Claude Code