Skip to content

feat!: modernize examples and require React Native 0.86+ - #1150

Open
zibs wants to merge 11 commits into
mainfrom
feat/react-native-9-baseline
Open

zibs wants to merge 11 commits into
mainfrom
feat/react-native-9-baseline

Conversation

@zibs

@zibs zibs commented Sep 30, 2026

Copy link
Copy Markdown
Contributor

Description

Prepare 9.0 by requiring React Native 0.86+, iOS 15.1+, Android API 24+, and Expo SDK 57+ for the config plugin. Upgrade the CLI and Expo examples and update compatibility documentation.
Fix Expo plugin handling of Swift bridging headers, Gradle placeholders/comments, and Kotlin imports. Correct token revocation encoding and expand regression coverage. Native regression suites run locally; CI retains build, lint, and unit checks.
Older applications can use 8.5.0, which includes #1146 and #1148.

Steps to verify

  • Run yarn test --runInBand --watchman=false, yarn lint, and yarn build with Node 22.13+. All 150 tests and these checks pass.
  • Run yarn changeset status; confirm 8.5.0 → 9.0.0.
  • Verify auth flows in both examples on iOS and Android. Earlier builds and native smoke tests passed; native checks were not rerun after the final plugin fixes.

@zibs
zibs requested a balanced review from Copilot September 30, 2026 21:39
@zibs zibs self-assigned this Sep 30, 2026
@changeset-bot

changeset-bot Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: ec50bf1

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
react-native-app-auth Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercel Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
react-native-app-auth Ready Ready Preview Oct 6, 2026 4:43pm UTC

Request Review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Bridging-header inheritance and commented Gradle placeholders can currently cause prebuild failures or missing redirect configuration.

Review effort: Balanced
Findings: 3 High severity

Open (3)
What changed in this PR

Modernizes platform baselines and examples for 9.0 while improving Expo configuration and token revocation.

Changes:

  • Requires React Native 0.86+, iOS 15.1+, Android API 24+, Expo SDK 57+, and Node 22.13+.
  • Updates CLI/Expo examples and native regression coverage.
  • Corrects revocation encoding and expands config-plugin handling.
File Description
README.md Updates compatibility requirements.
packages/​react-native-app-auth/​revoke.spec.js Adds revocation regression tests.
packages/​react-native-app-auth/​react-native-app-auth.podspec Raises iOS minimum to 15.1.
packages/​react-native-app-auth/​plugin/​src/​ios/​info-plist.ts Makes URL-scheme insertion idempotent.
packages/​react-native-app-auth/​plugin/​src/​ios/​index.ts Updates iOS plugin exports.
packages/​react-native-app-auth/​plugin/​src/​ios/​bridging-header.ts Reworks bridging-header discovery and configuration.
packages/​react-native-app-auth/​plugin/​src/​ios/​app-delegate.ts Adds Swift callback patching.
packages/​react-native-app-auth/​plugin/​src/​ios/​app-delegate-header.ts Updates Expo compatibility branching.
packages/​react-native-app-auth/​plugin/​src/​index.ts Integrates updated platform plugins.
packages/​react-native-app-auth/​plugin/​src/​expo-version.ts Raises Expo SDK minimum.
packages/​react-native-app-auth/​plugin/​src/​android/​main-activity.ts Adds authorization-result forwarding.
packages/​react-native-app-auth/​plugin/​src/​android/​index.ts Exports the MainActivity plugin.
packages/​react-native-app-auth/​plugin/​src/​android/​app-build-gradle.ts Merges Android manifest placeholders.
packages/​react-native-app-auth/​plugin/​src/​__tests__/​app-delegate.test.ts Updates AppDelegate tests.
packages/​react-native-app-auth/​plugin.fixture-coverage.spec.ts Adds broad plugin regression coverage.
packages/​react-native-app-auth/​package.json Updates dependencies, tests, and peer baseline.
packages/​react-native-app-auth/​native-tests/​android-recovery.sh Adds Android recovery test runner.
packages/​react-native-app-auth/​native-auth-errors.spec.js Tests native error preservation.
packages/​react-native-app-auth/​index.js Form-encodes revocation parameters.
packages/​react-native-app-auth/​android/​build.gradle Raises Android SDK baselines.
package.json Updates Node, Yarn, ESLint, and resolutions.
examples/​expo-cng/​README.md Updates Expo example instructions.
examples/​expo-cng/​package.json Upgrades Expo and React Native.
examples/​expo-cng/​App.tsx Expands the authentication smoke flow.
examples/​expo-cng/​app.json Enables scenes and new architecture.
examples/​expo-cng/​.yarnrc.yml Configures Yarn 4.
examples/​expo-cng/​.gitignore Ignores Yarn artifacts.
examples/​demo/​tsconfig.json Updates TypeScript configuration.
examples/​demo/​README.md Documents upgraded native tests.
examples/​demo/​package.json Upgrades React Native tooling.
examples/​demo/​metro.config.js Updates monorepo resolution.
examples/​demo/​jest.config.js Uses the current Jest preset.
examples/​demo/​ios/​Podfile.lock Refreshes iOS dependencies.
examples/​demo/​ios/​Podfile Enforces the iOS deployment target.
examples/​demo/​ios/​Example/​SceneDelegate.swift Adds scene lifecycle forwarding.
examples/​demo/​ios/​Example/​Info.plist Configures scenes and Metro.
examples/​demo/​ios/​Example/​AppDelegate.swift Defers startup to the scene delegate.
examples/​demo/​ios/​Example.xcodeproj/​project.pbxproj Integrates scene and build settings.
examples/​demo/​App.tsx Uses safe-area-context.
examples/​demo/​android/​gradlew.bat Updates the Windows Gradle wrapper.
examples/​demo/​android/​gradlew Updates the Unix Gradle wrapper.
examples/​demo/​android/​gradle/​wrapper/​gradle-wrapper.properties Upgrades Gradle.
examples/​demo/​android/​gradle.properties Adds AGP 9 settings.
examples/​demo/​android/​build.gradle Updates Android build tooling.
examples/​demo/​android/​app/​src/​main/​java/​com/​example/​MainApplication.kt Adopts the current RN application entry point.
examples/​demo/​android/​app/​src/​main/​java/​com/​example/​MainActivity.kt Forwards authorization results.
examples/​demo/​android/​app/​src/​main/​AndroidManifest.xml Configures cleartext behavior.
examples/​demo/​android/​app/​src/​debug/​AndroidManifest.xml Removes the obsolete debug manifest.
examples/​demo/​android/​app/​src/​androidTest/​java/​com/​example/​RNAppAuthRecoveryInstrumentation.java Adds native recovery regression tests.
examples/​demo/​android/​app/​build.gradle Configures instrumentation and dependencies.
examples/​demo/​__tests__/​App.test.tsx Updates app mocks.
docs/​docs/​usage/​manual-setup.md Updates iOS setup guidance.
docs/​docs/​usage/​expo-setup.md Documents Expo SDK 57 setup.
docs/​docs/​introduction.md Documents new platform requirements.
.github/​workflows/​release.yml Moves release CI to Node 22.
.github/​workflows/​pull-request.yml Moves PR CI to Node 22.
.changeset/​revocation-form-encoding.md Records revocation encoding fix.
.changeset/​current-react-native-baseline.md Records the breaking platform baseline.
.changeset/​configured-headers-and-gradle-comments.md Records plugin fixes.
.changeset/​android-recovery-review-fixes.md Records Kotlin import handling.
.changeset/​android-plugin-placeholder-scope.md Records placeholder scope handling.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread packages/react-native-app-auth/plugin/src/android/app-build-gradle.ts Outdated
Comment thread packages/react-native-app-auth/plugin/src/android/app-build-gradle.ts Outdated
Comment thread packages/react-native-app-auth/plugin/src/ios/bridging-header.ts

@Francesco-Voto Francesco-Voto left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Kotlin override detection can generate duplicate methods, and the demo’s committed npm lockfile remains on the old dependency graph.

Review effort: Balanced
Findings: 2 High severity

Open (2)
Resolved since last review (3)

Comment on lines +13 to 17
"react": "19.2.3",
"react-native": "0.87.1",
"react-native-app-auth": "*",
"react-native-safe-area-context": "^5.5.2"
},
Comment thread packages/react-native-app-auth/plugin/src/android/main-activity.ts Outdated
Cover existing callbacks, comments, and formatted forwarding. Remove the stale demo npm lockfile and document root Yarn installs.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The iOS config plugin updates raw Expo configuration instead of the generated Info.plist mod result, potentially omitting the OAuth URL scheme.

Review effort: Balanced
Findings: 2 High severity

Open (2)
Resolved since last review (1)

Comment thread packages/react-native-app-auth/plugin/src/ios/info-plist.ts Outdated
Update modResults using Expo's plist type. Verify separate mod objects, disk output, and repeated generation.

This branch was successfully deployed

1 active deployment
Preview — ec50bf19 Deployed Oct 6, 2026 by vercel[bot]
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.

3 participants