Skip to content

refactor: Move darwin native sources into a canonical Sources/ tree#894

Merged
NandanPrabhu merged 3 commits into
mainfrom
refactor/move-darwin-sources-to-shared-tree
Jul 14, 2026
Merged

refactor: Move darwin native sources into a canonical Sources/ tree#894
NandanPrabhu merged 3 commits into
mainfrom
refactor/move-darwin-sources-to-shared-tree

Conversation

@NandanPrabhu

@NandanPrabhu NandanPrabhu commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

📋 Changes

First of a cascading pair of PRs replacing #804 (closed — see comment for why it was split). Relocates auth0_flutter/darwin/Classes/*.swift into auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/, turning the old Classes/ location — and the ios//macos/ CocoaPods directories — into symlinks generated by scripts/generate-symlinks.sh. This gives CocoaPods (and #893's SPM target) a single canonical source location instead of duplicated/symlinked per-platform trees.

Also renames SwiftAuth0FlutterPluginAuth0FlutterPlugin and drops the Objective-C shim (Auth0FlutterPlugin.h/.m), since the class name can now match the pluginClass declared in pubspec.yaml directly without an ObjC bridge.

This is a pure move + rename for production code — no behavior change for CocoaPods consumers. One test-only fixture does change behavior (see below):

  • Every relocated production file is byte-identical to its previous location (verified file-by-file against main).
  • darwin/auth0_flutter.podspec's source_files is updated to point at the new path; ios/ and macos/ podspecs are unchanged (they still glob Classes/**/*, which is now populated by regenerated symlinks).
  • scripts/generate-symlinks.sh is updated to generate darwin/Classes/<rel> -> ../../auth0_flutter/Sources/auth0_flutter/<rel> and ios|macos/Classes/<rel> -> ../../../darwin/Classes/<rel>, verifying every symlink resolves. Confirmed idempotent (re-running the script against its own output produces no diff), so the existing Symlinks CI job continues to pass.
  • Tests/CredentialsManager/CredentialsManagerSpies.swift's SpyCredentialsStorage.setEntry now writes its argument into getEntryReturnValue, making the spy round-trip like the real Keychain-backed storage. This is what lets CredentialsManagerGetMethodHandlerTests/CredentialsManagerHasValidMethodHandlerTests/etc. use credentialsManager.store(credentials:) (which calls setEntry then reads it back via getEntry) instead of hand-building NSKeyedArchiver payloads that duplicated the real storage's serialization format. Checked every call site — no test sets getEntryReturnValue and later asserts it stays at that value after a setEntry call, so nothing is clobbered by the change.

No Dart files, pubspec.yaml, or CI workflows are touched.

📎 References

🎯 Testing

  • Verified every file moved from darwin/Classes/ is byte-identical to its main counterpart (2 intentional exceptions: the plugin class rename and dropping the ObjC shim).
  • pod ipc spec auth0_flutter/darwin/auth0_flutter.podspec validates the podspec and resolves source_files to the 64 real Swift files under the new Sources/ path.
  • Re-ran scripts/generate-symlinks.sh after committing; zero diff, confirming CI's Symlinks check will pass.
  • plutil -lint on the updated example iOS project.pbxproj after the test-file rename.

@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 222 files, which is 72 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: a6ceb50f-680d-41c5-b5e7-5a1e6e4b2d2d

📥 Commits

Reviewing files that changed from the base of the PR and between 7033e58 and 744fa89.

⛔ Files ignored due to path filters (45)
  • auth0_flutter/example/ios/Runner.xcodeproj/project.pbxproj is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/Auth0FlutterPluginTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/AuthAPI/AuthAPIExtensionsTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/AuthAPI/AuthAPIHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/AuthAPI/AuthAPIPasskeyCredentialExchangeMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/AuthAPI/AuthAPISpies.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/CredentialsManager/CredentialsManagerExtensionsTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/CredentialsManager/CredentialsManagerGetMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/CredentialsManager/CredentialsManagerHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/CredentialsManager/CredentialsManagerHasValidMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/CredentialsManager/CredentialsManagerSSOCredentialsMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/CredentialsManager/CredentialsManagerSpies.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/Mfa/MfaChallengeMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/Mfa/MfaEnrollEmailMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/Mfa/MfaEnrollPhoneMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/Mfa/MfaEnrollPushMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/Mfa/MfaEnrollTotpMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/Mfa/MfaGetAuthenticatorsMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/Mfa/MfaVerifyMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/Mocks.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/MyAccount/MyAccountConfirmEnrollmentMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/MyAccount/MyAccountDeleteAuthMethodMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/MyAccount/MyAccountEnrollEmailMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/MyAccount/MyAccountEnrollPasskeyChallengeMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/MyAccount/MyAccountEnrollPasskeyMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/MyAccount/MyAccountEnrollPhoneMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/MyAccount/MyAccountEnrollPushMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/MyAccount/MyAccountEnrollRecoveryCodeMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/MyAccount/MyAccountEnrollTotpMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/MyAccount/MyAccountGetAuthMethodMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/MyAccount/MyAccountGetAuthMethodsMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/MyAccount/MyAccountGetFactorsMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/MyAccount/MyAccountUpdateAuthMethodMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/MyAccount/MyAccountVerifyOtpMethodHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/WebAuth/WebAuthExtensionsTests.swift is excluded by !**/example/**
  • auth0_flutter/example/ios/Tests/WebAuth/WebAuthHandlerTests.swift is excluded by !**/example/**
  • auth0_flutter/example/macos/Runner.xcodeproj/project.pbxproj is excluded by !**/example/**
  • auth0_flutter/ios/Classes/Auth0FlutterPlugin.h is excluded by !auth0_flutter/ios/Classes/**
  • auth0_flutter/ios/Classes/Auth0FlutterPlugin.m is excluded by !auth0_flutter/ios/Classes/**
  • auth0_flutter/ios/Classes/Auth0FlutterPlugin.swift is excluded by !auth0_flutter/ios/Classes/**
  • auth0_flutter/ios/Classes/SwiftAuth0FlutterPlugin.swift is excluded by !auth0_flutter/ios/Classes/**
  • auth0_flutter/macos/Classes/Auth0FlutterPlugin.h is excluded by !auth0_flutter/macos/Classes/**
  • auth0_flutter/macos/Classes/Auth0FlutterPlugin.m is excluded by !auth0_flutter/macos/Classes/**
  • auth0_flutter/macos/Classes/Auth0FlutterPlugin.swift is excluded by !auth0_flutter/macos/Classes/**
  • auth0_flutter/macos/Classes/SwiftAuth0FlutterPlugin.swift is excluded by !auth0_flutter/macos/Classes/**
📒 Files selected for processing (222)
  • auth0_flutter/darwin/Classes/Auth0FlutterPlugin.h
  • auth0_flutter/darwin/Classes/Auth0FlutterPlugin.m
  • auth0_flutter/darwin/Classes/Auth0FlutterPlugin.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPICustomTokenExchangeMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPICustomTokenExchangeMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIEmailPasswordlessLoginMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIEmailPasswordlessLoginMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIExtensions.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIExtensions.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPILoginUsernameOrEmailMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPILoginUsernameOrEmailMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPILoginWithEmailMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPILoginWithEmailMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPILoginWithOTPMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPILoginWithOTPMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPILoginWithPhoneNumberMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPILoginWithPhoneNumberMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIMultifactorChallengeMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIMultifactorChallengeMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPasskeyCredentialExchangeMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPasskeyCredentialExchangeMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPasskeyExtensions.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPasskeyExtensions.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPasskeyLoginChallengeMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPasskeyLoginChallengeMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPasskeySignupChallengeMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPasskeySignupChallengeMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPasswordlessChallengeEmailMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPasswordlessChallengeEmailMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPasswordlessChallengePhoneNumberMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPasswordlessChallengePhoneNumberMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPasswordlessLoginWithOtpMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPasswordlessLoginWithOtpMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPhoneNumberPasswordlessLoginMethod.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIPhoneNumberPasswordlessLoginMethod.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIRenewMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIRenewMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIResetPasswordMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIResetPasswordMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPISignupMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPISignupMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIUserInfoMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/AuthAPIUserInfoMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/SSOExchangeMethodHandler.swift
  • auth0_flutter/darwin/Classes/AuthAPI/SSOExchangeMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/ApiCredentialsMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/ApiCredentialsMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/ClearApiCredentialsMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/ClearApiCredentialsMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerClearMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerClearMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerExtensions.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerExtensions.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerGetMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerGetMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerHasValidMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerHasValidMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerModels.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerModels.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerRenewMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerRenewMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerSaveMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerSaveMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerUserInfoMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/CredentialsManagerUserInfoMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/SSOCredentialsMethodHandler.swift
  • auth0_flutter/darwin/Classes/CredentialsManager/SSOCredentialsMethodHandler.swift
  • auth0_flutter/darwin/Classes/DPoP/DPoPClearKeyMethodHandler.swift
  • auth0_flutter/darwin/Classes/DPoP/DPoPClearKeyMethodHandler.swift
  • auth0_flutter/darwin/Classes/DPoP/DPoPGetHeadersMethodHandler.swift
  • auth0_flutter/darwin/Classes/DPoP/DPoPGetHeadersMethodHandler.swift
  • auth0_flutter/darwin/Classes/DPoP/DPoPHandler.swift
  • auth0_flutter/darwin/Classes/DPoP/DPoPHandler.swift
  • auth0_flutter/darwin/Classes/Extensions.swift
  • auth0_flutter/darwin/Classes/Extensions.swift
  • auth0_flutter/darwin/Classes/HandlerError.swift
  • auth0_flutter/darwin/Classes/HandlerError.swift
  • auth0_flutter/darwin/Classes/MethodHandler.swift
  • auth0_flutter/darwin/Classes/MethodHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaChallengeMethodHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaChallengeMethodHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaEnrollEmailMethodHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaEnrollEmailMethodHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaEnrollPhoneMethodHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaEnrollPhoneMethodHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaEnrollPushMethodHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaEnrollPushMethodHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaEnrollTotpMethodHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaEnrollTotpMethodHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaExtensions.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaExtensions.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaGetAuthenticatorsMethodHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaGetAuthenticatorsMethodHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaVerifyMethodHandler.swift
  • auth0_flutter/darwin/Classes/MfaAPI/MfaVerifyMethodHandler.swift
  • auth0_flutter/darwin/Classes/Models.swift
  • auth0_flutter/darwin/Classes/Models.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountConfirmEnrollmentMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountConfirmEnrollmentMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountDeleteAuthMethodMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountDeleteAuthMethodMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountEnrollEmailMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountEnrollEmailMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountEnrollPasskeyChallengeMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountEnrollPasskeyChallengeMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountEnrollPasskeyMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountEnrollPasskeyMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountEnrollPhoneMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountEnrollPhoneMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountEnrollPushMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountEnrollPushMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountEnrollRecoveryCodeMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountEnrollRecoveryCodeMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountEnrollTotpMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountEnrollTotpMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountExtensions.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountExtensions.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountGetAuthMethodMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountGetAuthMethodMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountGetAuthMethodsMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountGetAuthMethodsMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountGetFactorsMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountGetFactorsMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountUpdateAuthMethodMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountUpdateAuthMethodMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountVerifyOtpMethodHandler.swift
  • auth0_flutter/darwin/Classes/MyAccountAPI/MyAccountVerifyOtpMethodHandler.swift
  • auth0_flutter/darwin/Classes/Properties.swift
  • auth0_flutter/darwin/Classes/Properties.swift
  • auth0_flutter/darwin/Classes/WebAuth/WebAuthExtensions.swift
  • auth0_flutter/darwin/Classes/WebAuth/WebAuthExtensions.swift
  • auth0_flutter/darwin/Classes/WebAuth/WebAuthHandler.swift
  • auth0_flutter/darwin/Classes/WebAuth/WebAuthHandler.swift
  • auth0_flutter/darwin/Classes/WebAuth/WebAuthLoginMethodHandler.swift
  • auth0_flutter/darwin/Classes/WebAuth/WebAuthLoginMethodHandler.swift
  • auth0_flutter/darwin/Classes/WebAuth/WebAuthLogoutMethodHandler.swift
  • auth0_flutter/darwin/Classes/WebAuth/WebAuthLogoutMethodHandler.swift
  • auth0_flutter/darwin/Classes/WebAuth/WebAuthModels.swift
  • auth0_flutter/darwin/Classes/WebAuth/WebAuthModels.swift
  • auth0_flutter/darwin/auth0_flutter.podspec
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/Auth0FlutterPlugin.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPICustomTokenExchangeMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIEmailPasswordlessLoginMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIExtensions.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPILoginUsernameOrEmailMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPILoginWithEmailMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPILoginWithOTPMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPILoginWithPhoneNumberMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIMultifactorChallengeMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIPasskeyCredentialExchangeMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIPasskeyExtensions.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIPasskeyLoginChallengeMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIPasskeySignupChallengeMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIPasswordlessChallengeEmailMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIPasswordlessChallengePhoneNumberMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIPasswordlessLoginWithOtpMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIPhoneNumberPasswordlessLoginMethod.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIRenewMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIResetPasswordMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPISignupMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/AuthAPIUserInfoMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/AuthAPI/SSOExchangeMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/CredentialsManager/ApiCredentialsMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/CredentialsManager/ClearApiCredentialsMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/CredentialsManager/CredentialsManagerClearMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/CredentialsManager/CredentialsManagerExtensions.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/CredentialsManager/CredentialsManagerGetMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/CredentialsManager/CredentialsManagerHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/CredentialsManager/CredentialsManagerHasValidMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/CredentialsManager/CredentialsManagerModels.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/CredentialsManager/CredentialsManagerRenewMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/CredentialsManager/CredentialsManagerSaveMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/CredentialsManager/CredentialsManagerUserInfoMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/CredentialsManager/SSOCredentialsMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/DPoP/DPoPClearKeyMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/DPoP/DPoPGetHeadersMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/DPoP/DPoPHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/Extensions.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/HandlerError.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MfaAPI/MfaChallengeMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MfaAPI/MfaEnrollEmailMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MfaAPI/MfaEnrollPhoneMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MfaAPI/MfaEnrollPushMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MfaAPI/MfaEnrollTotpMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MfaAPI/MfaExtensions.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MfaAPI/MfaGetAuthenticatorsMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MfaAPI/MfaHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MfaAPI/MfaVerifyMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/Models.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountConfirmEnrollmentMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountDeleteAuthMethodMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountEnrollEmailMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountEnrollPasskeyChallengeMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountEnrollPasskeyMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountEnrollPhoneMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountEnrollPushMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountEnrollRecoveryCodeMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountEnrollTotpMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountExtensions.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountGetAuthMethodMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountGetAuthMethodsMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountGetFactorsMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountUpdateAuthMethodMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/MyAccountAPI/MyAccountVerifyOtpMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/Properties.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/WebAuth/WebAuthExtensions.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/WebAuth/WebAuthHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/WebAuth/WebAuthLoginMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/WebAuth/WebAuthLogoutMethodHandler.swift
  • auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/WebAuth/WebAuthModels.swift
  • scripts/generate-symlinks.sh

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/move-darwin-sources-to-shared-tree

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment thread auth0_flutter/example/ios/Tests/Mocks.swift
Comment thread auth0_flutter/darwin/auth0_flutter.podspec
@NandanPrabhu

Copy link
Copy Markdown
Contributor Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown
✅ Action performed

Full review finished.

@NandanPrabhu

Copy link
Copy Markdown
Contributor Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown
✅ Action performed

Full review finished.


Your plan includes PR reviews subject to rate limits. More reviews will be available in 30 minutes.

Relocates auth0_flutter/darwin/Classes/*.swift into
auth0_flutter/darwin/auth0_flutter/Sources/auth0_flutter/, turning the old
Classes/ location (and the ios/ and macos/ CocoaPods dirs) into symlinks
generated by scripts/generate-symlinks.sh. This gives CocoaPods and a future
SPM target a single canonical source location instead of duplicated/symlinked
per-platform trees.

Also renames SwiftAuth0FlutterPlugin -> Auth0FlutterPlugin and drops the
Objective-C shim (Auth0FlutterPlugin.h/.m), since the class name can now match
the pluginClass declared in pubspec.yaml directly without an ObjC bridge.

Pure move: every relocated file is byte-identical to its previous location.
…rename

Dropping the ObjC shim (Auth0FlutterPlugin.h/.m) in the previous commit
removed the only source of a transitive Flutter import for Swift test files:
main's Auth0FlutterPlugin.h did `#import <Flutter/Flutter.h>`, which the
umbrella header re-exported to any `@testable import auth0_flutter` consumer.
Without it, 18 test files that use FlutterError/UIModalPresentationStyle
without importing Flutter/UIKit directly fail to compile. Adds the explicit
imports, verified by a full xcodebuild test run on both iOS and macOS.

Also fixes the macOS Xcode project, which still referenced the pre-rename
SwiftAuth0FlutterPluginTests.swift filename after the test file was renamed
to Auth0FlutterPluginTests.swift — this broke the macOS test target build
(the iOS project was already fixed in the previous commit).
main added MfaAPI test files that use FlutterError without importing Flutter
directly, relying on the transitive import that Auth0FlutterPlugin.h's
this branch dropped the ObjC shim, so these 7 files (added by main after this
branch was cut) need the same explicit Flutter/FlutterMacOS import already
applied to the other test files in a previous commit.

Verified with a full xcodebuild test run on both iOS (361 tests) and macOS.
@NandanPrabhu NandanPrabhu enabled auto-merge (squash) July 14, 2026 14:45
@NandanPrabhu NandanPrabhu merged commit 1dff824 into main Jul 14, 2026
14 checks passed
@NandanPrabhu NandanPrabhu deleted the refactor/move-darwin-sources-to-shared-tree branch July 14, 2026 14:46
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.

2 participants