From 1e76915d56eba893c684cf9794cb23f7017fe6a1 Mon Sep 17 00:00:00 2001
From: lpw <812862340@qq.com>
Date: Wed, 15 Jul 2026 09:33:22 +0800
Subject: [PATCH] 提交版本 4.13.0

---
 frameworks/FBSDKLoginKit.xcframework/ios-arm64_x86_64-simulator/FBSDKLoginKit.framework/Headers/FBSDKLoginKit-Swift.h |  450 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 400 insertions(+), 50 deletions(-)

diff --git a/frameworks/FBSDKLoginKit.xcframework/ios-arm64_x86_64-simulator/FBSDKLoginKit.framework/Headers/FBSDKLoginKit-Swift.h b/frameworks/FBSDKLoginKit.xcframework/ios-arm64_x86_64-simulator/FBSDKLoginKit.framework/Headers/FBSDKLoginKit-Swift.h
index 48aaf6a..64de80f 100644
--- a/frameworks/FBSDKLoginKit.xcframework/ios-arm64_x86_64-simulator/FBSDKLoginKit.framework/Headers/FBSDKLoginKit-Swift.h
+++ b/frameworks/FBSDKLoginKit.xcframework/ios-arm64_x86_64-simulator/FBSDKLoginKit.framework/Headers/FBSDKLoginKit-Swift.h
@@ -1,6 +1,6 @@
 #if 0
 #elif defined(__arm64__) && __arm64__
-// Generated by Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4)
+// Generated by Apple Swift version 6.2.3 effective-5.10 (swiftlang-6.2.3.3.21 clang-1700.6.3.2)
 #ifndef FBSDKLOGINKIT_SWIFT_H
 #define FBSDKLOGINKIT_SWIFT_H
 #pragma clang diagnostic push
@@ -42,6 +42,8 @@
 #include <string.h>
 #endif
 #if defined(__cplusplus)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnon-modular-include-in-framework-module"
 #if defined(__arm64e__) && __has_include(<ptrauth.h>)
 # include <ptrauth.h>
 #else
@@ -55,6 +57,7 @@
 # endif
 #pragma clang diagnostic pop
 #endif
+#pragma clang diagnostic pop
 #endif
 
 #if !defined(SWIFT_TYPEDEFS)
@@ -62,6 +65,7 @@
 # if __has_include(<uchar.h>)
 #  include <uchar.h>
 # elif !defined(__cplusplus)
+typedef unsigned char char8_t;
 typedef uint_least16_t char16_t;
 typedef uint_least32_t char32_t;
 # endif
@@ -295,6 +299,7 @@
 #pragma clang diagnostic ignored "-Wunknown-pragmas"
 #pragma clang diagnostic ignored "-Wnullability"
 #pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
+#pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
 
 #if __has_attribute(external_source_symbol)
 # pragma push_macro("any")
@@ -305,8 +310,17 @@
 
 #if defined(__OBJC__)
 
-@class NSString;
+/// The app switch behavior preference to use for a login attempt.
+/// App switch allows users to switch to the Facebook app for authentication if installed.
+typedef SWIFT_ENUM_NAMED(NSUInteger, FBSDKAppSwitch, "AppSwitch", open) {
+/// Do not use app switch. Use browser-based login (Safari View Controller).
+  FBSDKAppSwitchDisabled = 0,
+/// Use app switch if the Facebook app is installed.
+/// This allows users to switch to the Facebook app for authentication. This is the default.
+  FBSDKAppSwitchEnabled = 1,
+};
 
+@class NSString;
 /// Represents a code verifier used in the PKCE (Proof Key for Code Exchange)
 /// process. This is a cryptographically random string using the characters
 /// A-Z, a-z, 0-9, and the punctuation characters -._~ (hyphen, period,
@@ -341,7 +355,6 @@
 
 @class NSURL;
 @class NSDate;
-
 /// Describes the initial response when starting the device login flow.
 /// This is used by <code>DeviceLoginManager</code>.
 SWIFT_CLASS_NAMED("DeviceLoginCodeInfo")
@@ -374,7 +387,6 @@
 };
 
 @protocol FBSDKDeviceLoginManagerDelegate;
-
 /// Use this class to perform a device login flow.
 /// The device login flow starts by requesting a code from the device login API.
 /// This class informs the delegate when this code is received. You should then present the
@@ -405,14 +417,11 @@
 
 @class NSNetService;
 @class NSNumber;
-
 @interface FBSDKDeviceLoginManager (SWIFT_EXTENSION(FBSDKLoginKit)) <NSNetServiceDelegate>
 - (void)netService:(NSNetService * _Nonnull)service didNotPublish:(NSDictionary<NSString *, NSNumber *> * _Nonnull)errorValues;
 @end
 
-
 @class FBSDKDeviceLoginManagerResult;
-
 /// A delegate for <code>DeviceLoginManager</code>.
 SWIFT_PROTOCOL_NAMED("DeviceLoginManagerDelegate")
 @protocol FBSDKDeviceLoginManagerDelegate
@@ -429,7 +438,6 @@
 @end
 
 @class FBSDKAccessToken;
-
 /// Represents the results of the a device login flow. This is used by <code>DeviceLoginManager</code>
 SWIFT_CLASS_NAMED("DeviceLoginManagerResult")
 @interface FBSDKDeviceLoginManagerResult : NSObject
@@ -450,7 +458,6 @@
 enum FBSDKTooltipColorStyle : NSUInteger;
 enum FBSDKLoginTracking : NSUInteger;
 @class NSCoder;
-
 /// A button that initiates a log in or log out flow upon tapping.
 /// <code>LoginButton</code> works with <code>AccessToken.current</code> to determine what to display,
 /// and automatically starts authentication when tapped (i.e., you do not need to manually subscribe action targets).
@@ -477,6 +484,8 @@
 @property (nonatomic) enum FBSDKTooltipColorStyle tooltipColorStyle;
 /// Gets or sets the desired tracking preference to use for login attempts. Defaults to <code>.enabled</code>
 @property (nonatomic) enum FBSDKLoginTracking loginTracking;
+/// Gets or sets the app switch behavior. Defaults to <code>.enabled</code>
+@property (nonatomic) enum FBSDKAppSwitch appSwitch;
 /// Gets or sets an optional nonce to use for login attempts. A valid nonce must be a non-empty string without whitespace.
 /// An invalid nonce will not be set. Instead, default unique nonces will be used for login attempts.
 @property (nonatomic, copy) NSString * _Nullable nonce;
@@ -510,7 +519,6 @@
 };
 
 enum FBSDKTooltipViewArrowDirection : NSUInteger;
-
 /// Tooltip bubble with text in it used to display tips for UI elements,
 /// with a pointed arrow (to refer to the UI element).
 /// The tooltip fades in and will automatically fade out. See <code>displayDuration</code>.
@@ -582,7 +590,6 @@
 };
 
 @protocol FBSDKLoginTooltipViewDelegate;
-
 /// Represents a tooltip to be displayed next to a Facebook login button
 /// to highlight features for new users.
 /// The <code>FBSDKLoginButton</code> may display this view automatically. If you do
@@ -606,7 +613,6 @@
 - (nonnull instancetype)initWithTagline:(NSString * _Nullable)tagline message:(NSString * _Nullable)message colorStyle:(enum FBSDKTooltipColorStyle)colorStyle OBJC_DESIGNATED_INITIALIZER;
 - (void)presentInView:(UIView * _Nonnull)view withArrowPosition:(CGPoint)arrowPosition direction:(enum FBSDKTooltipViewArrowDirection)direction;
 @end
-
 
 /// Internal Type exposed to facilitate transition to Swift.
 /// API Subject to change or removal without warning. Do not use.
@@ -635,11 +641,92 @@
 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
 @end
 
-
-
+/// Errors emitted by <code>LoginManager.refreshLimitedLogin(...)</code>.
+/// Each case names the <em>specific</em> condition the SDK detected, so a developer
+/// can decide what to do without inspecting log output. The textual messages
+/// returned by <code>errorDescription</code> describe the condition in actionable terms.
+typedef SWIFT_ENUM_NAMED(NSInteger, FBSDKLimitedLoginRefreshError, "LimitedLoginRefreshError", open) {
+/// <code>AuthenticationToken.current</code> is <code>nil</code>. There is no Limited Login session to
+/// refresh — the user has either never logged in on this device or has logged out.
+  FBSDKLimitedLoginRefreshErrorNoCurrentToken = 0,
+/// <code>Profile.current</code> exists but is not a Limited Login profile (<code>isLimited == false</code>).
+/// <code>refreshLimitedLogin</code> only operates on Limited Login sessions; full Login sessions
+/// use a different refresh mechanism.
+  FBSDKLimitedLoginRefreshErrorNotLimitedLogin = 1,
+/// The Facebook session backing this token has expired (or never existed for this
+/// browser session). The user must complete a full login flow to obtain a new token.
+/// Maps to OIDC error code <code>login_required</code>.
+  FBSDKLimitedLoginRefreshErrorLoginRequired = 2,
+/// The user has revoked one or more permissions, or new permissions are being
+/// requested that were not previously granted. The user must complete a full login
+/// flow to grant the missing consent. Maps to OIDC error code <code>consent_required</code>.
+  FBSDKLimitedLoginRefreshErrorConsentRequired = 3,
+/// SECURITY: the refreshed token’s <code>sub</code> claim does not match the previously
+/// authenticated user’s ID. The SDK refused to swap in the new token to prevent
+/// session hijacking. Treat this as a state inconsistency: log the user out and
+/// require a fresh login.
+  FBSDKLimitedLoginRefreshErrorUserMismatch = 4,
+/// A transport-level network error occurred (DNS failure, connection reset,
+/// TLS handshake failure, etc.). Safe to retry once connectivity is restored.
+  FBSDKLimitedLoginRefreshErrorNetworkError = 5,
+/// The refresh request did not complete within the SDK’s timeout (30 seconds).
+/// Safe to retry. Repeated timeouts may indicate a backend or network issue.
+  FBSDKLimitedLoginRefreshErrorTimeout = 6,
+/// The client-side rate limiter is throttling refresh attempts. Inspect
+/// <code>RefreshRateLimiter.shared.timeUntilNextAllowedAttempt()</code> to know how long
+/// to wait before retrying.
+  FBSDKLimitedLoginRefreshErrorRateLimited = 7,
+/// The server returned a 2xx response, but its body could not be parsed as the
+/// expected refresh response (missing <code>id_token</code> field, malformed JSON, or claims
+/// that fail OIDC structural validation such as missing <code>iss</code>/<code>aud</code>/<code>nonce</code>/<code>sub</code>).
+/// Indicates a server-side issue or a protocol drift; not retryable client-side.
+  FBSDKLimitedLoginRefreshErrorInvalidResponse = 8,
+/// The user cancelled an explicit (UI-presenting) login dialog. Only emitted by
+/// <code>.explicitOnly</code> and the explicit fallback in <code>.automatic</code>.
+  FBSDKLimitedLoginRefreshErrorCancelled = 9,
+/// The Limited Login Refresh feature is disabled by the
+/// <code>FBSDKFeatureLimitedLoginRefresh</code> server-side feature flag. The SDK is
+/// behaving as a kill switch — no refresh path will run while the flag is off.
+/// Not retryable; recovery requires the flag to be flipped on server-side.
+  FBSDKLimitedLoginRefreshErrorFeatureDisabled = 10,
+/// The current device is running an iOS version older than 13.0. The DPoP
+/// (<code>.directOnly</code>) and silent (<code>.silentOnly</code>) refresh paths require iOS 13+ APIs.
+  FBSDKLimitedLoginRefreshErrorUnsupportedPlatform = 11,
+/// The current <code>AuthenticationToken</code> has no <code>cnf.jkt</code> claim, so the <code>.directOnly</code>
+/// refresh path cannot use it (DPoP needs the server to have bound a public-key
+/// thumbprint to the token at issuance time). Typical causes:
+/// (a) the token was issued before the SDK supported DPoP key binding;
+/// (b) the device’s DPoP keypair was wiped (e.g. app reinstall) and no longer
+/// matches the token’s <code>cnf.jkt</code>;
+/// (c) the keychain was unavailable when the token was minted, so <code>dpop_jkt</code>
+/// was silently omitted from the login request (see <code>.dpopKeyGenerationFailed</code>);
+/// or
+/// (d) the server-side feature flag was off when the token was issued.
+/// Recovery: complete a fresh Limited Login (e.g. via <code>.explicitOnly</code> or
+/// <code>.automatic</code>) to mint a newly-bound token. Under <code>.automatic</code>, this case
+/// falls through to silent refresh, which sends <code>dpop_jkt</code> to mint a freshly
+/// bound token; if silent then requires user interaction it falls back to
+/// explicit.
+  FBSDKLimitedLoginRefreshErrorNotDPoPBound = 12,
+/// The SDK could not generate or load the DPoP private key from the keychain.
+/// The most common cause is the host app lacking a <code>keychain-access-groups</code>
+/// entitlement (e.g. an unsigned simulator build, or a development build with
+/// no <code>DEVELOPMENT_TEAM</code>/<code>CODE_SIGN_ENTITLEMENTS</code> configured). Other causes:
+/// device locked before first unlock, Secure Enclave access denied, keychain
+/// corruption.
+/// When this happens at login time, <code>dpop_jkt</code> is silently omitted and the
+/// resulting token has no <code>cnf.jkt</code> — subsequent <code>.directOnly</code> refreshes will
+/// return <code>.notDPoPBound</code>. When it happens at refresh time, the SDK surfaces
+/// this case directly. Inspect device console logs filtered to
+/// <code>com.facebook.sdk</code> for the underlying <code>OSStatus</code> / <code>CFError</code> from
+/// <code>SecKeyCreateRandomKey</code> / <code>SecAccessControlCreateWithFlags</code>.
+  FBSDKLimitedLoginRefreshErrorDpopKeyGenerationFailed = 13,
+/// An error the SDK could not classify into one of the cases above.
+  FBSDKLimitedLoginRefreshErrorUnknown = 14,
+};
+static NSString * _Nonnull const FBSDKLimitedLoginRefreshErrorDomain = @"FBSDKLoginKit.LimitedLoginRefreshError";
 
 @class FBSDKLoginManagerLoginResult;
-
 /// A delegate for <code>FBSDKLoginButton</code>
 SWIFT_PROTOCOL_NAMED("LoginButtonDelegate")
 @protocol FBSDKLoginButtonDelegate <NSObject>
@@ -658,7 +745,6 @@
 - (BOOL)loginButtonWillLogin:(FBSDKLoginButton * _Nonnull)loginButton SWIFT_WARN_UNUSED_RESULT;
 @end
 
-
 /// A configuration to use for modifying the behavior of a login attempt.
 SWIFT_CLASS_NAMED("LoginConfiguration")
 @interface FBSDKLoginConfiguration : NSObject
@@ -667,6 +753,8 @@
 @property (nonatomic, readonly, copy) NSString * _Nonnull nonce;
 /// The tracking  preference. Defaults to <code>.enabled</code>.
 @property (nonatomic, readonly) enum FBSDKLoginTracking tracking;
+/// The app switch behavior. Defaults to <code>.enabled</code>.
+@property (nonatomic, readonly) enum FBSDKAppSwitch appSwitch;
 /// The requested permissions for the login attempt. Defaults to an empty set.
 @property (nonatomic, readonly, copy) NSSet<FBSDKPermission *> * _Nonnull requestedPermissions;
 /// The Messenger Page Id associated with this login request.
@@ -689,6 +777,14 @@
 /// @param nonce an optional nonce to use for the login attempt. A valid nonce must be a non-empty string without whitespace.
 /// Creation of the configuration will fail if the nonce is invalid.
 /// @param messengerPageId the associated page id  to use for a login attempt.
+/// @param appSwitch the app switch behavior to use for a login attempt.
+- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking nonce:(NSString * _Nonnull)nonce messengerPageId:(NSString * _Nullable)messengerPageId appSwitch:(enum FBSDKAppSwitch)appSwitch;
+/// Attempts to initialize a new configuration with the expected parameters.
+/// @param permissions the requested permissions for a login attempt. Permissions must be an array of strings that do not contain whitespace.
+/// @param tracking the tracking preference to use for a login attempt.
+/// @param nonce an optional nonce to use for the login attempt. A valid nonce must be a non-empty string without whitespace.
+/// Creation of the configuration will fail if the nonce is invalid.
+/// @param messengerPageId the associated page id  to use for a login attempt.
 /// @param authType auth_type param to use for login.
 - (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking nonce:(NSString * _Nonnull)nonce messengerPageId:(NSString * _Nullable)messengerPageId authType:(FBSDKLoginAuthType _Nullable)authType;
 /// Attempts to initialize a new configuration with the expected parameters.
@@ -696,7 +792,23 @@
 /// @param tracking the tracking preference to use for a login attempt.
 /// @param nonce an optional nonce to use for the login attempt. A valid nonce must be a non-empty string without whitespace.
 /// Creation of the configuration will fail if the nonce is invalid.
+/// @param messengerPageId the associated page id  to use for a login attempt.
+/// @param authType auth_type param to use for login.
+/// @param appSwitch the app switch behavior to use for a login attempt.
+- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking nonce:(NSString * _Nonnull)nonce messengerPageId:(NSString * _Nullable)messengerPageId authType:(FBSDKLoginAuthType _Nullable)authType appSwitch:(enum FBSDKAppSwitch)appSwitch;
+/// Attempts to initialize a new configuration with the expected parameters.
+/// @param permissions the requested permissions for a login attempt. Permissions must be an array of strings that do not contain whitespace.
+/// @param tracking the tracking preference to use for a login attempt.
+/// @param nonce an optional nonce to use for the login attempt. A valid nonce must be a non-empty string without whitespace.
+/// Creation of the configuration will fail if the nonce is invalid.
 - (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking nonce:(NSString * _Nonnull)nonce;
+/// Attempts to initialize a new configuration with the expected parameters.
+/// @param permissions the requested permissions for a login attempt. Permissions must be an array of strings that do not contain whitespace.
+/// @param tracking the tracking preference to use for a login attempt.
+/// @param nonce an optional nonce to use for the login attempt. A valid nonce must be a non-empty string without whitespace.
+/// @param appSwitch the app switch behavior to use for a login attempt.
+/// Creation of the configuration will fail if the nonce is invalid.
+- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking nonce:(NSString * _Nonnull)nonce appSwitch:(enum FBSDKAppSwitch)appSwitch;
 /// Attempts to initialize a new configuration with the expected parameters.
 /// @param permissions the requested permissions for the login attempt. Permissions must be an array of strings that do not contain whitespace.
 /// @param tracking the tracking preference to use for a login attempt.
@@ -706,8 +818,21 @@
 /// @param permissions the requested permissions for the login attempt. Permissions must be an array of strings that do not contain whitespace.
 /// @param tracking the tracking preference to use for a login attempt.
 /// @param messengerPageId the associated page id  to use for a login attempt.
+/// @param appSwitch the app switch behavior to use for a login attempt.
+- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking messengerPageId:(NSString * _Nullable)messengerPageId appSwitch:(enum FBSDKAppSwitch)appSwitch;
+/// Attempts to initialize a new configuration with the expected parameters.
+/// @param permissions the requested permissions for the login attempt. Permissions must be an array of strings that do not contain whitespace.
+/// @param tracking the tracking preference to use for a login attempt.
+/// @param messengerPageId the associated page id  to use for a login attempt.
 /// @param authType auth_type param to use for login.
 - (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking messengerPageId:(NSString * _Nullable)messengerPageId authType:(FBSDKLoginAuthType _Nullable)authType;
+/// Attempts to initialize a new configuration with the expected parameters.
+/// @param permissions the requested permissions for the login attempt. Permissions must be an array of strings that do not contain whitespace.
+/// @param tracking the tracking preference to use for a login attempt.
+/// @param messengerPageId the associated page id  to use for a login attempt.
+/// @param authType auth_type param to use for login.
+/// @param appSwitch the app switch behavior to use for a login attempt.
+- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking messengerPageId:(NSString * _Nullable)messengerPageId authType:(FBSDKLoginAuthType _Nullable)authType appSwitch:(enum FBSDKAppSwitch)appSwitch;
 /// Attempts to initialize a new configuration with the expected parameters.
 /// @param permissions the requested permissions for a login attempt. Permissions must be an array of strings that do not contain whitespace.
 /// @param tracking the tracking preference to use for a login attempt.
@@ -715,15 +840,25 @@
 /// Creation of the configuration will fail if the nonce is invalid.
 /// @param messengerPageId the associated page id  to use for a login attempt.
 /// @param authType auth_type param to use for login.
+/// @param appSwitch the app switch behavior to use for a login attempt. Defaults to <code>.enabled</code>.
 /// @param codeVerifier The code verifier used in the PKCE process.
-- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking nonce:(NSString * _Nonnull)nonce messengerPageId:(NSString * _Nullable)messengerPageId authType:(FBSDKLoginAuthType _Nullable)authType codeVerifier:(FBSDKCodeVerifier * _Nonnull)codeVerifier OBJC_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking nonce:(NSString * _Nonnull)nonce messengerPageId:(NSString * _Nullable)messengerPageId authType:(FBSDKLoginAuthType _Nullable)authType appSwitch:(enum FBSDKAppSwitch)appSwitch codeVerifier:(FBSDKCodeVerifier * _Nonnull)codeVerifier OBJC_DESIGNATED_INITIALIZER;
 /// Attempts to initialize a new configuration with the expected parameters.
 /// @param permissions the requested permissions for the login attempt. Permissions must be an array of strings that do not contain whitespace.
 /// @param tracking the tracking preference to use for a login attempt.
 - (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking;
 /// Attempts to initialize a new configuration with the expected parameters.
+/// @param permissions the requested permissions for the login attempt. Permissions must be an array of strings that do not contain whitespace.
+/// @param tracking the tracking preference to use for a login attempt.
+/// @param appSwitch the app switch behavior to use for a login attempt.
+- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking appSwitch:(enum FBSDKAppSwitch)appSwitch;
+/// Attempts to initialize a new configuration with the expected parameters.
 /// @param tracking the login tracking preference to use for a login attempt.
 - (nullable instancetype)initWithTracking:(enum FBSDKLoginTracking)tracking;
+/// Attempts to initialize a new configuration with the expected parameters.
+/// @param tracking the login tracking preference to use for a login attempt.
+/// @param appSwitch the app switch behavior to use for a login attempt.
+- (nullable instancetype)initWithTracking:(enum FBSDKLoginTracking)tracking appSwitch:(enum FBSDKAppSwitch)appSwitch;
 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
 @end
@@ -756,7 +891,6 @@
 };
 
 @class UIViewController;
-
 /// Provides methods for logging the user in and out.
 /// It works directly with <code>AccessToken</code> (for data access) and <code>AuthenticationToken</code> (for authentication);
 /// it sets the “current” tokens upon successful authorizations (or sets to <code>nil</code> in case of <code>logOut</code>).
@@ -815,7 +949,7 @@
 /// @warning This method will reauthorize using a <code>LoginConfiguration</code> with <code>FBSDKLoginTracking</code> set to <code>.enabled</code>.
 /// @warning This method will present UI the user. You typically should call this if <code>AccessToken.isDataAccessExpired</code>
 /// is true.
-- (void)reauthorizeDataAccess:(UIViewController * _Nonnull)viewController handler:(FBSDKLoginManagerLoginResultBlock _Nonnull)handler;
+- (void)reauthorizeDataAccess:(UIViewController * _Nullable)viewController handler:(FBSDKLoginManagerLoginResultBlock _Nonnull)handler;
 /// Logs the user out
 /// This nils out the singleton instances of <code>AccessToken</code>, <code>AuthenticationToken</code> and <code>Profle</code>.
 /// @note This is only a client side logout. It will not log the user out of their Facebook account.
@@ -823,10 +957,19 @@
 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
 @end
 
-
+enum FBSDKRefreshFallbackPolicy : NSInteger;
+@class FBSDKProfile;
+@interface FBSDKLoginManager (SWIFT_EXTENSION(FBSDKLoginKit))
+/// Refreshes a Limited Login session by obtaining an updated profile and authentication token.
+/// This is the Objective-C compatible version of <code>refreshLimitedLogin(from:fallbackPolicy:completion:)</code>.
+/// @param viewController The view controller from which to present login UI if needed.
+/// If nil, the topmost view controller will be used.
+/// @param fallbackPolicy The policy for handling silent refresh failures.
+/// @param completion A closure called with the refreshed <code>Profile</code> on success, or an error on failure.
+- (void)refreshLimitedLoginFromViewController:(UIViewController * _Nullable)viewController fallbackPolicy:(enum FBSDKRefreshFallbackPolicy)fallbackPolicy completion:(void (^ _Nonnull)(FBSDKProfile * _Nullable, NSError * _Nullable))completion;
+@end
 
 @class UIApplication;
-
 @interface FBSDKLoginManager (SWIFT_EXTENSION(FBSDKLoginKit)) <FBSDKURLOpening>
 + (FBSDKLoginManager * _Nonnull)makeOpener SWIFT_WARN_UNUSED_RESULT;
 - (BOOL)application:(UIApplication * _Nullable)application openURL:(NSURL * _Nullable)url sourceApplication:(NSString * _Nullable)sourceApplication annotation:(id _Nullable)annotation SWIFT_WARN_UNUSED_RESULT;
@@ -837,7 +980,6 @@
 @end
 
 @class FBSDKAuthenticationToken;
-
 /// Describes the result of a login attempt.
 SWIFT_CLASS_NAMED("LoginManagerLoginResult")
 @interface FBSDKLoginManagerLoginResult : NSObject
@@ -863,7 +1005,6 @@
 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
 @end
-
 
 /// The <code>LoginTooltipViewDelegate</code> protocol defines the methods used to receive event
 /// notifications from <code>FBLoginTooltipView</code> objects.
@@ -892,8 +1033,42 @@
   FBSDKLoginTrackingLimited = 1,
 };
 
-
-@class FBSDKProfile;
+/// Strategy for <code>LoginManager.refreshLimitedLogin(...)</code>.
+/// The SDK provides three concrete refresh mechanisms (<code>.silentOnly</code>, <code>.directOnly</code>,
+/// <code>.explicitOnly</code>) and one orchestrator (<code>.automatic</code>) that cascades through them.
+typedef SWIFT_ENUM_NAMED(NSInteger, FBSDKRefreshFallbackPolicy, "RefreshFallbackPolicy", open) {
+/// Cascade through the available refresh mechanisms, falling back to higher-friction
+/// options when lower-friction ones cannot recover. Order:
+/// <ol>
+///   <li>
+///     <code>.directOnly</code> (truly silent, DPoP-bound HTTPS POST).
+///   </li>
+///   <li>
+///     On any failure other than <code>.featureDisabled</code> (including <code>.notDPoPBound</code>),
+///     fall back to <code>.silentOnly</code> (<code>prompt=none</code> via ASWebAuthenticationSession).
+///     Silent re-sends <code>dpop_jkt</code> to mint a freshly bound token, so it can recover
+///     both a missing binding (<code>.notDPoPBound</code>) and transient direct-endpoint failures.
+///   </li>
+///   <li>
+///     If <code>.silentOnly</code> returns <code>.loginRequired</code> or <code>.consentRequired</code>, fall back
+///     to <code>.explicitOnly</code>. Otherwise propagate the result.
+///   </li>
+/// </ol>
+/// <code>.featureDisabled</code> is <em>never</em> recovered — the kill switch is respected.
+  FBSDKRefreshFallbackPolicyAutomatic = 0,
+/// Run only the <code>prompt=none</code> silent OIDC flow via <code>ASWebAuthenticationSession</code>.
+/// Returns the result with no fallback. The user sees an Apple system consent
+/// modal but no Facebook UI.
+  FBSDKRefreshFallbackPolicySilentOnly = 1,
+/// Run only an explicit Limited Login flow (presents the standard Facebook login
+/// dialog). Use when the caller wants to be sure the user re-authenticates.
+  FBSDKRefreshFallbackPolicyExplicitOnly = 2,
+/// Run only the truly-silent direct refresh (DPoP-bound HTTPS POST to the refresh
+/// endpoint). Returns <code>.notDPoPBound</code> when the current token has no <code>cnf.jkt</code>
+/// claim, or <code>.loginRequired</code> when the server rejects the proof (e.g. the device
+/// key no longer matches <code>cnf.jkt</code>). Use when no user-visible UI is acceptable.
+  FBSDKRefreshFallbackPolicyDirectOnly = 3,
+};
 
 /// Internal Type exposed to facilitate transition to Swift.
 /// API Subject to change or removal without warning. Do not use.
@@ -937,7 +1112,7 @@
 #endif
 
 #elif defined(__x86_64__) && __x86_64__
-// Generated by Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4)
+// Generated by Apple Swift version 6.2.3 effective-5.10 (swiftlang-6.2.3.3.21 clang-1700.6.3.2)
 #ifndef FBSDKLOGINKIT_SWIFT_H
 #define FBSDKLOGINKIT_SWIFT_H
 #pragma clang diagnostic push
@@ -979,6 +1154,8 @@
 #include <string.h>
 #endif
 #if defined(__cplusplus)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnon-modular-include-in-framework-module"
 #if defined(__arm64e__) && __has_include(<ptrauth.h>)
 # include <ptrauth.h>
 #else
@@ -992,6 +1169,7 @@
 # endif
 #pragma clang diagnostic pop
 #endif
+#pragma clang diagnostic pop
 #endif
 
 #if !defined(SWIFT_TYPEDEFS)
@@ -999,6 +1177,7 @@
 # if __has_include(<uchar.h>)
 #  include <uchar.h>
 # elif !defined(__cplusplus)
+typedef unsigned char char8_t;
 typedef uint_least16_t char16_t;
 typedef uint_least32_t char32_t;
 # endif
@@ -1232,6 +1411,7 @@
 #pragma clang diagnostic ignored "-Wunknown-pragmas"
 #pragma clang diagnostic ignored "-Wnullability"
 #pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
+#pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
 
 #if __has_attribute(external_source_symbol)
 # pragma push_macro("any")
@@ -1242,8 +1422,17 @@
 
 #if defined(__OBJC__)
 
-@class NSString;
+/// The app switch behavior preference to use for a login attempt.
+/// App switch allows users to switch to the Facebook app for authentication if installed.
+typedef SWIFT_ENUM_NAMED(NSUInteger, FBSDKAppSwitch, "AppSwitch", open) {
+/// Do not use app switch. Use browser-based login (Safari View Controller).
+  FBSDKAppSwitchDisabled = 0,
+/// Use app switch if the Facebook app is installed.
+/// This allows users to switch to the Facebook app for authentication. This is the default.
+  FBSDKAppSwitchEnabled = 1,
+};
 
+@class NSString;
 /// Represents a code verifier used in the PKCE (Proof Key for Code Exchange)
 /// process. This is a cryptographically random string using the characters
 /// A-Z, a-z, 0-9, and the punctuation characters -._~ (hyphen, period,
@@ -1278,7 +1467,6 @@
 
 @class NSURL;
 @class NSDate;
-
 /// Describes the initial response when starting the device login flow.
 /// This is used by <code>DeviceLoginManager</code>.
 SWIFT_CLASS_NAMED("DeviceLoginCodeInfo")
@@ -1311,7 +1499,6 @@
 };
 
 @protocol FBSDKDeviceLoginManagerDelegate;
-
 /// Use this class to perform a device login flow.
 /// The device login flow starts by requesting a code from the device login API.
 /// This class informs the delegate when this code is received. You should then present the
@@ -1342,14 +1529,11 @@
 
 @class NSNetService;
 @class NSNumber;
-
 @interface FBSDKDeviceLoginManager (SWIFT_EXTENSION(FBSDKLoginKit)) <NSNetServiceDelegate>
 - (void)netService:(NSNetService * _Nonnull)service didNotPublish:(NSDictionary<NSString *, NSNumber *> * _Nonnull)errorValues;
 @end
 
-
 @class FBSDKDeviceLoginManagerResult;
-
 /// A delegate for <code>DeviceLoginManager</code>.
 SWIFT_PROTOCOL_NAMED("DeviceLoginManagerDelegate")
 @protocol FBSDKDeviceLoginManagerDelegate
@@ -1366,7 +1550,6 @@
 @end
 
 @class FBSDKAccessToken;
-
 /// Represents the results of the a device login flow. This is used by <code>DeviceLoginManager</code>
 SWIFT_CLASS_NAMED("DeviceLoginManagerResult")
 @interface FBSDKDeviceLoginManagerResult : NSObject
@@ -1387,7 +1570,6 @@
 enum FBSDKTooltipColorStyle : NSUInteger;
 enum FBSDKLoginTracking : NSUInteger;
 @class NSCoder;
-
 /// A button that initiates a log in or log out flow upon tapping.
 /// <code>LoginButton</code> works with <code>AccessToken.current</code> to determine what to display,
 /// and automatically starts authentication when tapped (i.e., you do not need to manually subscribe action targets).
@@ -1414,6 +1596,8 @@
 @property (nonatomic) enum FBSDKTooltipColorStyle tooltipColorStyle;
 /// Gets or sets the desired tracking preference to use for login attempts. Defaults to <code>.enabled</code>
 @property (nonatomic) enum FBSDKLoginTracking loginTracking;
+/// Gets or sets the app switch behavior. Defaults to <code>.enabled</code>
+@property (nonatomic) enum FBSDKAppSwitch appSwitch;
 /// Gets or sets an optional nonce to use for login attempts. A valid nonce must be a non-empty string without whitespace.
 /// An invalid nonce will not be set. Instead, default unique nonces will be used for login attempts.
 @property (nonatomic, copy) NSString * _Nullable nonce;
@@ -1447,7 +1631,6 @@
 };
 
 enum FBSDKTooltipViewArrowDirection : NSUInteger;
-
 /// Tooltip bubble with text in it used to display tips for UI elements,
 /// with a pointed arrow (to refer to the UI element).
 /// The tooltip fades in and will automatically fade out. See <code>displayDuration</code>.
@@ -1519,7 +1702,6 @@
 };
 
 @protocol FBSDKLoginTooltipViewDelegate;
-
 /// Represents a tooltip to be displayed next to a Facebook login button
 /// to highlight features for new users.
 /// The <code>FBSDKLoginButton</code> may display this view automatically. If you do
@@ -1543,7 +1725,6 @@
 - (nonnull instancetype)initWithTagline:(NSString * _Nullable)tagline message:(NSString * _Nullable)message colorStyle:(enum FBSDKTooltipColorStyle)colorStyle OBJC_DESIGNATED_INITIALIZER;
 - (void)presentInView:(UIView * _Nonnull)view withArrowPosition:(CGPoint)arrowPosition direction:(enum FBSDKTooltipViewArrowDirection)direction;
 @end
-
 
 /// Internal Type exposed to facilitate transition to Swift.
 /// API Subject to change or removal without warning. Do not use.
@@ -1572,11 +1753,92 @@
 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
 @end
 
-
-
+/// Errors emitted by <code>LoginManager.refreshLimitedLogin(...)</code>.
+/// Each case names the <em>specific</em> condition the SDK detected, so a developer
+/// can decide what to do without inspecting log output. The textual messages
+/// returned by <code>errorDescription</code> describe the condition in actionable terms.
+typedef SWIFT_ENUM_NAMED(NSInteger, FBSDKLimitedLoginRefreshError, "LimitedLoginRefreshError", open) {
+/// <code>AuthenticationToken.current</code> is <code>nil</code>. There is no Limited Login session to
+/// refresh — the user has either never logged in on this device or has logged out.
+  FBSDKLimitedLoginRefreshErrorNoCurrentToken = 0,
+/// <code>Profile.current</code> exists but is not a Limited Login profile (<code>isLimited == false</code>).
+/// <code>refreshLimitedLogin</code> only operates on Limited Login sessions; full Login sessions
+/// use a different refresh mechanism.
+  FBSDKLimitedLoginRefreshErrorNotLimitedLogin = 1,
+/// The Facebook session backing this token has expired (or never existed for this
+/// browser session). The user must complete a full login flow to obtain a new token.
+/// Maps to OIDC error code <code>login_required</code>.
+  FBSDKLimitedLoginRefreshErrorLoginRequired = 2,
+/// The user has revoked one or more permissions, or new permissions are being
+/// requested that were not previously granted. The user must complete a full login
+/// flow to grant the missing consent. Maps to OIDC error code <code>consent_required</code>.
+  FBSDKLimitedLoginRefreshErrorConsentRequired = 3,
+/// SECURITY: the refreshed token’s <code>sub</code> claim does not match the previously
+/// authenticated user’s ID. The SDK refused to swap in the new token to prevent
+/// session hijacking. Treat this as a state inconsistency: log the user out and
+/// require a fresh login.
+  FBSDKLimitedLoginRefreshErrorUserMismatch = 4,
+/// A transport-level network error occurred (DNS failure, connection reset,
+/// TLS handshake failure, etc.). Safe to retry once connectivity is restored.
+  FBSDKLimitedLoginRefreshErrorNetworkError = 5,
+/// The refresh request did not complete within the SDK’s timeout (30 seconds).
+/// Safe to retry. Repeated timeouts may indicate a backend or network issue.
+  FBSDKLimitedLoginRefreshErrorTimeout = 6,
+/// The client-side rate limiter is throttling refresh attempts. Inspect
+/// <code>RefreshRateLimiter.shared.timeUntilNextAllowedAttempt()</code> to know how long
+/// to wait before retrying.
+  FBSDKLimitedLoginRefreshErrorRateLimited = 7,
+/// The server returned a 2xx response, but its body could not be parsed as the
+/// expected refresh response (missing <code>id_token</code> field, malformed JSON, or claims
+/// that fail OIDC structural validation such as missing <code>iss</code>/<code>aud</code>/<code>nonce</code>/<code>sub</code>).
+/// Indicates a server-side issue or a protocol drift; not retryable client-side.
+  FBSDKLimitedLoginRefreshErrorInvalidResponse = 8,
+/// The user cancelled an explicit (UI-presenting) login dialog. Only emitted by
+/// <code>.explicitOnly</code> and the explicit fallback in <code>.automatic</code>.
+  FBSDKLimitedLoginRefreshErrorCancelled = 9,
+/// The Limited Login Refresh feature is disabled by the
+/// <code>FBSDKFeatureLimitedLoginRefresh</code> server-side feature flag. The SDK is
+/// behaving as a kill switch — no refresh path will run while the flag is off.
+/// Not retryable; recovery requires the flag to be flipped on server-side.
+  FBSDKLimitedLoginRefreshErrorFeatureDisabled = 10,
+/// The current device is running an iOS version older than 13.0. The DPoP
+/// (<code>.directOnly</code>) and silent (<code>.silentOnly</code>) refresh paths require iOS 13+ APIs.
+  FBSDKLimitedLoginRefreshErrorUnsupportedPlatform = 11,
+/// The current <code>AuthenticationToken</code> has no <code>cnf.jkt</code> claim, so the <code>.directOnly</code>
+/// refresh path cannot use it (DPoP needs the server to have bound a public-key
+/// thumbprint to the token at issuance time). Typical causes:
+/// (a) the token was issued before the SDK supported DPoP key binding;
+/// (b) the device’s DPoP keypair was wiped (e.g. app reinstall) and no longer
+/// matches the token’s <code>cnf.jkt</code>;
+/// (c) the keychain was unavailable when the token was minted, so <code>dpop_jkt</code>
+/// was silently omitted from the login request (see <code>.dpopKeyGenerationFailed</code>);
+/// or
+/// (d) the server-side feature flag was off when the token was issued.
+/// Recovery: complete a fresh Limited Login (e.g. via <code>.explicitOnly</code> or
+/// <code>.automatic</code>) to mint a newly-bound token. Under <code>.automatic</code>, this case
+/// falls through to silent refresh, which sends <code>dpop_jkt</code> to mint a freshly
+/// bound token; if silent then requires user interaction it falls back to
+/// explicit.
+  FBSDKLimitedLoginRefreshErrorNotDPoPBound = 12,
+/// The SDK could not generate or load the DPoP private key from the keychain.
+/// The most common cause is the host app lacking a <code>keychain-access-groups</code>
+/// entitlement (e.g. an unsigned simulator build, or a development build with
+/// no <code>DEVELOPMENT_TEAM</code>/<code>CODE_SIGN_ENTITLEMENTS</code> configured). Other causes:
+/// device locked before first unlock, Secure Enclave access denied, keychain
+/// corruption.
+/// When this happens at login time, <code>dpop_jkt</code> is silently omitted and the
+/// resulting token has no <code>cnf.jkt</code> — subsequent <code>.directOnly</code> refreshes will
+/// return <code>.notDPoPBound</code>. When it happens at refresh time, the SDK surfaces
+/// this case directly. Inspect device console logs filtered to
+/// <code>com.facebook.sdk</code> for the underlying <code>OSStatus</code> / <code>CFError</code> from
+/// <code>SecKeyCreateRandomKey</code> / <code>SecAccessControlCreateWithFlags</code>.
+  FBSDKLimitedLoginRefreshErrorDpopKeyGenerationFailed = 13,
+/// An error the SDK could not classify into one of the cases above.
+  FBSDKLimitedLoginRefreshErrorUnknown = 14,
+};
+static NSString * _Nonnull const FBSDKLimitedLoginRefreshErrorDomain = @"FBSDKLoginKit.LimitedLoginRefreshError";
 
 @class FBSDKLoginManagerLoginResult;
-
 /// A delegate for <code>FBSDKLoginButton</code>
 SWIFT_PROTOCOL_NAMED("LoginButtonDelegate")
 @protocol FBSDKLoginButtonDelegate <NSObject>
@@ -1595,7 +1857,6 @@
 - (BOOL)loginButtonWillLogin:(FBSDKLoginButton * _Nonnull)loginButton SWIFT_WARN_UNUSED_RESULT;
 @end
 
-
 /// A configuration to use for modifying the behavior of a login attempt.
 SWIFT_CLASS_NAMED("LoginConfiguration")
 @interface FBSDKLoginConfiguration : NSObject
@@ -1604,6 +1865,8 @@
 @property (nonatomic, readonly, copy) NSString * _Nonnull nonce;
 /// The tracking  preference. Defaults to <code>.enabled</code>.
 @property (nonatomic, readonly) enum FBSDKLoginTracking tracking;
+/// The app switch behavior. Defaults to <code>.enabled</code>.
+@property (nonatomic, readonly) enum FBSDKAppSwitch appSwitch;
 /// The requested permissions for the login attempt. Defaults to an empty set.
 @property (nonatomic, readonly, copy) NSSet<FBSDKPermission *> * _Nonnull requestedPermissions;
 /// The Messenger Page Id associated with this login request.
@@ -1626,6 +1889,14 @@
 /// @param nonce an optional nonce to use for the login attempt. A valid nonce must be a non-empty string without whitespace.
 /// Creation of the configuration will fail if the nonce is invalid.
 /// @param messengerPageId the associated page id  to use for a login attempt.
+/// @param appSwitch the app switch behavior to use for a login attempt.
+- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking nonce:(NSString * _Nonnull)nonce messengerPageId:(NSString * _Nullable)messengerPageId appSwitch:(enum FBSDKAppSwitch)appSwitch;
+/// Attempts to initialize a new configuration with the expected parameters.
+/// @param permissions the requested permissions for a login attempt. Permissions must be an array of strings that do not contain whitespace.
+/// @param tracking the tracking preference to use for a login attempt.
+/// @param nonce an optional nonce to use for the login attempt. A valid nonce must be a non-empty string without whitespace.
+/// Creation of the configuration will fail if the nonce is invalid.
+/// @param messengerPageId the associated page id  to use for a login attempt.
 /// @param authType auth_type param to use for login.
 - (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking nonce:(NSString * _Nonnull)nonce messengerPageId:(NSString * _Nullable)messengerPageId authType:(FBSDKLoginAuthType _Nullable)authType;
 /// Attempts to initialize a new configuration with the expected parameters.
@@ -1633,7 +1904,23 @@
 /// @param tracking the tracking preference to use for a login attempt.
 /// @param nonce an optional nonce to use for the login attempt. A valid nonce must be a non-empty string without whitespace.
 /// Creation of the configuration will fail if the nonce is invalid.
+/// @param messengerPageId the associated page id  to use for a login attempt.
+/// @param authType auth_type param to use for login.
+/// @param appSwitch the app switch behavior to use for a login attempt.
+- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking nonce:(NSString * _Nonnull)nonce messengerPageId:(NSString * _Nullable)messengerPageId authType:(FBSDKLoginAuthType _Nullable)authType appSwitch:(enum FBSDKAppSwitch)appSwitch;
+/// Attempts to initialize a new configuration with the expected parameters.
+/// @param permissions the requested permissions for a login attempt. Permissions must be an array of strings that do not contain whitespace.
+/// @param tracking the tracking preference to use for a login attempt.
+/// @param nonce an optional nonce to use for the login attempt. A valid nonce must be a non-empty string without whitespace.
+/// Creation of the configuration will fail if the nonce is invalid.
 - (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking nonce:(NSString * _Nonnull)nonce;
+/// Attempts to initialize a new configuration with the expected parameters.
+/// @param permissions the requested permissions for a login attempt. Permissions must be an array of strings that do not contain whitespace.
+/// @param tracking the tracking preference to use for a login attempt.
+/// @param nonce an optional nonce to use for the login attempt. A valid nonce must be a non-empty string without whitespace.
+/// @param appSwitch the app switch behavior to use for a login attempt.
+/// Creation of the configuration will fail if the nonce is invalid.
+- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking nonce:(NSString * _Nonnull)nonce appSwitch:(enum FBSDKAppSwitch)appSwitch;
 /// Attempts to initialize a new configuration with the expected parameters.
 /// @param permissions the requested permissions for the login attempt. Permissions must be an array of strings that do not contain whitespace.
 /// @param tracking the tracking preference to use for a login attempt.
@@ -1643,8 +1930,21 @@
 /// @param permissions the requested permissions for the login attempt. Permissions must be an array of strings that do not contain whitespace.
 /// @param tracking the tracking preference to use for a login attempt.
 /// @param messengerPageId the associated page id  to use for a login attempt.
+/// @param appSwitch the app switch behavior to use for a login attempt.
+- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking messengerPageId:(NSString * _Nullable)messengerPageId appSwitch:(enum FBSDKAppSwitch)appSwitch;
+/// Attempts to initialize a new configuration with the expected parameters.
+/// @param permissions the requested permissions for the login attempt. Permissions must be an array of strings that do not contain whitespace.
+/// @param tracking the tracking preference to use for a login attempt.
+/// @param messengerPageId the associated page id  to use for a login attempt.
 /// @param authType auth_type param to use for login.
 - (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking messengerPageId:(NSString * _Nullable)messengerPageId authType:(FBSDKLoginAuthType _Nullable)authType;
+/// Attempts to initialize a new configuration with the expected parameters.
+/// @param permissions the requested permissions for the login attempt. Permissions must be an array of strings that do not contain whitespace.
+/// @param tracking the tracking preference to use for a login attempt.
+/// @param messengerPageId the associated page id  to use for a login attempt.
+/// @param authType auth_type param to use for login.
+/// @param appSwitch the app switch behavior to use for a login attempt.
+- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking messengerPageId:(NSString * _Nullable)messengerPageId authType:(FBSDKLoginAuthType _Nullable)authType appSwitch:(enum FBSDKAppSwitch)appSwitch;
 /// Attempts to initialize a new configuration with the expected parameters.
 /// @param permissions the requested permissions for a login attempt. Permissions must be an array of strings that do not contain whitespace.
 /// @param tracking the tracking preference to use for a login attempt.
@@ -1652,15 +1952,25 @@
 /// Creation of the configuration will fail if the nonce is invalid.
 /// @param messengerPageId the associated page id  to use for a login attempt.
 /// @param authType auth_type param to use for login.
+/// @param appSwitch the app switch behavior to use for a login attempt. Defaults to <code>.enabled</code>.
 /// @param codeVerifier The code verifier used in the PKCE process.
-- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking nonce:(NSString * _Nonnull)nonce messengerPageId:(NSString * _Nullable)messengerPageId authType:(FBSDKLoginAuthType _Nullable)authType codeVerifier:(FBSDKCodeVerifier * _Nonnull)codeVerifier OBJC_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking nonce:(NSString * _Nonnull)nonce messengerPageId:(NSString * _Nullable)messengerPageId authType:(FBSDKLoginAuthType _Nullable)authType appSwitch:(enum FBSDKAppSwitch)appSwitch codeVerifier:(FBSDKCodeVerifier * _Nonnull)codeVerifier OBJC_DESIGNATED_INITIALIZER;
 /// Attempts to initialize a new configuration with the expected parameters.
 /// @param permissions the requested permissions for the login attempt. Permissions must be an array of strings that do not contain whitespace.
 /// @param tracking the tracking preference to use for a login attempt.
 - (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking;
 /// Attempts to initialize a new configuration with the expected parameters.
+/// @param permissions the requested permissions for the login attempt. Permissions must be an array of strings that do not contain whitespace.
+/// @param tracking the tracking preference to use for a login attempt.
+/// @param appSwitch the app switch behavior to use for a login attempt.
+- (nullable instancetype)initWithPermissions:(NSArray<NSString *> * _Nonnull)permissions tracking:(enum FBSDKLoginTracking)tracking appSwitch:(enum FBSDKAppSwitch)appSwitch;
+/// Attempts to initialize a new configuration with the expected parameters.
 /// @param tracking the login tracking preference to use for a login attempt.
 - (nullable instancetype)initWithTracking:(enum FBSDKLoginTracking)tracking;
+/// Attempts to initialize a new configuration with the expected parameters.
+/// @param tracking the login tracking preference to use for a login attempt.
+/// @param appSwitch the app switch behavior to use for a login attempt.
+- (nullable instancetype)initWithTracking:(enum FBSDKLoginTracking)tracking appSwitch:(enum FBSDKAppSwitch)appSwitch;
 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
 @end
@@ -1693,7 +2003,6 @@
 };
 
 @class UIViewController;
-
 /// Provides methods for logging the user in and out.
 /// It works directly with <code>AccessToken</code> (for data access) and <code>AuthenticationToken</code> (for authentication);
 /// it sets the “current” tokens upon successful authorizations (or sets to <code>nil</code> in case of <code>logOut</code>).
@@ -1752,7 +2061,7 @@
 /// @warning This method will reauthorize using a <code>LoginConfiguration</code> with <code>FBSDKLoginTracking</code> set to <code>.enabled</code>.
 /// @warning This method will present UI the user. You typically should call this if <code>AccessToken.isDataAccessExpired</code>
 /// is true.
-- (void)reauthorizeDataAccess:(UIViewController * _Nonnull)viewController handler:(FBSDKLoginManagerLoginResultBlock _Nonnull)handler;
+- (void)reauthorizeDataAccess:(UIViewController * _Nullable)viewController handler:(FBSDKLoginManagerLoginResultBlock _Nonnull)handler;
 /// Logs the user out
 /// This nils out the singleton instances of <code>AccessToken</code>, <code>AuthenticationToken</code> and <code>Profle</code>.
 /// @note This is only a client side logout. It will not log the user out of their Facebook account.
@@ -1760,10 +2069,19 @@
 - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
 @end
 
-
+enum FBSDKRefreshFallbackPolicy : NSInteger;
+@class FBSDKProfile;
+@interface FBSDKLoginManager (SWIFT_EXTENSION(FBSDKLoginKit))
+/// Refreshes a Limited Login session by obtaining an updated profile and authentication token.
+/// This is the Objective-C compatible version of <code>refreshLimitedLogin(from:fallbackPolicy:completion:)</code>.
+/// @param viewController The view controller from which to present login UI if needed.
+/// If nil, the topmost view controller will be used.
+/// @param fallbackPolicy The policy for handling silent refresh failures.
+/// @param completion A closure called with the refreshed <code>Profile</code> on success, or an error on failure.
+- (void)refreshLimitedLoginFromViewController:(UIViewController * _Nullable)viewController fallbackPolicy:(enum FBSDKRefreshFallbackPolicy)fallbackPolicy completion:(void (^ _Nonnull)(FBSDKProfile * _Nullable, NSError * _Nullable))completion;
+@end
 
 @class UIApplication;
-
 @interface FBSDKLoginManager (SWIFT_EXTENSION(FBSDKLoginKit)) <FBSDKURLOpening>
 + (FBSDKLoginManager * _Nonnull)makeOpener SWIFT_WARN_UNUSED_RESULT;
 - (BOOL)application:(UIApplication * _Nullable)application openURL:(NSURL * _Nullable)url sourceApplication:(NSString * _Nullable)sourceApplication annotation:(id _Nullable)annotation SWIFT_WARN_UNUSED_RESULT;
@@ -1774,7 +2092,6 @@
 @end
 
 @class FBSDKAuthenticationToken;
-
 /// Describes the result of a login attempt.
 SWIFT_CLASS_NAMED("LoginManagerLoginResult")
 @interface FBSDKLoginManagerLoginResult : NSObject
@@ -1800,7 +2117,6 @@
 - (nonnull instancetype)init SWIFT_UNAVAILABLE;
 + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable");
 @end
-
 
 /// The <code>LoginTooltipViewDelegate</code> protocol defines the methods used to receive event
 /// notifications from <code>FBLoginTooltipView</code> objects.
@@ -1829,8 +2145,42 @@
   FBSDKLoginTrackingLimited = 1,
 };
 
-
-@class FBSDKProfile;
+/// Strategy for <code>LoginManager.refreshLimitedLogin(...)</code>.
+/// The SDK provides three concrete refresh mechanisms (<code>.silentOnly</code>, <code>.directOnly</code>,
+/// <code>.explicitOnly</code>) and one orchestrator (<code>.automatic</code>) that cascades through them.
+typedef SWIFT_ENUM_NAMED(NSInteger, FBSDKRefreshFallbackPolicy, "RefreshFallbackPolicy", open) {
+/// Cascade through the available refresh mechanisms, falling back to higher-friction
+/// options when lower-friction ones cannot recover. Order:
+/// <ol>
+///   <li>
+///     <code>.directOnly</code> (truly silent, DPoP-bound HTTPS POST).
+///   </li>
+///   <li>
+///     On any failure other than <code>.featureDisabled</code> (including <code>.notDPoPBound</code>),
+///     fall back to <code>.silentOnly</code> (<code>prompt=none</code> via ASWebAuthenticationSession).
+///     Silent re-sends <code>dpop_jkt</code> to mint a freshly bound token, so it can recover
+///     both a missing binding (<code>.notDPoPBound</code>) and transient direct-endpoint failures.
+///   </li>
+///   <li>
+///     If <code>.silentOnly</code> returns <code>.loginRequired</code> or <code>.consentRequired</code>, fall back
+///     to <code>.explicitOnly</code>. Otherwise propagate the result.
+///   </li>
+/// </ol>
+/// <code>.featureDisabled</code> is <em>never</em> recovered — the kill switch is respected.
+  FBSDKRefreshFallbackPolicyAutomatic = 0,
+/// Run only the <code>prompt=none</code> silent OIDC flow via <code>ASWebAuthenticationSession</code>.
+/// Returns the result with no fallback. The user sees an Apple system consent
+/// modal but no Facebook UI.
+  FBSDKRefreshFallbackPolicySilentOnly = 1,
+/// Run only an explicit Limited Login flow (presents the standard Facebook login
+/// dialog). Use when the caller wants to be sure the user re-authenticates.
+  FBSDKRefreshFallbackPolicyExplicitOnly = 2,
+/// Run only the truly-silent direct refresh (DPoP-bound HTTPS POST to the refresh
+/// endpoint). Returns <code>.notDPoPBound</code> when the current token has no <code>cnf.jkt</code>
+/// claim, or <code>.loginRequired</code> when the server rejects the proof (e.g. the device
+/// key no longer matches <code>cnf.jkt</code>). Use when no user-visible UI is acceptable.
+  FBSDKRefreshFallbackPolicyDirectOnly = 3,
+};
 
 /// Internal Type exposed to facilitate transition to Swift.
 /// API Subject to change or removal without warning. Do not use.

--
Gitblit v1.8.0