lpw
2026-07-15 1e76915d56eba893c684cf9794cb23f7017fe6a1
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.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51)
// 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
@@ -23,7 +23,6 @@
# include <swift/objc-prologue.h>
#endif
#pragma clang diagnostic ignored "-Wduplicate-method-match"
#pragma clang diagnostic ignored "-Wauto-import"
#if defined(__OBJC__)
#include <Foundation/Foundation.h>
@@ -32,10 +31,33 @@
#include <cstdint>
#include <cstddef>
#include <cstdbool>
#include <cstring>
#include <stdlib.h>
#include <new>
#include <type_traits>
#else
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#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
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wreserved-macro-identifier"
# ifndef __ptrauth_swift_value_witness_function_pointer
#  define __ptrauth_swift_value_witness_function_pointer(x)
# endif
# ifndef __ptrauth_swift_class_method_pointer
#  define __ptrauth_swift_class_method_pointer(x)
# endif
#pragma clang diagnostic pop
#endif
#pragma clang diagnostic pop
#endif
#if !defined(SWIFT_TYPEDEFS)
@@ -43,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
@@ -71,53 +94,66 @@
# if __has_feature(objc_class_property)
#  define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
# else
#  define SWIFT_CLASS_PROPERTY(...)
#  define SWIFT_CLASS_PROPERTY(...)
# endif
#endif
#if __has_attribute(objc_runtime_name)
# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
#else
# define SWIFT_RUNTIME_NAME(X)
#if !defined(SWIFT_RUNTIME_NAME)
# if __has_attribute(objc_runtime_name)
#  define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
# else
#  define SWIFT_RUNTIME_NAME(X)
# endif
#endif
#if __has_attribute(swift_name)
# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
#else
# define SWIFT_COMPILE_NAME(X)
#if !defined(SWIFT_COMPILE_NAME)
# if __has_attribute(swift_name)
#  define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
# else
#  define SWIFT_COMPILE_NAME(X)
# endif
#endif
#if __has_attribute(objc_method_family)
# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
#else
# define SWIFT_METHOD_FAMILY(X)
#if !defined(SWIFT_METHOD_FAMILY)
# if __has_attribute(objc_method_family)
#  define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
# else
#  define SWIFT_METHOD_FAMILY(X)
# endif
#endif
#if __has_attribute(noescape)
# define SWIFT_NOESCAPE __attribute__((noescape))
#else
# define SWIFT_NOESCAPE
#if !defined(SWIFT_NOESCAPE)
# if __has_attribute(noescape)
#  define SWIFT_NOESCAPE __attribute__((noescape))
# else
#  define SWIFT_NOESCAPE
# endif
#endif
#if __has_attribute(ns_consumed)
# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
#else
# define SWIFT_RELEASES_ARGUMENT
#if !defined(SWIFT_RELEASES_ARGUMENT)
# if __has_attribute(ns_consumed)
#  define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
# else
#  define SWIFT_RELEASES_ARGUMENT
# endif
#endif
#if __has_attribute(warn_unused_result)
# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
#else
# define SWIFT_WARN_UNUSED_RESULT
#if !defined(SWIFT_WARN_UNUSED_RESULT)
# if __has_attribute(warn_unused_result)
#  define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
# else
#  define SWIFT_WARN_UNUSED_RESULT
# endif
#endif
#if __has_attribute(noreturn)
# define SWIFT_NORETURN __attribute__((noreturn))
#else
# define SWIFT_NORETURN
#if !defined(SWIFT_NORETURN)
# if __has_attribute(noreturn)
#  define SWIFT_NORETURN __attribute__((noreturn))
# else
#  define SWIFT_NORETURN
# endif
#endif
#if !defined(SWIFT_CLASS_EXTRA)
# define SWIFT_CLASS_EXTRA
# define SWIFT_CLASS_EXTRA
#endif
#if !defined(SWIFT_PROTOCOL_EXTRA)
# define SWIFT_PROTOCOL_EXTRA
# define SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_ENUM_EXTRA)
# define SWIFT_ENUM_EXTRA
# define SWIFT_ENUM_EXTRA
#endif
#if !defined(SWIFT_CLASS)
# if __has_attribute(objc_subclassing_restricted)
@@ -137,28 +173,25 @@
#  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
# endif
#endif
#if !defined(SWIFT_PROTOCOL)
# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_EXTENSION)
# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
#endif
#if !defined(OBJC_DESIGNATED_INITIALIZER)
# if __has_attribute(objc_designated_initializer)
#  define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
# else
#  define OBJC_DESIGNATED_INITIALIZER
#  define OBJC_DESIGNATED_INITIALIZER
# endif
#endif
#if !defined(SWIFT_ENUM_ATTR)
# if defined(__has_attribute) && __has_attribute(enum_extensibility)
# if __has_attribute(enum_extensibility)
#  define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
# else
#  define SWIFT_ENUM_ATTR(_extensibility)
#  define SWIFT_ENUM_ATTR(_extensibility)
# endif
#endif
#if !defined(SWIFT_ENUM)
@@ -187,14 +220,16 @@
#if !defined(SWIFT_DEPRECATED_MSG)
# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
#endif
#if __has_feature(attribute_diagnose_if_objc)
# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
#else
# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
#if !defined(SWIFT_DEPRECATED_OBJC)
# if __has_feature(attribute_diagnose_if_objc)
#  define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
# else
#  define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
# endif
#endif
#if defined(__OBJC__)
#if !defined(IBSegueAction)
# define IBSegueAction
# define IBSegueAction
#endif
#endif
#if !defined(SWIFT_EXTERN)
@@ -207,26 +242,42 @@
#if !defined(SWIFT_CALL)
# define SWIFT_CALL __attribute__((swiftcall))
#endif
#if defined(__cplusplus)
#if !defined(SWIFT_NOEXCEPT)
# define SWIFT_NOEXCEPT noexcept
#if !defined(SWIFT_INDIRECT_RESULT)
# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result))
#endif
#if !defined(SWIFT_CONTEXT)
# define SWIFT_CONTEXT __attribute__((swift_context))
#endif
#if !defined(SWIFT_ERROR_RESULT)
# define SWIFT_ERROR_RESULT __attribute__((swift_error_result))
#endif
#if defined(__cplusplus)
# define SWIFT_NOEXCEPT noexcept
#else
#if !defined(SWIFT_NOEXCEPT)
# define SWIFT_NOEXCEPT 
#endif
#if !defined(SWIFT_C_INLINE_THUNK)
# if __has_attribute(always_inline)
# if __has_attribute(nodebug)
#  define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug))
# else
#  define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline))
# endif
# else
#  define SWIFT_C_INLINE_THUNK inline
# endif
#endif
#if defined(__cplusplus)
#if !defined(SWIFT_CXX_INT_DEFINED)
#define SWIFT_CXX_INT_DEFINED
namespace swift {
using Int = ptrdiff_t;
using UInt = size_t;
}
#if defined(_WIN32)
#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport)
#endif
#else
#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
# define SWIFT_IMPORT_STDLIB_SYMBOL
#endif
#endif
#if defined(__OBJC__)
#if __has_feature(modules)
#if __has_feature(objc_modules)
#if __has_warning("-Watimport-in-framework-header")
#pragma clang diagnostic ignored "-Watimport-in-framework-header"
#endif
@@ -248,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")
@@ -258,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,
@@ -294,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")
@@ -327,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
@@ -358,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
@@ -382,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
@@ -403,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).
@@ -430,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;
@@ -463,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>.
@@ -535,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
@@ -559,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.
@@ -588,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>
@@ -611,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
@@ -620,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.
@@ -642,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.
@@ -649,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.
@@ -659,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.
@@ -668,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
@@ -709,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>).
@@ -768,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.
@@ -776,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;
@@ -790,7 +980,6 @@
@end
@class FBSDKAuthenticationToken;
/// Describes the result of a login attempt.
SWIFT_CLASS_NAMED("LoginManagerLoginResult")
@interface FBSDKLoginManagerLoginResult : NSObject
@@ -816,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.
@@ -845,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.
@@ -876,20 +1098,21 @@
@property (nonatomic, copy) NSDate * _Nullable dataAccessExpirationDate;
@property (nonatomic, copy) NSString * _Nullable challenge;
@property (nonatomic, copy) NSString * _Nullable graphDomain;
@property (nonatomic, copy) NSString * _Nullable userTokenNonce;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
#endif
#if defined(__cplusplus)
#endif
#if __has_attribute(external_source_symbol)
# pragma clang attribute pop
#endif
#if defined(__cplusplus)
#endif
#pragma clang diagnostic pop
#endif
#elif defined(__x86_64__) && __x86_64__
// Generated by Apple Swift version 5.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51)
// 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
@@ -912,7 +1135,6 @@
# include <swift/objc-prologue.h>
#endif
#pragma clang diagnostic ignored "-Wduplicate-method-match"
#pragma clang diagnostic ignored "-Wauto-import"
#if defined(__OBJC__)
#include <Foundation/Foundation.h>
@@ -921,10 +1143,33 @@
#include <cstdint>
#include <cstddef>
#include <cstdbool>
#include <cstring>
#include <stdlib.h>
#include <new>
#include <type_traits>
#else
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#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
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wreserved-macro-identifier"
# ifndef __ptrauth_swift_value_witness_function_pointer
#  define __ptrauth_swift_value_witness_function_pointer(x)
# endif
# ifndef __ptrauth_swift_class_method_pointer
#  define __ptrauth_swift_class_method_pointer(x)
# endif
#pragma clang diagnostic pop
#endif
#pragma clang diagnostic pop
#endif
#if !defined(SWIFT_TYPEDEFS)
@@ -932,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
@@ -960,53 +1206,66 @@
# if __has_feature(objc_class_property)
#  define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
# else
#  define SWIFT_CLASS_PROPERTY(...)
#  define SWIFT_CLASS_PROPERTY(...)
# endif
#endif
#if __has_attribute(objc_runtime_name)
# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
#else
# define SWIFT_RUNTIME_NAME(X)
#if !defined(SWIFT_RUNTIME_NAME)
# if __has_attribute(objc_runtime_name)
#  define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
# else
#  define SWIFT_RUNTIME_NAME(X)
# endif
#endif
#if __has_attribute(swift_name)
# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
#else
# define SWIFT_COMPILE_NAME(X)
#if !defined(SWIFT_COMPILE_NAME)
# if __has_attribute(swift_name)
#  define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
# else
#  define SWIFT_COMPILE_NAME(X)
# endif
#endif
#if __has_attribute(objc_method_family)
# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
#else
# define SWIFT_METHOD_FAMILY(X)
#if !defined(SWIFT_METHOD_FAMILY)
# if __has_attribute(objc_method_family)
#  define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
# else
#  define SWIFT_METHOD_FAMILY(X)
# endif
#endif
#if __has_attribute(noescape)
# define SWIFT_NOESCAPE __attribute__((noescape))
#else
# define SWIFT_NOESCAPE
#if !defined(SWIFT_NOESCAPE)
# if __has_attribute(noescape)
#  define SWIFT_NOESCAPE __attribute__((noescape))
# else
#  define SWIFT_NOESCAPE
# endif
#endif
#if __has_attribute(ns_consumed)
# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
#else
# define SWIFT_RELEASES_ARGUMENT
#if !defined(SWIFT_RELEASES_ARGUMENT)
# if __has_attribute(ns_consumed)
#  define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
# else
#  define SWIFT_RELEASES_ARGUMENT
# endif
#endif
#if __has_attribute(warn_unused_result)
# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
#else
# define SWIFT_WARN_UNUSED_RESULT
#if !defined(SWIFT_WARN_UNUSED_RESULT)
# if __has_attribute(warn_unused_result)
#  define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
# else
#  define SWIFT_WARN_UNUSED_RESULT
# endif
#endif
#if __has_attribute(noreturn)
# define SWIFT_NORETURN __attribute__((noreturn))
#else
# define SWIFT_NORETURN
#if !defined(SWIFT_NORETURN)
# if __has_attribute(noreturn)
#  define SWIFT_NORETURN __attribute__((noreturn))
# else
#  define SWIFT_NORETURN
# endif
#endif
#if !defined(SWIFT_CLASS_EXTRA)
# define SWIFT_CLASS_EXTRA
# define SWIFT_CLASS_EXTRA
#endif
#if !defined(SWIFT_PROTOCOL_EXTRA)
# define SWIFT_PROTOCOL_EXTRA
# define SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_ENUM_EXTRA)
# define SWIFT_ENUM_EXTRA
# define SWIFT_ENUM_EXTRA
#endif
#if !defined(SWIFT_CLASS)
# if __has_attribute(objc_subclassing_restricted)
@@ -1026,28 +1285,25 @@
#  define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
# endif
#endif
#if !defined(SWIFT_PROTOCOL)
# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_EXTENSION)
# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
#endif
#if !defined(OBJC_DESIGNATED_INITIALIZER)
# if __has_attribute(objc_designated_initializer)
#  define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
# else
#  define OBJC_DESIGNATED_INITIALIZER
#  define OBJC_DESIGNATED_INITIALIZER
# endif
#endif
#if !defined(SWIFT_ENUM_ATTR)
# if defined(__has_attribute) && __has_attribute(enum_extensibility)
# if __has_attribute(enum_extensibility)
#  define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
# else
#  define SWIFT_ENUM_ATTR(_extensibility)
#  define SWIFT_ENUM_ATTR(_extensibility)
# endif
#endif
#if !defined(SWIFT_ENUM)
@@ -1076,14 +1332,16 @@
#if !defined(SWIFT_DEPRECATED_MSG)
# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
#endif
#if __has_feature(attribute_diagnose_if_objc)
# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
#else
# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
#if !defined(SWIFT_DEPRECATED_OBJC)
# if __has_feature(attribute_diagnose_if_objc)
#  define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
# else
#  define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
# endif
#endif
#if defined(__OBJC__)
#if !defined(IBSegueAction)
# define IBSegueAction
# define IBSegueAction
#endif
#endif
#if !defined(SWIFT_EXTERN)
@@ -1096,26 +1354,42 @@
#if !defined(SWIFT_CALL)
# define SWIFT_CALL __attribute__((swiftcall))
#endif
#if defined(__cplusplus)
#if !defined(SWIFT_NOEXCEPT)
# define SWIFT_NOEXCEPT noexcept
#if !defined(SWIFT_INDIRECT_RESULT)
# define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result))
#endif
#if !defined(SWIFT_CONTEXT)
# define SWIFT_CONTEXT __attribute__((swift_context))
#endif
#if !defined(SWIFT_ERROR_RESULT)
# define SWIFT_ERROR_RESULT __attribute__((swift_error_result))
#endif
#if defined(__cplusplus)
# define SWIFT_NOEXCEPT noexcept
#else
#if !defined(SWIFT_NOEXCEPT)
# define SWIFT_NOEXCEPT 
#endif
#if !defined(SWIFT_C_INLINE_THUNK)
# if __has_attribute(always_inline)
# if __has_attribute(nodebug)
#  define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug))
# else
#  define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline))
# endif
# else
#  define SWIFT_C_INLINE_THUNK inline
# endif
#endif
#if defined(__cplusplus)
#if !defined(SWIFT_CXX_INT_DEFINED)
#define SWIFT_CXX_INT_DEFINED
namespace swift {
using Int = ptrdiff_t;
using UInt = size_t;
}
#if defined(_WIN32)
#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
# define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport)
#endif
#else
#if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
# define SWIFT_IMPORT_STDLIB_SYMBOL
#endif
#endif
#if defined(__OBJC__)
#if __has_feature(modules)
#if __has_feature(objc_modules)
#if __has_warning("-Watimport-in-framework-header")
#pragma clang diagnostic ignored "-Watimport-in-framework-header"
#endif
@@ -1137,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")
@@ -1147,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,
@@ -1183,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")
@@ -1216,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
@@ -1247,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
@@ -1271,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
@@ -1292,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).
@@ -1319,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;
@@ -1352,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>.
@@ -1424,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
@@ -1448,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.
@@ -1477,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>
@@ -1500,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
@@ -1509,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.
@@ -1531,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.
@@ -1538,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.
@@ -1548,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.
@@ -1557,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
@@ -1598,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>).
@@ -1657,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.
@@ -1665,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;
@@ -1679,7 +2092,6 @@
@end
@class FBSDKAuthenticationToken;
/// Describes the result of a login attempt.
SWIFT_CLASS_NAMED("LoginManagerLoginResult")
@interface FBSDKLoginManagerLoginResult : NSObject
@@ -1705,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.
@@ -1734,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.
@@ -1765,15 +2210,16 @@
@property (nonatomic, copy) NSDate * _Nullable dataAccessExpirationDate;
@property (nonatomic, copy) NSString * _Nullable challenge;
@property (nonatomic, copy) NSString * _Nullable graphDomain;
@property (nonatomic, copy) NSString * _Nullable userTokenNonce;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
#endif
#if defined(__cplusplus)
#endif
#if __has_attribute(external_source_symbol)
# pragma clang attribute pop
#endif
#if defined(__cplusplus)
#endif
#pragma clang diagnostic pop
#endif