diff --git a/.circleci/config.yml b/.circleci/config.yml
index 50b2a94304..3fce527312 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -38,16 +38,6 @@ jobs:
- run: "bundle add jazzy"
- run: "bundle exec fastlane linting_tests"
- lint-fauxpas:
- macos:
- xcode: 11.7.0 # Specify the Xcode version to use
-
- steps:
- - checkout
- - run: "bundle install"
- - run: "brew cask install fauxpas"
- - run: "bundle exec fastlane lint_fauxpas"
-
test-legacy-11:
macos:
xcode: 11.7.0 # Specify the Xcode version to use
@@ -77,6 +67,5 @@ workflows:
- integration-tests
- linting-tests
- ui-and-analyze-tests
- - lint-fauxpas
- test-legacy-11
- test-legacy-12
diff --git a/.jazzy.yaml b/.jazzy.yaml
index 2fea1ff6fb..fc063a4efa 100644
--- a/.jazzy.yaml
+++ b/.jazzy.yaml
@@ -4,7 +4,7 @@ output: docs/docs
clean: true
objc: true
umbrella_header: Stripe/PublicHeaders/Stripe/Stripe.h
-framework_root: .
+framework_root: Stripe
sdk: iphonesimulator
author: Stripe
author_url: https://stripe.com
@@ -17,3 +17,6 @@ theme: fullwidth
exclude:
- Stripe/PublicHeaders/Stripe/STD*
- Stripe/PublicHeaders/Stripe/Stripe3DS2.h
+ - InternalFrameworks/dynamic/Stripe3DS2.xcframework/**
+ - build*
+ - .git
diff --git a/InternalFrameworks/Stripe3DS2.xcframework/ios-x86_64-simulator/libStripe3DS2-static-sim.a b/InternalFrameworks/Stripe3DS2.xcframework/ios-x86_64-simulator/libStripe3DS2-static-sim.a
deleted file mode 100644
index 52ff886c15..0000000000
Binary files a/InternalFrameworks/Stripe3DS2.xcframework/ios-x86_64-simulator/libStripe3DS2-static-sim.a and /dev/null differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/Info.plist b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/Info.plist
new file mode 100644
index 0000000000..758b507543
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/Info.plist
@@ -0,0 +1,54 @@
+
+
+
+
+ AvailableLibraries
+
+
+ LibraryIdentifier
+ ios-x86_64-maccatalyst
+ LibraryPath
+ Stripe3DS2.framework
+ SupportedArchitectures
+
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ maccatalyst
+
+
+ LibraryIdentifier
+ ios-arm64_x86_64-simulator
+ LibraryPath
+ Stripe3DS2.framework
+ SupportedArchitectures
+
+ arm64
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ simulator
+
+
+ LibraryIdentifier
+ ios-arm64
+ LibraryPath
+ Stripe3DS2.framework
+ SupportedArchitectures
+
+ arm64
+
+ SupportedPlatform
+ ios
+
+
+ CFBundlePackageType
+ XFWK
+ XCFrameworkFormatVersion
+ 1.0
+
+
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Assets.car b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Assets.car
new file mode 100644
index 0000000000..2ce364d9a9
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Assets.car differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSAlreadyInitializedException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSAlreadyInitializedException.h
new file mode 100644
index 0000000000..c39a85d8cb
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSAlreadyInitializedException.h
@@ -0,0 +1,22 @@
+//
+// STDSAlreadyInitializedException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSException.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSAlreadyInitializedException` represents an exception that will be thrown in the `STDSThreeDS2Service` instance has already been initialized.
+
+ @see STDSThreeDS2Service
+ */
+@interface STDSAlreadyInitializedException : STDSException
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSAuthenticationRequestParameters.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSAuthenticationRequestParameters.h
new file mode 100644
index 0000000000..766e48578c
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSAuthenticationRequestParameters.h
@@ -0,0 +1,68 @@
+//
+// STDSAuthenticationRequestParameters.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/21/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSJSONEncodable.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface STDSAuthenticationRequestParameters : NSObject
+
+/**
+ Designated initializer for `STDSAuthenticationRequestParameters`.
+
+ @param sdkTransactionIdentifier The SDK Transaction Identifier, as created by `[STDSTransaction createTransaction]`
+ @param deviceData Optional device data collected by the SDK.
+ @param sdkEphemeralPublicKey The SDK ephemeral public key.
+ @param sdkAppIdentifier The SDK app identifier.
+ @param sdkReferenceNumber The SDK reference number.
+ @param messageVersion The protocol version that is supported by the SDK and used for the transaction.
+
+ @exception InvalidInputException Thrown if an input parameter is invalid. @see InvalidInputException
+ */
+- (instancetype)initWithSDKTransactionIdentifier:(NSString *)sdkTransactionIdentifier
+ deviceData:(nullable NSString *)deviceData
+ sdkEphemeralPublicKey:(NSString *)sdkEphemeralPublicKey
+ sdkAppIdentifier:(NSString *)sdkAppIdentifier
+ sdkReferenceNumber:(NSString *)sdkReferenceNumber
+ messageVersion:(NSString *)messageVersion;
+
+/**
+ The encrypted device data as a JWE string.
+ */
+@property (nonatomic, readonly, nullable) NSString *deviceData;
+
+/**
+ The SDK Transaction Identifier.
+ */
+@property (nonatomic, readonly) NSString *sdkTransactionIdentifier;
+
+/**
+ The SDK App Identifier.
+ */
+@property (nonatomic, readonly) NSString *sdkAppIdentifier;
+
+/**
+ The SDK reference number.
+ */
+@property (nonatomic, readonly) NSString *sdkReferenceNumber;
+
+/**
+ The SDK ephemeral public key.
+ */
+@property (nonatomic, readonly) NSString *sdkEphemeralPublicKey;
+
+/**
+ The protocol version that is used for the transaction.
+ */
+@property (nonatomic, readonly) NSString *messageVersion;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSAuthenticationResponse.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSAuthenticationResponse.h
new file mode 100644
index 0000000000..d527f38df9
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSAuthenticationResponse.h
@@ -0,0 +1,115 @@
+//
+// STDSAuthenticationResponse.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 2/13/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSJSONDecodable.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The `STDSACSStatusType` enum defines the status of a transaction, as detailed in
+ 3DS2 Spec Seq 3.33:
+ */
+typedef NS_ENUM(NSInteger, STDSACSStatusType) {
+ /// The status is unknown or invalid
+ STDSACSStatusTypeUnknown = 0,
+
+ /// Authenticated
+ STDSACSStatusTypeAuthenticated = 1,
+
+ /// Requires a Cardholder challenge to complete authentication
+ STDSACSStatusTypeChallengeRequired = 2,
+
+ /// Requires a Cardholder challenge using Decoupled Authentication
+ STDSACSStatusTypeDecoupledAuthentication = 3,
+
+ /// Not authenticated
+ STDSACSStatusTypeNotAuthenticated = 4,
+
+ /// Not authenticated, but a proof of authentication attempt (Authentication Value)
+ /// was generated
+ STDSACSStatusTypeProofGenerated = 5,
+
+ /// Not authenticated, as authentication could not be performed due to technical or
+ /// other issue
+ STDSACSStatusTypeError = 6,
+
+ /// Not authenticated because the Issuer is rejecting authentication and requesting
+ /// that authorisation not be attempted
+ STDSACSStatusTypeRejected = 7,
+
+ /// Authentication not requested by the 3DS Server for data sent for informational
+ /// purposes only
+ STDSACSStatusTypeInformationalOnly = 8,
+};
+
+/**
+ A native protocol representing the response sent by the 3DS Server.
+ Only parameters relevant to performing 3DS2 authentication in the mobile SDK are exposed.
+ */
+@protocol STDSAuthenticationResponse
+
+/// Universally unique transaction identifier assigned by the 3DS Server to identify a single transaction.
+@property (nonatomic, readonly) NSString *threeDSServerTransactionID;
+
+/// Transaction status
+@property (nonatomic, readonly) STDSACSStatusType status;
+
+/// Indication of whether a challenge is required.
+@property (nonatomic, readonly, getter=isChallengeRequired) BOOL challengeRequired;
+
+/// Indicates whether the ACS confirms utilisation of Decoupled Authentication and agrees to utilise Decoupled Authentication to authenticate the Cardholder.
+@property (nonatomic, readonly) BOOL willUseDecoupledAuthentication;
+
+/**
+ DS assigned ACS identifier.
+ Each DS can provide a unique ID to each ACS on an individual basis.
+ */
+@property (nonatomic, readonly, nullable) NSString *acsOperatorID;
+
+/// Unique identifier assigned by the EMVCo Secretariat upon Testing and Approval.
+@property (nonatomic, readonly, nullable) NSString *acsReferenceNumber;
+
+/// Contains the JWS object (represented as a string) created by the ACS for the ARes message.
+@property (nonatomic, readonly, nullable) NSString *acsSignedContent;
+
+/// Universally Unique transaction identifier assigned by the ACS to identify a single transaction.
+@property (nonatomic, readonly) NSString *acsTransactionID;
+
+/// Fully qualified URL of the ACS to be used for the challenge.
+@property (nonatomic, readonly, nullable) NSURL *acsURL;
+
+/**
+ Text provided by the ACS/Issuer to Cardholder during a Frictionless or Decoupled transaction. The Issuer can provide information to Cardholder.
+ For example, “Additional authentication is needed for this transaction, please contact (Issuer Name) at xxx-xxx-xxxx.”
+ */
+@property (nonatomic, readonly, nullable) NSString *cardholderInfo;
+
+/// EMVCo-assigned unique identifier to track approved DS.
+@property (nonatomic, readonly, nullable) NSString *directoryServerReferenceNumber;
+
+/// Universally unique transaction identifier assigned by the DS to identify a single transaction.
+@property (nonatomic, readonly, nullable) NSString *directoryServerTransactionID;
+
+/**
+ Protocol version identifier This shall be the Protocol Version Number of the specification utilised by the system creating this message.
+ The Message Version Number is set by the 3DS Server which originates the protocol with the AReq message.
+ The Message Version Number does not change during a 3DS transaction.
+ */
+@property (nonatomic, readonly) NSString *protocolVersion;
+
+/// Universally unique transaction identifier assigned by the 3DS SDK to identify a single transaction.
+@property (nonatomic, readonly) NSString *sdkTransactionID;
+
+@end
+
+/// A utility to parse an STDSAuthenticationResponse from JSON
+id _Nullable STDSAuthenticationResponseFromJSON(NSDictionary *json);
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSButtonCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSButtonCustomization.h
new file mode 100644
index 0000000000..dd63f9820a
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSButtonCustomization.h
@@ -0,0 +1,83 @@
+//
+// STDSButtonCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+#import
+#import
+
+#import "STDSCustomization.h"
+
+/// An enum that defines the different types of buttons that are able to be customized.
+typedef NS_ENUM(NSInteger, STDSUICustomizationButtonType) {
+
+ /// The submit button type.
+ STDSUICustomizationButtonTypeSubmit = 0,
+
+ /// The continue button type.
+ STDSUICustomizationButtonTypeContinue = 1,
+
+ /// The next button type.
+ STDSUICustomizationButtonTypeNext = 2,
+
+ /// The cancel button type.
+ STDSUICustomizationButtonTypeCancel = 3,
+
+ /// The resend button type.
+ STDSUICustomizationButtonTypeResend = 4,
+};
+
+/// An enumeration of the case transformations that can be applied to the button's title
+typedef NS_ENUM(NSInteger, STDSButtonTitleStyle) {
+ /// Default style, doesn't modify the title
+ STDSButtonTitleStyleDefault,
+
+ /// Applies localizedUppercaseString to the title
+ STDSButtonTitleStyleUppercase,
+
+ /// Applies localizedLowercaseString to the title
+ STDSButtonTitleStyleLowercase,
+
+ /// Applies localizedCapitalizedString to the title
+ STDSButtonTitleStyleSentenceCapitalized,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// A customization object to use to configure the UI of a button.
+@interface STDSButtonCustomization: STDSCustomization
+
+/// The default settings for the provided button type.
++ (instancetype)defaultSettingsForButtonType:(STDSUICustomizationButtonType)type;
+
+/**
+ Initializes an instance of STDSButtonCustomization with the given backgroundColor and colorRadius.
+ */
+- (instancetype)initWithBackgroundColor:(UIColor *)backgroundColor cornerRadius:(CGFloat)cornerRadius;
+
+/**
+ This is unavailable because there are no sensible default property values without a button type.
+ Use `defaultSettingsForButtonType:` or `initWithBackgroundColor:cornerRadius:` instead.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ The background color of the button.
+ The default for .resend and .cancel is clear.
+ The default for .submit, .continue, and .next is blue.
+ */
+@property (nonatomic) UIColor *backgroundColor;
+
+/// The corner radius of the button. Defaults to 8.
+@property (nonatomic) CGFloat cornerRadius;
+
+/**
+ The capitalization style of the button title
+ */
+@property (nonatomic) STDSButtonTitleStyle titleStyle;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSChallengeParameters.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSChallengeParameters.h
new file mode 100644
index 0000000000..e1aa151cdc
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSChallengeParameters.h
@@ -0,0 +1,61 @@
+//
+// STDSChallengeParameters.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 2/13/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+@protocol STDSAuthenticationResponse;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSChallengeParameters` contains information from the 3DS Server's
+ authentication response that are used by the 3DS2 SDK to initiate
+ the challenge flow.
+ */
+@interface STDSChallengeParameters : NSObject
+
+/**
+ Convenience intiializer to create an instace of `STDSChallengeParameters` from an
+ `STDSAuthenticationResponse`
+ */
+- (instancetype)initWithAuthenticationResponse:(id)authResponse;
+
+/**
+ Transaction identifier assigned by the 3DS Server to uniquely identify
+ a transaction.
+ */
+@property (nonatomic, copy) NSString *threeDSServerTransactionID;
+
+/**
+ Transaction identifier assigned by the Access Control Server (ACS)
+ to uniquely identify a transaction.
+ */
+@property (nonatomic, copy) NSString *acsTransactionID;
+
+/**
+ The reference number of the relevant Access Control Server.
+ */
+@property (nonatomic, copy) NSString *acsReferenceNumber;
+
+/**
+ The encrypted message sent by the Access Control Server
+ containing the ACS URL, epthemeral public key, and the
+ 3DS2 SDK ephemeral public key.
+ */
+@property (nonatomic, copy) NSString *acsSignedContent;
+
+/**
+ The URL for the application that is requesting 3DS2 verification.
+ This property can be optionally set and will be included with the
+ messages sent to the Directory Server during the challenge flow.
+ */
+@property (nonatomic, copy, nullable) NSString *threeDSRequestorAppURL;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSChallengeStatusReceiver.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSChallengeStatusReceiver.h
new file mode 100644
index 0000000000..a06a32bb93
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSChallengeStatusReceiver.h
@@ -0,0 +1,61 @@
+//
+// STDSChallengeStatusReceiver.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/20/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+@class STDSTransaction, STDSCompletionEvent, STDSRuntimeErrorEvent, STDSProtocolErrorEvent;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Implement the `STDSChallengeStatusReceiver` protocol to receive challenge status notifications at the end of the challenge process.
+ @see `STDSTransaction.doChallenge`
+ */
+@protocol STDSChallengeStatusReceiver
+
+/**
+ Called when the challenge process is completed.
+
+ @param completionEvent Information about the completion of the challenge process. @see `STDSCompletionEvent`
+ */
+- (void)transaction:(STDSTransaction *)transaction didCompleteChallengeWithCompletionEvent:(STDSCompletionEvent *)completionEvent;
+
+/**
+ Called when the user selects the option to cancel the transaction on the challenge screen.
+ */
+- (void)transactionDidCancel:(STDSTransaction *)transaction;
+
+/**
+ Called when the challenge process reaches or exceeds the timeout interval that was passed to `STDSTransaction.doChallenge`
+ */
+- (void)transactionDidTimeOut:(STDSTransaction *)transaction;
+
+/**
+ Called when the 3DS SDK receives an EMV 3-D Secure protocol-defined error message from the ACS.
+
+ @param protocolErrorEvent The error code and details. @see `STDSProtocolErrorEvent`
+ */
+- (void)transaction:(STDSTransaction *)transaction didErrorWithProtocolErrorEvent:(STDSProtocolErrorEvent *)protocolErrorEvent;
+
+/**
+ Called when the 3DS SDK encounters errors during the challenge process. These errors include all errors except those covered by `didErrorWithProtocolErrorEvent`.
+
+ @param runtimeErrorEvent The error code and details. @see `STDSRuntimeErrorEvent`
+ */
+- (void)transaction:(STDSTransaction *)transaction didErrorWithRuntimeErrorEvent:(STDSRuntimeErrorEvent *)runtimeErrorEvent;
+
+@optional
+
+/**
+ Optional method that will be called when the transaction displays a new challenge screen.
+ */
+- (void)transactionDidPresentChallengeScreen:(STDSTransaction *)transaction;
+
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSCompletionEvent.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSCompletionEvent.h
new file mode 100644
index 0000000000..851c71dbe2
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSCompletionEvent.h
@@ -0,0 +1,40 @@
+//
+// STDSCompletionEvent.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/20/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSCompletionEvent` contains information about completion of the challenge process.
+ */
+@interface STDSCompletionEvent : NSObject
+
+/**
+ Designated initializer for `STDSCompletionEvent`.
+ */
+- (instancetype)initWithSDKTransactionIdentifier:(NSString *)identifier transactionStatus:(NSString *)transactionStatus NS_DESIGNATED_INITIALIZER;
+
+/**
+ `STDSCompletionEvent` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ The SDK Transaction ID.
+ */
+@property (nonatomic, readonly) NSString *sdkTransactionIdentifier;
+
+/**
+ The transaction status that was received in the final challenge response.
+ */
+@property (nonatomic, readonly) NSString *transactionStatus;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSConfigParameters.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSConfigParameters.h
new file mode 100644
index 0000000000..4d77ba5d5a
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSConfigParameters.h
@@ -0,0 +1,96 @@
+//
+// STDSConfigParameters.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The default group name that will be used to group additional
+ configuration parameters.
+ */
+extern NSString * const kSTDSConfigDefaultGroupName;
+
+/**
+ `STDSConfigParameters` represents additional configuration parameters
+ that can be passed to the Stripe3DS2 SDK during initialization.
+
+ There are currently no supported additional parameters and apps can
+ just pass `[STDSConfigParameters alloc] initWithStandardParameters`
+ to the `STDSThreeDS2Service` instance.
+ */
+@interface STDSConfigParameters : NSObject
+
+/**
+ Convenience initializer to get an `STDSConfigParameters` instance
+ with the default expected configuration parameters.
+ */
+- (instancetype)initWithStandardParameters;
+
+/**
+ Adds the parameter to this instance.
+
+ @param paramName The name of the parameter to add
+ @param paramValue The value of the parameter to add
+ @param paramGroup The group to which this parameter will be added. If `nil` the parameter will be added to `kSTDSConfigDefaultGroupName`
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` or `paramValue` are `nil`. @see STDSInvalidInputException
+ */
+- (void)addParameterNamed:(NSString *)paramName withValue:(NSString *)paramValue toGroup:(nullable NSString *)paramGroup;
+
+/**
+ Adds the parameter to the default group in this instance.
+
+ @param paramName The name of the parameter to add
+ @param paramValue The value of the parameter to add
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` or `paramValue` are `nil`. @see STDSInvalidInputException
+ */
+- (void)addParameterNamed:(NSString *)paramName withValue:(NSString *)paramValue;
+
+/**
+ Returns the value for `paramName` in `paramGroup` or `nil` if the parameter value is not set.
+
+ @param paramName The name of the parameter to return
+ @param paramGroup The group from which to fetch the parameter value. If `nil` will default to `kSTDSConfigDefaultGroupName`
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` is `nil`. @see STDSInvalidInputException
+ */
+- (nullable NSString *)parameterValue:(NSString *)paramName inGroup:(nullable NSString *)paramGroup;
+
+/**
+ Returns the value for `paramName` in the default group or `nil` if the parameter value is not set.
+
+ @param paramName The name of the parameter to return
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` is `nil`. @see STDSInvalidInputException
+ */
+- (nullable NSString *)parameterValue:(NSString *)paramName;
+
+/**
+ Removes the specified parameter from the group and returns the value or `nil` if the parameter was not found.
+
+ @param paramName The name of the parameter to remove
+ @param paramGroup The group from which to remove this parameter. If `nil` will default to `kSTDSConfigDefaultGroupName`
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` is `nil`. @see STDSInvalidInputException
+ */
+- (nullable NSString *)removeParameterNamed:(NSString *)paramName fromGroup:(nullable NSString *)paramGroup;
+
+/**
+ Removes the specified parameter from the default group and returns the value or `nil` if the parameter was not found.
+
+ @param paramName The name of the parameter to remove
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` is `nil`. @see STDSInvalidInputException
+ */
+- (nullable NSString *)removeParameterNamed:(NSString *)paramName;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSCustomization.h
new file mode 100644
index 0000000000..516eff9e3c
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSCustomization.h
@@ -0,0 +1,25 @@
+//
+// STDSCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// This class provides a common set of customization parameters, used to customize elements of the UI.
+@interface STDSCustomization : NSObject
+
+/// The font to use for text.
+@property (nonatomic, nullable) UIFont *font;
+
+/// The color to use for the text.
+@property (nonatomic, nullable) UIColor *textColor;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSErrorMessage.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSErrorMessage.h
new file mode 100644
index 0000000000..35bce4a305
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSErrorMessage.h
@@ -0,0 +1,108 @@
+//
+// STDSErrorMessage.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/21/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSJSONEncodable.h"
+#import "STDSJSONDecodable.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// Error codes as defined by the 3DS2 spec.
+typedef NS_ENUM(NSInteger, STDSErrorMessageCode) {
+ /// The SDK received a message that is not an ARes, CRes, or ErrorMessage.
+ STDSErrorMessageCodeInvalidMessage = 101,
+
+ /// A required data element is missing from the network response.
+ STDSErrorMessageCodeRequiredDataElementMissing = 201,
+
+ // Critical message extension not recognised
+ STDSErrorMessageCodeUnrecognizedCriticalMessageExtension = 202,
+
+ /// A data element is not in the required format or the value is invalid.
+ STDSErrorMessageErrorInvalidDataElement = 203,
+
+ // Transaction ID not recognized
+ STDSErrorMessageErrorTransactionIDNotRecognized = 301,
+
+ /// A network response could not be decrypted or verified.
+ STDSErrorMessageErrorDataDecryptionFailure = 302,
+
+ /// The SDK timed out
+ STDSErrorMessageErrorTimeout = 402,
+};
+
+/**
+ `STDSErrorMessage` represents an error message that is returned by the ACS or to be sent to the ACS.
+ */
+@interface STDSErrorMessage : NSObject
+
+/**
+ Designated initializer for `STDSErrorMessage`.
+
+ @param errorCode The error code.
+ @param errorComponent The component that identified the error.
+ @param errorDescription Text describing the error.
+ @param errorDetails Additional error details. Optional.
+ */
+- (instancetype)initWithErrorCode:(NSString *)errorCode
+ errorComponent:(NSString *)errorComponent
+ errorDescription:(NSString *)errorDescription
+ errorDetails:(nullable NSString *)errorDetails
+ messageVersion:(NSString *)messageVersion
+ acsTransactionIdentifier:(nullable NSString *)acsTransactionIdentifier
+ errorMessageType:(NSString *)errorMessageType;
+
+/**
+ `STDSErrorMessage` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ The error code.
+ */
+@property (nonatomic, readonly) NSString *errorCode;
+
+/**
+ The 3-D Secure component that identified the error.
+ */
+@property (nonatomic, readonly) NSString *errorComponent;
+
+/**
+ Text describing the error.
+ */
+@property (nonatomic, readonly) NSString *errorDescription;
+
+/**
+ Additional error details.
+ */
+@property (nonatomic, nullable, readonly) NSString *errorDetails;
+
+/**
+ The protocol version identifier.
+ */
+@property (nonatomic, readonly) NSString *messageVersion;
+
+/**
+ The ACS transaction identifier.
+ */
+@property (nonatomic, readonly, nullable) NSString *acsTransactionIdentifier;
+
+/**
+ The message type that was identified as erroneous.
+ */
+@property (nonatomic, readonly) NSString *errorMessageType;
+
+/**
+ A representation of the `STDSErrorMessage` as an `NSError`
+ */
+- (NSError *)NSErrorValue;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSException.h
new file mode 100644
index 0000000000..1f2c5ecdf8
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSException.h
@@ -0,0 +1,25 @@
+//
+// STDSException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ An abstract class to represent 3DS2 SDK custom exceptions
+ */
+@interface STDSException : NSException
+
+/**
+ A description of the exception.
+ */
+@property (nonatomic, readonly) NSString *message;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSFooterCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSFooterCustomization.h
new file mode 100644
index 0000000000..990ffd9b25
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSFooterCustomization.h
@@ -0,0 +1,41 @@
+//
+// STDSFooterCustomization.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 6/10/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The Challenge view displays a footer with additional details that
+ expand when tapped. This object configures the appearance of that view.
+*/
+@interface STDSFooterCustomization : STDSCustomization
+
+/// The default settings.
++ (instancetype)defaultSettings;
+
+/**
+ The background color of the footer.
+ Defaults to gray.
+ */
+@property (nonatomic) UIColor *backgroundColor;
+
+/// The color of the chevron. Defaults to a dark gray.
+@property (nonatomic) UIColor *chevronColor;
+
+/// The color of the heading text. Defaults to black.
+@property (nonatomic) UIColor *headingTextColor;
+
+/// The font to use for the heading text.
+@property (nonatomic) UIFont *headingFont;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSInvalidInputException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSInvalidInputException.h
new file mode 100644
index 0000000000..b30d4e1079
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSInvalidInputException.h
@@ -0,0 +1,21 @@
+//
+// STDSInvalidInputException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSException.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSInvalidInputException` represents an exception that will be thrown by
+ Stripe3DS2 SDK methods that are called with invalid input arguments.
+ */
+@interface STDSInvalidInputException : STDSException
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSJSONDecodable.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSJSONDecodable.h
new file mode 100644
index 0000000000..f93428acf7
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSJSONDecodable.h
@@ -0,0 +1,33 @@
+//
+// STDSJSONDecodable.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/27/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol STDSJSONDecodable
+
+/**
+ Initializes an instance of the class from its JSON representation.
+
+ This method recognizes two categories of errors:
+ - a required field is missing.
+ - a required field value is in valid (e.g. expected 'Y' or 'N' but received 'X').
+
+ Errors populating optional fields are ignored.
+
+ @param json The JSON dictionary that represents an object of this type
+ @param outError If there was a missing required field or invalid field value, contains an instance of NSError.
+
+ @return The object represented by the JSON dictionary. If the object could not be decoded, returns nil and populates the outError argument.
+ */
++ (nullable instancetype)decodedObjectFromJSON:(nullable NSDictionary *)json error:(NSError **)outError;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSJSONEncodable.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSJSONEncodable.h
new file mode 100644
index 0000000000..9861a23c39
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSJSONEncodable.h
@@ -0,0 +1,22 @@
+//
+// STDSJSONEncodable.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/25/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol STDSJSONEncodable
+
+/**
+ Returns a map of property names to their JSON representation's key value. For example, `STDSChallengeParameters` has a property called `acsTransactionID`, but the 3DS2 JSON spec expects a field called `acsTransID`. This dictionary represents a mapping from the former to the latter (in other words, [STDSChallengeParameters propertyNamesToJSONKeysMapping][@"acsTransactionID"] == @"acsTransID".)
+ */
++ (NSDictionary *)propertyNamesToJSONKeysMapping;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSJSONEncoder.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSJSONEncoder.h
new file mode 100644
index 0000000000..7ccc07e613
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSJSONEncoder.h
@@ -0,0 +1,27 @@
+//
+// STDSJSONEncoder.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/25/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSJSONEncodable.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSJSONEncoder` is a utility class to help with converting API objects into JSON
+ */
+@interface STDSJSONEncoder : NSObject
+
+/**
+ Method to convert an STDSJSONEncodable object into a JSON dictionary.
+ */
++ (NSDictionary *)dictionaryForObject:(NSObject *)object;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSLabelCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSLabelCustomization.h
new file mode 100644
index 0000000000..af75cf39dd
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSLabelCustomization.h
@@ -0,0 +1,31 @@
+//
+// STDSLabelCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ A customization object to use to configure the UI of a text label.
+
+ The font and textColor inherited from `STDSCustomization` configure non-heading labels.
+ */
+@interface STDSLabelCustomization : STDSCustomization
+
+/// The default settings.
++ (instancetype)defaultSettings;
+
+/// The color of the heading text. Defaults to black.
+@property (nonatomic) UIColor *headingTextColor;
+
+/// The font to use for the heading text.
+@property (nonatomic) UIFont *headingFont;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSNavigationBarCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSNavigationBarCustomization.h
new file mode 100644
index 0000000000..18affaaf74
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSNavigationBarCustomization.h
@@ -0,0 +1,59 @@
+//
+// STDSNavigationBarCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+#import
+
+#import "STDSCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ A customization object to use to configure a UINavigationBar.
+
+ The font and textColor inherited from `STDSCustomization` configure the
+ title of the navigation bar, and default to nil.
+ */
+@interface STDSNavigationBarCustomization : STDSCustomization
+
+/// The default settings.
++ (instancetype)defaultSettings;
+
+/**
+ The tint color of the navigation bar background.
+ Defaults to nil.
+ */
+@property (nonatomic, nullable) UIColor *barTintColor;
+
+/**
+ The navigation bar style.
+ Defaults to UIBarStyleDefault.
+ */
+@property (nonatomic) UIBarStyle barStyle;
+
+/**
+ A Boolean value indicating whether the navigation bar is translucent or not.
+ Defaults to YES.
+ */
+@property (nonatomic) BOOL translucent;
+
+/**
+ The text to display in the title of the navigation bar.
+ Defaults to "Secure checkout".
+ */
+@property (nonatomic, copy) NSString *headerText;
+
+/**
+ The text to display for the button in the navigation bar.
+ Defaults to "Cancel".
+ */
+@property (nonatomic, copy) NSString *buttonText;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSNotInitializedException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSNotInitializedException.h
new file mode 100644
index 0000000000..cb836d5e83
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSNotInitializedException.h
@@ -0,0 +1,23 @@
+//
+// STDSNotInitializedException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 2/13/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSException.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSNotInitializedException` represents an exception that will be thrown by
+ the the Stripe3DS2 SDK if methods are called without initializing `STDSThreeDS2Service`.
+
+ @see STDSThreeDS2Service
+ */
+@interface STDSNotInitializedException : STDSException
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSProtocolErrorEvent.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSProtocolErrorEvent.h
new file mode 100644
index 0000000000..1e3142a722
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSProtocolErrorEvent.h
@@ -0,0 +1,42 @@
+//
+// STDSProtocolErrorEvent.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/20/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+@class STDSErrorMessage;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSProtocolErrorEvent` contains details about erorrs received from or sent to the ACS.
+ */
+@interface STDSProtocolErrorEvent : NSObject
+
+/**
+ Designated initializer for `STDSProtocolErrorEvent`.
+ */
+- (instancetype)initWithSDKTransactionIdentifier:(NSString *)identifier errorMessage:(STDSErrorMessage *)errorMessage;
+
+/**
+ `STDSProtocolErrorEvent` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ Details about the error.
+ */
+@property (nonatomic, readonly) STDSErrorMessage *errorMessage;
+
+/**
+ The SDK Transaction Identifier.
+ */
+@property (nonatomic, readonly) NSString *sdkTransactionIdentifier;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSRuntimeErrorEvent.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSRuntimeErrorEvent.h
new file mode 100644
index 0000000000..658cdb90cb
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSRuntimeErrorEvent.h
@@ -0,0 +1,53 @@
+//
+// STDSRuntimeErrorEvent.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/20/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+FOUNDATION_EXTERN NSString * const kSTDSRuntimeErrorCodeParsingError;
+FOUNDATION_EXTERN NSString * const kSTDSRuntimeErrorCodeEncryptionError;
+
+/**
+ `STDSRuntimeErrorEvent` contains details about run-time errors encountered during authentication.
+
+ The following are examples of run-time errors:
+ - ACS is unreachable
+ - Unparseable message
+ - Network issues
+ */
+@interface STDSRuntimeErrorEvent : NSObject
+
+/**
+ A code corresponding to the type of error this represents.
+ */
+@property (nonatomic, readonly) NSString *errorCode;
+
+/**
+ Details about the error.
+ */
+@property (nonatomic, readonly) NSString *errorMessage;
+
+/**
+ Designated initializer for `STDSRuntimeErrorEvent`.
+ */
+- (instancetype)initWithErrorCode:(NSString *)errorCode errorMessage:(NSString *)errorMessage NS_DESIGNATED_INITIALIZER;
+
+/**
+ A representation of the `STDSRuntimeErrorEvent` as an `NSError`
+ */
+- (NSError *)NSErrorValue;
+
+/**
+ `STDSRuntimeErrorEvent` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSRuntimeException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSRuntimeException.h
new file mode 100644
index 0000000000..5b63a2d3bf
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSRuntimeException.h
@@ -0,0 +1,21 @@
+//
+// STDSRuntimeException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSException.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSRuntimeException` represents an exception that will be thrown by the
+ Stripe3DS2 SDK if it encounters an internal error.
+ */
+@interface STDSRuntimeException : STDSException
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSSelectionCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSSelectionCustomization.h
new file mode 100644
index 0000000000..a9818bb988
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSSelectionCustomization.h
@@ -0,0 +1,48 @@
+//
+// STDSSelectionCustomization.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 6/11/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ A customization object that configures the appearance of
+ radio buttons and checkboxes.
+ */
+@interface STDSSelectionCustomization: NSObject
+
+/// The default settings.
++ (instancetype)defaultSettings;
+
+/**
+ The primary color of the selected state.
+ Defaults to blue.
+ */
+@property (nonatomic) UIColor *primarySelectedColor;
+
+/**
+ The secondary color of the selected state (e.g. the checkmark color).
+ Defaults to white.
+ */
+@property (nonatomic) UIColor *secondarySelectedColor;
+
+/**
+ The background color displayed in the unselected state.
+ Defaults to light blue.
+ */
+@property (nonatomic) UIColor *unselectedBackgroundColor;
+
+/**
+ The color of the border drawn around the view in the unselected state.
+ Defaults to blue.
+ */
+@property (nonatomic) UIColor *unselectedBorderColor;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSStripe3DS2Error.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSStripe3DS2Error.h
new file mode 100644
index 0000000000..2e506fe2f4
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSStripe3DS2Error.h
@@ -0,0 +1,68 @@
+//
+// STDSStripe3DS2Error.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/27/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+FOUNDATION_EXPORT NSString * const STDSStripe3DS2ErrorDomain;
+
+/**
+ NSError.userInfo contains this key if we received an ErrorMessage instead of the expected response object.
+ The value of this key is the ErrorMessage.
+ */
+FOUNDATION_EXPORT NSString * const STDSStripe3DS2ErrorMessageErrorKey;
+
+/**
+ NSError.userInfo contains this key if we errored parsing JSON.
+ The value of this key is the invalid or missing field.
+ */
+FOUNDATION_EXPORT NSString * const STDSStripe3DS2ErrorFieldKey;
+
+/**
+ NSError.userInfo contains this key if we couldn't recognize critical message extension(s)
+ The value of this key is an array of identifiers.
+ */
+FOUNDATION_EXPORT NSString * const STDSStripe3DS2UnrecognizedCriticalMessageExtensionsKey;
+
+
+typedef NS_ENUM(NSInteger, STDSErrorCode) {
+
+ /// Code triggered an assertion
+ STDSErrorCodeAssertionFailed = 204,
+
+ // JSON Parsing
+ /// Received invalid or malformed data
+ STDSErrorCodeJSONFieldInvalid = 203,
+ /// Expected field missing
+ STDSErrorCodeJSONFieldMissing = 201,
+
+ /// Critical message extension not recognised
+ STDSErrorCodeUnrecognizedCriticalMessageExtension = 202,
+
+ /// Decryption or verification error
+ STDSErrorCodeDecryptionVerification = 302,
+
+ /// Error code corresponding to a `STDSRuntimeErrorEvent` for an unparseable network response
+ STDSErrorCodeRuntimeParsing = 400,
+ /// Error code corresponding to a `STDSRuntimeErrorEvent` for an error with decrypting or verifying a network response
+ STDSErrorCodeRuntimeEncryption = 401,
+
+ // Networking
+ /// We received an ErrorMessage instead of the expected response object. `userInfo[STDSStripe3DS2ErrorMessageErrorKey]` will contain the ErrorMessage object.
+ STDSErrorCodeReceivedErrorMessage = 1000,
+ /// We received an unknown message type.
+ STDSErrorCodeUnknownMessageType = 1001,
+ /// Request timed out
+ STDSErrorCodeTimeout = 1002,
+
+ /// Unknown
+ STDSErrorCodeUnknownError = 2000,
+};
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSSwiftTryCatch.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSSwiftTryCatch.h
new file mode 100644
index 0000000000..47443368a7
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSSwiftTryCatch.h
@@ -0,0 +1,50 @@
+//
+// STDSSwiftTryCatch.h
+//
+// Created by William Falcon on 10/10/14.
+// Copyright (c) 2014 William Falcon. All rights reserved.
+//
+/*
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+ */
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Provides try catch functionality for swift by wrapping around Objective-C
+ */
+@interface STDSSwiftTryCatch : NSObject
+
+/**
+ Provides try catch functionality for swift by wrapping around Objective-C
+ */
++ (void)tryBlock:(void(^)(void))tryBlock catchBlock:(void(^)(NSException*exception))catchBlock finallyBlock:(void(^)(void))finallyBlock;
+/**
+ Throws Objective-C exception with name and reason set to `s`
+ */
++ (void)throwString:(NSString*)s;
+
+/**
+ Throws exception `e`
+ */
++ (void)throwException:(NSException*)e;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSTextFieldCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSTextFieldCustomization.h
new file mode 100644
index 0000000000..6f2bfede11
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSTextFieldCustomization.h
@@ -0,0 +1,47 @@
+//
+// STDSTextFieldCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ A customization object to use to configure the UI of a text field.
+
+ The font and textColor inherited from `STDSCustomization` configure
+ the user input text.
+ */
+@interface STDSTextFieldCustomization : STDSCustomization
+
+/**
+ The default settings.
+
+ The default textColor is black.
+ */
++ (instancetype)defaultSettings;
+
+/// The border width of the text field. Defaults to 2.
+@property (nonatomic) CGFloat borderWidth;
+
+/// The color of the border of the text field. Defaults to clear.
+@property (nonatomic) UIColor *borderColor;
+
+/// The corner radius of the edges of the text field. Defaults to 8.
+@property (nonatomic) CGFloat cornerRadius;
+
+/// The appearance of the keyboard. Defaults to UIKeyboardAppearanceDefault.
+@property (nonatomic) UIKeyboardAppearance keyboardAppearance;
+
+/// The color of the placeholder text. Defaults to light gray.
+@property (nonatomic) UIColor *placeholderTextColor;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSThreeDS2Service.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSThreeDS2Service.h
new file mode 100644
index 0000000000..c0baa55fef
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSThreeDS2Service.h
@@ -0,0 +1,84 @@
+//
+// STDSThreeDS2Service.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+@class STDSConfigParameters;
+@class STDSTransaction;
+@class STDSUICustomization;
+@class STDSWarning;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSThreeDS2Service` is the main 3DS SDK interface and provides methods to process transactions.
+ */
+@interface STDSThreeDS2Service : NSObject
+
+/**
+ A list of warnings that may be populated once the SDK has been initialized.
+ */
+@property (nonatomic, readonly, nullable) NSArray *warnings;
+
+/**
+ Initializes the 3DS SDK instance.
+
+ This method should be called at the start of the payment stage of a transaction.
+ **Note: Until the `STDSThreeDS2Service instance is initialized, it will be unusable.**
+
+ - Performs security checks
+ - Collects device information
+
+ @param config Configuration information that will be used during initialization. @see STDSConfigParameters
+ @param locale Optional override for the locale to use in UI. If `nil`, will default to the current system locale.
+ @param uiSettings Optional custom UI settings. If `nil`, will default to `[STDSUICustomization defaultSettings]`.
+ This argument is copied; any further changes to the customization object have no effect. @see STDSUICustomization
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `config` is `nil` or any of `config`, `locale`, or `uiSettings` are invalid. @see STDSInvalidInputException
+ @exception STDSAlreadyInitializedException Will throw an `STDSAlreadyInitializedException` if the 3DS SDK instance has already been initialized. @see STDSSDKAlreadyInitializedException
+ @exception STDSRuntimeException Will throw an `STDSRuntimeException` if there is an internal error in the SDK. @see STDSRuntimeException
+ */
+- (void)initializeWithConfig:(STDSConfigParameters *)config
+ locale:(nullable NSLocale *)locale
+ uiSettings:(nullable STDSUICustomization *)uiSettings;
+
+/**
+ Creates and returns an instance of `STDSTransaction`.
+
+ @param directoryServerID The Directory Server identifier returned in the authentication response
+ @param protocolVersion 3DS protocol version according to which the transaction will be created. Uses the default value of 2.1.0 if nil
+
+ @exception STDSNotInitializedException Will throw an `STDSNotInitializedException` if the the `STDSThreeDS2Service` instance hasn't been initialized with a call to `initializeWithConfig:locale:uiSettings:`. @see STDSNotInitializedException
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `directoryServerID` is not recognized or if the `protocolVersion` is not supported by this version of the SDK. @see STDSInvalidInputException
+ @exception STDSRuntimeException Will throw an `STDSRuntimeException` if there is an internal error in the SDK. @see STDSRuntimeException
+ */
+- (STDSTransaction *)createTransactionForDirectoryServer:(NSString *)directoryServerID
+ withProtocolVersion:(nullable NSString *)protocolVersion;
+
+/**
+ Creates and returns an instance of `STDSTransaction` using a custom directory server certificate.
+ Will return nil if unable to create a certificate from the provided params.
+
+ @param directoryServerID The Directory Server identifier returned in the authentication response
+ @param serverKeyID An additional authentication key used by some Directory Servers
+ @param certificateString A Base64-encoded PEM or DER formatted certificate string containing the directory server's public key
+ @param rootCertificateStrings An arry of base64-encoded PEM or DER formatted certificate strings containing the DS root certificate used for signature checks
+ @param protocolVersion 3DS protocol version according to which the transaction will be created. Uses the default value of 2.1.0 if nil
+
+ @exception STDSNotInitializedException Will throw an `STDSNotInitializedException` if the the `STDSThreeDS2Service` instance hasn't been initialized with a call to `initializeWithConfig:locale:uiSettings:`. @see STDSNotInitializedException
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if the `protocolVersion` is not supported by this version of the SDK. @see STDSInvalidInputException
+ */
+- (nullable STDSTransaction *)createTransactionForDirectoryServer:(NSString *)directoryServerID
+ serverKeyID:(nullable NSString *)serverKeyID
+ certificateString:(NSString *)certificateString
+ rootCertificateStrings:(NSArray *)rootCertificateStrings
+ withProtocolVersion:(nullable NSString *)protocolVersion;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSThreeDSProtocolVersion.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSThreeDSProtocolVersion.h
new file mode 100644
index 0000000000..b4161a6e3c
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSThreeDSProtocolVersion.h
@@ -0,0 +1,15 @@
+//
+// STDSThreeDSProtocolVersion.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 6/27/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+FOUNDATION_EXPORT NSString * const Stripe3DS2ProtocolVersion;
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSTransaction.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSTransaction.h
new file mode 100644
index 0000000000..45d06e5142
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSTransaction.h
@@ -0,0 +1,79 @@
+//
+// STDSTransaction.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/21/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+#import
+
+typedef void (^STDSTransactionVoidBlock)(void);
+
+@class STDSAuthenticationRequestParameters, STDSChallengeParameters;
+@protocol STDSChallengeStatusReceiver;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSTransaction` holds parameters that the 3DS Server requires to create AReq messages and to perform the Challenge Flow.
+ */
+@interface STDSTransaction : NSObject
+
+/**
+ The UI type of the presented challenge for this transaction if applicable. Will be one of
+ "none"
+ "text"
+ "single_select"
+ "multi_select"
+ "oob"
+ "html"
+ */
+@property (nonatomic, readonly, copy) NSString *presentedChallengeUIType;
+
+/**
+ Encrypts device information collected during initialization and returns it along with SDK details.
+
+ @return Encrypted device information and details about this SDK. @see STDSAuthenticationRequestParameters
+
+ @exception SDKRuntimeException Thrown if an internal error is encountered.
+ */
+- (STDSAuthenticationRequestParameters *)createAuthenticationRequestParameters;
+
+/**
+ Returns a UIViewController instance displaying the Directory Server logo and a spinner. Present this during the Authentication Request/Response.
+ */
+- (UIViewController *)createProgressViewControllerWithDidCancel:(STDSTransactionVoidBlock)didCancel;
+
+/**
+ Initiates the challenge process, displaying challenge UI as needed.
+
+ @param presentingViewController The UIViewController used to present the challenge response UIViewController
+ @param challengeParameters Details required to conduct the challenge process. @see STDSChallengeParameters
+ @param challengeStatusReceiver A callback object to receive the status of the challenge. See @STDSChallengeStatusReceiver
+ @param timeout An interval in seconds within which the challenge process will finish. Must be at least 5 minutes.
+
+ @exception STDSInvalidInputException Thrown if an argument is invalid (e.g. timeout less than 5 minutes). @see STDSInvalidInputException
+ @exception STDSSDKRuntimeException Thrown if an internal error is encountered, and if you call this method after calling `close`. @see SDKRuntimeException
+ */
+- (void)doChallengeWithViewController:(UIViewController *)presentingViewController
+ challengeParameters:(STDSChallengeParameters *)challengeParameters
+ challengeStatusReceiver:(id)challengeStatusReceiver
+ timeout:(NSTimeInterval)timeout;
+
+/**
+ Returns the version of the Stripe3DS2 SDK, e.g. @"1.0"
+ */
+- (NSString *)sdkVersion;
+
+/**
+Cleans up resources held by `STDSTransaction`. Call this when the transaction is completed, if `doChallengeWithChallengeParameters:challengeStatusReceiver:timeout` is not called.
+
+ @note Don't use this object after calling this method. Calling `doChallengeWithViewController:challengeParameters:challengeStatusReceiver:timeout` after calling this method will throw an `STDSSDKRuntimeException`
+ */
+- (void)close;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSUICustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSUICustomization.h
new file mode 100644
index 0000000000..651b22f170
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSUICustomization.h
@@ -0,0 +1,109 @@
+//
+// STDSUICustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+#import "STDSCustomization.h"
+#import "STDSButtonCustomization.h"
+#import "STDSNavigationBarCustomization.h"
+#import "STDSLabelCustomization.h"
+#import "STDSTextFieldCustomization.h"
+#import "STDSFooterCustomization.h"
+#import "STDSSelectionCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The `STDSUICustomization` provides configuration for UI elements.
+
+ It's important to configure this object appropriately before using it to initialize a
+ `STDSThreeDS2Service` object. `STDSThreeDS2Service` makes a copy of the customization
+ settings you provide; it ignores any subsequent changes you make to your `STDSUICustomization` instance.
+*/
+@interface STDSUICustomization: NSObject
+
+/// The default settings. See individual properties for their default values.
++ (instancetype)defaultSettings;
+
+/**
+ Provides custom settings for the UINavigationBar of all UIViewControllers the SDK display.
+ The default is `[STDSNavigationBarCustomization defaultSettings]`.
+ */
+@property (nonatomic) STDSNavigationBarCustomization *navigationBarCustomization;
+
+/**
+ Provides custom settings for labels.
+ The default is `[STDSLabelCustomization defaultSettings]`.
+ */
+@property (nonatomic) STDSLabelCustomization *labelCustomization;
+
+/**
+ Provides custom settings for text fields.
+ The default is `[STDSTextFieldCustomization defaultSettings]`.
+ */
+@property (nonatomic) STDSTextFieldCustomization *textFieldCustomization;
+
+/**
+ The primary background color of all UIViewControllers the SDK display.
+ Defaults to white.
+ */
+@property (nonatomic) UIColor *backgroundColor;
+
+/**
+ The Challenge view displays a footer with additional details. This controls the background color of that view.
+ Defaults to gray.
+ */
+@property (nonatomic) STDSFooterCustomization *footerCustomization;
+
+/**
+ Sets a given button customization for the specified type.
+
+ @param buttonCustomization The buttom customization to use.
+ @param buttonType The type of button to use the customization for.
+ */
+- (void)setButtonCustomization:(STDSButtonCustomization *)buttonCustomization forType:(STDSUICustomizationButtonType)buttonType;
+
+/**
+ Retrieves a button customization object for the given button type.
+
+ @param buttonType The button type to retrieve a customization object for.
+ @return A button customization object, or the default if none was set.
+ @see STDSButtonCustomization
+ */
+- (STDSButtonCustomization *)buttonCustomizationForButtonType:(STDSUICustomizationButtonType)buttonType;
+
+/**
+ Provides custom settings for radio buttons and checkboxes.
+ The default is `[STDSSelectionCustomization defaultSettings]`.
+ */
+@property (nonatomic) STDSSelectionCustomization *selectionCustomization;
+
+
+/**
+ The preferred status bar style for all UIViewControllers the SDK display.
+ Defaults to UIStatusBarStyleDefault.
+ */
+@property (nonatomic) UIStatusBarStyle preferredStatusBarStyle;
+
+#pragma mark - Progress View
+
+/**
+ The style of UIActivityIndicatorViews displayed.
+ This should contrast with `backgroundColor`. Defaults to regular on iOS 13+,
+ gray on iOS 10-12.
+ */
+@property (nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle;
+
+/**
+ The style of the UIBlurEffect displayed underneath the UIActivityIndicatorView.
+ Defaults to UIBlurEffectStyleDefault.
+ */
+@property (nonatomic) UIBlurEffectStyle blurStyle;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSWarning.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSWarning.h
new file mode 100644
index 0000000000..5f09fe70a8
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/STDSWarning.h
@@ -0,0 +1,69 @@
+//
+// STDSWarning.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 2/12/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The `STDSWarningSeverity` enum defines the severity levels of warnings generated
+ during SDK initialization. @see STDSThreeDS2Service
+ */
+typedef NS_ENUM(NSInteger, STDSWarningSeverity) {
+ /**
+ Low severity
+ */
+ STDSWarningSeverityLow = 0,
+
+ /**
+ Medium severity
+ */
+ STDSWarningSeverityMedium,
+
+ /**
+ High severity
+ */
+ STDSWarningSeverityHigh,
+};
+
+/**
+ The `STDSWarning` class represents warnings generated by `STDSThreeDS2Service` during
+ security checks run during initialization. @see STDSThreeDS2Service
+ */
+@interface STDSWarning : NSObject
+
+/**
+ Designated initializer for `STDSWarning`.
+ */
+- (instancetype)initWithIdentifier:(NSString *)identifier
+ message:(NSString *)message
+ severity:(STDSWarningSeverity)severity NS_DESIGNATED_INITIALIZER;
+
+/**
+ `STDSWarning` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ The identifier for this warning instance.
+ */
+@property (nonatomic, readonly) NSString *identifier;
+
+/**
+ The descriptive message for this warning.
+ */
+@property (nonatomic, readonly) NSString *message;
+
+/**
+ The severity of this warning.
+ */
+@property (nonatomic, readonly) STDSWarningSeverity severity;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/Stripe3DS2-Prefix.pch b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/Stripe3DS2-Prefix.pch
new file mode 100644
index 0000000000..888096ff59
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/Stripe3DS2-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Stripe3DS2-Prefix.pch
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 4/16/20.
+// Copyright © 2020 Stripe. All rights reserved.
+//
+
+#ifndef Stripe3DS2_pch
+#define Stripe3DS2_pch
+
+#import "STDSLocalizedString.h"
+
+#endif /* Stripe3DS2_pch */
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/Stripe3DS2.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/Stripe3DS2.h
new file mode 100644
index 0000000000..9e9f3eba40
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Headers/Stripe3DS2.h
@@ -0,0 +1,52 @@
+//
+// Stripe3DS2.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/16/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+//! Project version number for Stripe3DS2.
+FOUNDATION_EXPORT double Stripe3DS2VersionNumber;
+
+//! Project version string for Stripe3DS2.
+FOUNDATION_EXPORT const unsigned char Stripe3DS2VersionString[];
+
+#import "STDSConfigParameters.h"
+#import "STDSThreeDS2Service.h"
+#import "STDSUICustomization.h"
+#import "STDSWarning.h"
+
+#import "STDSAlreadyInitializedException.h"
+#import "STDSInvalidInputException.h"
+#import "STDSNotInitializedException.h"
+#import "STDSRuntimeException.h"
+
+#import "STDSErrorMessage.h"
+#import "STDSProtocolErrorEvent.h"
+#import "STDSRuntimeErrorEvent.h"
+#import "STDSStripe3DS2Error.h"
+#import "STDSThreeDSProtocolVersion.h"
+
+#import "STDSAuthenticationRequestParameters.h"
+#import "STDSAuthenticationResponse.h"
+#import "STDSChallengeParameters.h"
+#import "STDSChallengeStatusReceiver.h"
+#import "STDSCompletionEvent.h"
+#import "STDSJSONDecodable.h"
+#import "STDSJSONEncoder.h"
+#import "STDSTransaction.h"
+
+#import "STDSButtonCustomization.h"
+#import "STDSCustomization.h"
+#import "STDSException.h"
+#import "STDSFooterCustomization.h"
+#import "STDSJSONEncodable.h"
+#import "STDSLabelCustomization.h"
+#import "STDSNavigationBarCustomization.h"
+#import "STDSSelectionCustomization.h"
+#import "STDSTextFieldCustomization.h"
+
+#import "STDSSwiftTryCatch.h"
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Info.plist b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Info.plist
new file mode 100644
index 0000000000..be27a3a6ab
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Info.plist differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Modules/module.modulemap b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Modules/module.modulemap
new file mode 100644
index 0000000000..7770928524
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module Stripe3DS2 {
+ umbrella header "Stripe3DS2.h"
+
+ export *
+ module * { export * }
+}
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Stripe3DS2 b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Stripe3DS2
new file mode 100755
index 0000000000..172f721f02
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/Stripe3DS2 differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/amex.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/amex.der
new file mode 100644
index 0000000000..61a1cfd1f0
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/amex.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/da.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/da.lproj/Localizable.strings
new file mode 100644
index 0000000000..5ec99f659f
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/da.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/de.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/de.lproj/Localizable.strings
new file mode 100644
index 0000000000..4a7102c290
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/de.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/discover.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/discover.der
new file mode 100644
index 0000000000..5b17935a35
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/discover.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ec_test.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ec_test.der
new file mode 100644
index 0000000000..06587c44c3
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ec_test.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/en-GB.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/en-GB.lproj/Localizable.strings
new file mode 100644
index 0000000000..f3dd661b06
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/en-GB.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/en.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/en.lproj/Localizable.strings
new file mode 100644
index 0000000000..2440abd600
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/en.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/es-419.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/es-419.lproj/Localizable.strings
new file mode 100644
index 0000000000..415dd67a13
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/es-419.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/es.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/es.lproj/Localizable.strings
new file mode 100644
index 0000000000..361e4c382e
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/es.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/fi.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/fi.lproj/Localizable.strings
new file mode 100644
index 0000000000..69e9adf5e5
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/fi.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/fr-CA.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/fr-CA.lproj/Localizable.strings
new file mode 100644
index 0000000000..9d0943f90d
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/fr-CA.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/fr.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/fr.lproj/Localizable.strings
new file mode 100644
index 0000000000..85e6a6a49c
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/fr.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/hu.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/hu.lproj/Localizable.strings
new file mode 100644
index 0000000000..83c4802687
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/hu.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/it.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/it.lproj/Localizable.strings
new file mode 100644
index 0000000000..a513ed333c
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/it.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ja.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ja.lproj/Localizable.strings
new file mode 100644
index 0000000000..b63f7e5bf8
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ja.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ko.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ko.lproj/Localizable.strings
new file mode 100644
index 0000000000..d984c0bbbd
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ko.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/mastercard.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/mastercard.der
new file mode 100644
index 0000000000..6e136e1331
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/mastercard.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/mt.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/mt.lproj/Localizable.strings
new file mode 100644
index 0000000000..23cbe6a691
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/mt.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/nb.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/nb.lproj/Localizable.strings
new file mode 100644
index 0000000000..8bbcf6499b
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/nb.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/nl.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/nl.lproj/Localizable.strings
new file mode 100644
index 0000000000..b3d20eeaf2
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/nl.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/nn-NO.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/nn-NO.lproj/Localizable.strings
new file mode 100644
index 0000000000..e676f72eda
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/nn-NO.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/pt-BR.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/pt-BR.lproj/Localizable.strings
new file mode 100644
index 0000000000..28945ef8ad
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/pt-BR.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/pt-PT.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/pt-PT.lproj/Localizable.strings
new file mode 100644
index 0000000000..1565f5ba60
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/pt-PT.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ru.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ru.lproj/Localizable.strings
new file mode 100644
index 0000000000..e66e7d76f4
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ru.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/sv.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/sv.lproj/Localizable.strings
new file mode 100644
index 0000000000..b3993c5f1e
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/sv.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/tr.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/tr.lproj/Localizable.strings
new file mode 100644
index 0000000000..c5af6aee58
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/tr.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ul-test.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ul-test.der
new file mode 100644
index 0000000000..11e5f29b3b
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/ul-test.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/visa.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/visa.der
new file mode 100644
index 0000000000..a77735dfa6
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/visa.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/zh-HK.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/zh-HK.lproj/Localizable.strings
new file mode 100644
index 0000000000..393154ffa7
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/zh-HK.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/zh-Hans.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/zh-Hans.lproj/Localizable.strings
new file mode 100644
index 0000000000..9d046f8d31
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/zh-Hans.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/zh-Hant.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/zh-Hant.lproj/Localizable.strings
new file mode 100644
index 0000000000..b5183ce460
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64/Stripe3DS2.framework/zh-Hant.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Assets.car b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Assets.car
new file mode 100644
index 0000000000..10ec85fd36
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Assets.car differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSAlreadyInitializedException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSAlreadyInitializedException.h
new file mode 100644
index 0000000000..c39a85d8cb
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSAlreadyInitializedException.h
@@ -0,0 +1,22 @@
+//
+// STDSAlreadyInitializedException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSException.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSAlreadyInitializedException` represents an exception that will be thrown in the `STDSThreeDS2Service` instance has already been initialized.
+
+ @see STDSThreeDS2Service
+ */
+@interface STDSAlreadyInitializedException : STDSException
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSAuthenticationRequestParameters.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSAuthenticationRequestParameters.h
new file mode 100644
index 0000000000..766e48578c
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSAuthenticationRequestParameters.h
@@ -0,0 +1,68 @@
+//
+// STDSAuthenticationRequestParameters.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/21/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSJSONEncodable.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface STDSAuthenticationRequestParameters : NSObject
+
+/**
+ Designated initializer for `STDSAuthenticationRequestParameters`.
+
+ @param sdkTransactionIdentifier The SDK Transaction Identifier, as created by `[STDSTransaction createTransaction]`
+ @param deviceData Optional device data collected by the SDK.
+ @param sdkEphemeralPublicKey The SDK ephemeral public key.
+ @param sdkAppIdentifier The SDK app identifier.
+ @param sdkReferenceNumber The SDK reference number.
+ @param messageVersion The protocol version that is supported by the SDK and used for the transaction.
+
+ @exception InvalidInputException Thrown if an input parameter is invalid. @see InvalidInputException
+ */
+- (instancetype)initWithSDKTransactionIdentifier:(NSString *)sdkTransactionIdentifier
+ deviceData:(nullable NSString *)deviceData
+ sdkEphemeralPublicKey:(NSString *)sdkEphemeralPublicKey
+ sdkAppIdentifier:(NSString *)sdkAppIdentifier
+ sdkReferenceNumber:(NSString *)sdkReferenceNumber
+ messageVersion:(NSString *)messageVersion;
+
+/**
+ The encrypted device data as a JWE string.
+ */
+@property (nonatomic, readonly, nullable) NSString *deviceData;
+
+/**
+ The SDK Transaction Identifier.
+ */
+@property (nonatomic, readonly) NSString *sdkTransactionIdentifier;
+
+/**
+ The SDK App Identifier.
+ */
+@property (nonatomic, readonly) NSString *sdkAppIdentifier;
+
+/**
+ The SDK reference number.
+ */
+@property (nonatomic, readonly) NSString *sdkReferenceNumber;
+
+/**
+ The SDK ephemeral public key.
+ */
+@property (nonatomic, readonly) NSString *sdkEphemeralPublicKey;
+
+/**
+ The protocol version that is used for the transaction.
+ */
+@property (nonatomic, readonly) NSString *messageVersion;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSAuthenticationResponse.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSAuthenticationResponse.h
new file mode 100644
index 0000000000..d527f38df9
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSAuthenticationResponse.h
@@ -0,0 +1,115 @@
+//
+// STDSAuthenticationResponse.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 2/13/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSJSONDecodable.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The `STDSACSStatusType` enum defines the status of a transaction, as detailed in
+ 3DS2 Spec Seq 3.33:
+ */
+typedef NS_ENUM(NSInteger, STDSACSStatusType) {
+ /// The status is unknown or invalid
+ STDSACSStatusTypeUnknown = 0,
+
+ /// Authenticated
+ STDSACSStatusTypeAuthenticated = 1,
+
+ /// Requires a Cardholder challenge to complete authentication
+ STDSACSStatusTypeChallengeRequired = 2,
+
+ /// Requires a Cardholder challenge using Decoupled Authentication
+ STDSACSStatusTypeDecoupledAuthentication = 3,
+
+ /// Not authenticated
+ STDSACSStatusTypeNotAuthenticated = 4,
+
+ /// Not authenticated, but a proof of authentication attempt (Authentication Value)
+ /// was generated
+ STDSACSStatusTypeProofGenerated = 5,
+
+ /// Not authenticated, as authentication could not be performed due to technical or
+ /// other issue
+ STDSACSStatusTypeError = 6,
+
+ /// Not authenticated because the Issuer is rejecting authentication and requesting
+ /// that authorisation not be attempted
+ STDSACSStatusTypeRejected = 7,
+
+ /// Authentication not requested by the 3DS Server for data sent for informational
+ /// purposes only
+ STDSACSStatusTypeInformationalOnly = 8,
+};
+
+/**
+ A native protocol representing the response sent by the 3DS Server.
+ Only parameters relevant to performing 3DS2 authentication in the mobile SDK are exposed.
+ */
+@protocol STDSAuthenticationResponse
+
+/// Universally unique transaction identifier assigned by the 3DS Server to identify a single transaction.
+@property (nonatomic, readonly) NSString *threeDSServerTransactionID;
+
+/// Transaction status
+@property (nonatomic, readonly) STDSACSStatusType status;
+
+/// Indication of whether a challenge is required.
+@property (nonatomic, readonly, getter=isChallengeRequired) BOOL challengeRequired;
+
+/// Indicates whether the ACS confirms utilisation of Decoupled Authentication and agrees to utilise Decoupled Authentication to authenticate the Cardholder.
+@property (nonatomic, readonly) BOOL willUseDecoupledAuthentication;
+
+/**
+ DS assigned ACS identifier.
+ Each DS can provide a unique ID to each ACS on an individual basis.
+ */
+@property (nonatomic, readonly, nullable) NSString *acsOperatorID;
+
+/// Unique identifier assigned by the EMVCo Secretariat upon Testing and Approval.
+@property (nonatomic, readonly, nullable) NSString *acsReferenceNumber;
+
+/// Contains the JWS object (represented as a string) created by the ACS for the ARes message.
+@property (nonatomic, readonly, nullable) NSString *acsSignedContent;
+
+/// Universally Unique transaction identifier assigned by the ACS to identify a single transaction.
+@property (nonatomic, readonly) NSString *acsTransactionID;
+
+/// Fully qualified URL of the ACS to be used for the challenge.
+@property (nonatomic, readonly, nullable) NSURL *acsURL;
+
+/**
+ Text provided by the ACS/Issuer to Cardholder during a Frictionless or Decoupled transaction. The Issuer can provide information to Cardholder.
+ For example, “Additional authentication is needed for this transaction, please contact (Issuer Name) at xxx-xxx-xxxx.”
+ */
+@property (nonatomic, readonly, nullable) NSString *cardholderInfo;
+
+/// EMVCo-assigned unique identifier to track approved DS.
+@property (nonatomic, readonly, nullable) NSString *directoryServerReferenceNumber;
+
+/// Universally unique transaction identifier assigned by the DS to identify a single transaction.
+@property (nonatomic, readonly, nullable) NSString *directoryServerTransactionID;
+
+/**
+ Protocol version identifier This shall be the Protocol Version Number of the specification utilised by the system creating this message.
+ The Message Version Number is set by the 3DS Server which originates the protocol with the AReq message.
+ The Message Version Number does not change during a 3DS transaction.
+ */
+@property (nonatomic, readonly) NSString *protocolVersion;
+
+/// Universally unique transaction identifier assigned by the 3DS SDK to identify a single transaction.
+@property (nonatomic, readonly) NSString *sdkTransactionID;
+
+@end
+
+/// A utility to parse an STDSAuthenticationResponse from JSON
+id _Nullable STDSAuthenticationResponseFromJSON(NSDictionary *json);
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSButtonCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSButtonCustomization.h
new file mode 100644
index 0000000000..dd63f9820a
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSButtonCustomization.h
@@ -0,0 +1,83 @@
+//
+// STDSButtonCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+#import
+#import
+
+#import "STDSCustomization.h"
+
+/// An enum that defines the different types of buttons that are able to be customized.
+typedef NS_ENUM(NSInteger, STDSUICustomizationButtonType) {
+
+ /// The submit button type.
+ STDSUICustomizationButtonTypeSubmit = 0,
+
+ /// The continue button type.
+ STDSUICustomizationButtonTypeContinue = 1,
+
+ /// The next button type.
+ STDSUICustomizationButtonTypeNext = 2,
+
+ /// The cancel button type.
+ STDSUICustomizationButtonTypeCancel = 3,
+
+ /// The resend button type.
+ STDSUICustomizationButtonTypeResend = 4,
+};
+
+/// An enumeration of the case transformations that can be applied to the button's title
+typedef NS_ENUM(NSInteger, STDSButtonTitleStyle) {
+ /// Default style, doesn't modify the title
+ STDSButtonTitleStyleDefault,
+
+ /// Applies localizedUppercaseString to the title
+ STDSButtonTitleStyleUppercase,
+
+ /// Applies localizedLowercaseString to the title
+ STDSButtonTitleStyleLowercase,
+
+ /// Applies localizedCapitalizedString to the title
+ STDSButtonTitleStyleSentenceCapitalized,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// A customization object to use to configure the UI of a button.
+@interface STDSButtonCustomization: STDSCustomization
+
+/// The default settings for the provided button type.
++ (instancetype)defaultSettingsForButtonType:(STDSUICustomizationButtonType)type;
+
+/**
+ Initializes an instance of STDSButtonCustomization with the given backgroundColor and colorRadius.
+ */
+- (instancetype)initWithBackgroundColor:(UIColor *)backgroundColor cornerRadius:(CGFloat)cornerRadius;
+
+/**
+ This is unavailable because there are no sensible default property values without a button type.
+ Use `defaultSettingsForButtonType:` or `initWithBackgroundColor:cornerRadius:` instead.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ The background color of the button.
+ The default for .resend and .cancel is clear.
+ The default for .submit, .continue, and .next is blue.
+ */
+@property (nonatomic) UIColor *backgroundColor;
+
+/// The corner radius of the button. Defaults to 8.
+@property (nonatomic) CGFloat cornerRadius;
+
+/**
+ The capitalization style of the button title
+ */
+@property (nonatomic) STDSButtonTitleStyle titleStyle;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSChallengeParameters.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSChallengeParameters.h
new file mode 100644
index 0000000000..e1aa151cdc
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSChallengeParameters.h
@@ -0,0 +1,61 @@
+//
+// STDSChallengeParameters.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 2/13/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+@protocol STDSAuthenticationResponse;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSChallengeParameters` contains information from the 3DS Server's
+ authentication response that are used by the 3DS2 SDK to initiate
+ the challenge flow.
+ */
+@interface STDSChallengeParameters : NSObject
+
+/**
+ Convenience intiializer to create an instace of `STDSChallengeParameters` from an
+ `STDSAuthenticationResponse`
+ */
+- (instancetype)initWithAuthenticationResponse:(id)authResponse;
+
+/**
+ Transaction identifier assigned by the 3DS Server to uniquely identify
+ a transaction.
+ */
+@property (nonatomic, copy) NSString *threeDSServerTransactionID;
+
+/**
+ Transaction identifier assigned by the Access Control Server (ACS)
+ to uniquely identify a transaction.
+ */
+@property (nonatomic, copy) NSString *acsTransactionID;
+
+/**
+ The reference number of the relevant Access Control Server.
+ */
+@property (nonatomic, copy) NSString *acsReferenceNumber;
+
+/**
+ The encrypted message sent by the Access Control Server
+ containing the ACS URL, epthemeral public key, and the
+ 3DS2 SDK ephemeral public key.
+ */
+@property (nonatomic, copy) NSString *acsSignedContent;
+
+/**
+ The URL for the application that is requesting 3DS2 verification.
+ This property can be optionally set and will be included with the
+ messages sent to the Directory Server during the challenge flow.
+ */
+@property (nonatomic, copy, nullable) NSString *threeDSRequestorAppURL;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSChallengeStatusReceiver.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSChallengeStatusReceiver.h
new file mode 100644
index 0000000000..a06a32bb93
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSChallengeStatusReceiver.h
@@ -0,0 +1,61 @@
+//
+// STDSChallengeStatusReceiver.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/20/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+@class STDSTransaction, STDSCompletionEvent, STDSRuntimeErrorEvent, STDSProtocolErrorEvent;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Implement the `STDSChallengeStatusReceiver` protocol to receive challenge status notifications at the end of the challenge process.
+ @see `STDSTransaction.doChallenge`
+ */
+@protocol STDSChallengeStatusReceiver
+
+/**
+ Called when the challenge process is completed.
+
+ @param completionEvent Information about the completion of the challenge process. @see `STDSCompletionEvent`
+ */
+- (void)transaction:(STDSTransaction *)transaction didCompleteChallengeWithCompletionEvent:(STDSCompletionEvent *)completionEvent;
+
+/**
+ Called when the user selects the option to cancel the transaction on the challenge screen.
+ */
+- (void)transactionDidCancel:(STDSTransaction *)transaction;
+
+/**
+ Called when the challenge process reaches or exceeds the timeout interval that was passed to `STDSTransaction.doChallenge`
+ */
+- (void)transactionDidTimeOut:(STDSTransaction *)transaction;
+
+/**
+ Called when the 3DS SDK receives an EMV 3-D Secure protocol-defined error message from the ACS.
+
+ @param protocolErrorEvent The error code and details. @see `STDSProtocolErrorEvent`
+ */
+- (void)transaction:(STDSTransaction *)transaction didErrorWithProtocolErrorEvent:(STDSProtocolErrorEvent *)protocolErrorEvent;
+
+/**
+ Called when the 3DS SDK encounters errors during the challenge process. These errors include all errors except those covered by `didErrorWithProtocolErrorEvent`.
+
+ @param runtimeErrorEvent The error code and details. @see `STDSRuntimeErrorEvent`
+ */
+- (void)transaction:(STDSTransaction *)transaction didErrorWithRuntimeErrorEvent:(STDSRuntimeErrorEvent *)runtimeErrorEvent;
+
+@optional
+
+/**
+ Optional method that will be called when the transaction displays a new challenge screen.
+ */
+- (void)transactionDidPresentChallengeScreen:(STDSTransaction *)transaction;
+
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSCompletionEvent.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSCompletionEvent.h
new file mode 100644
index 0000000000..851c71dbe2
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSCompletionEvent.h
@@ -0,0 +1,40 @@
+//
+// STDSCompletionEvent.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/20/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSCompletionEvent` contains information about completion of the challenge process.
+ */
+@interface STDSCompletionEvent : NSObject
+
+/**
+ Designated initializer for `STDSCompletionEvent`.
+ */
+- (instancetype)initWithSDKTransactionIdentifier:(NSString *)identifier transactionStatus:(NSString *)transactionStatus NS_DESIGNATED_INITIALIZER;
+
+/**
+ `STDSCompletionEvent` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ The SDK Transaction ID.
+ */
+@property (nonatomic, readonly) NSString *sdkTransactionIdentifier;
+
+/**
+ The transaction status that was received in the final challenge response.
+ */
+@property (nonatomic, readonly) NSString *transactionStatus;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSConfigParameters.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSConfigParameters.h
new file mode 100644
index 0000000000..4d77ba5d5a
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSConfigParameters.h
@@ -0,0 +1,96 @@
+//
+// STDSConfigParameters.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The default group name that will be used to group additional
+ configuration parameters.
+ */
+extern NSString * const kSTDSConfigDefaultGroupName;
+
+/**
+ `STDSConfigParameters` represents additional configuration parameters
+ that can be passed to the Stripe3DS2 SDK during initialization.
+
+ There are currently no supported additional parameters and apps can
+ just pass `[STDSConfigParameters alloc] initWithStandardParameters`
+ to the `STDSThreeDS2Service` instance.
+ */
+@interface STDSConfigParameters : NSObject
+
+/**
+ Convenience initializer to get an `STDSConfigParameters` instance
+ with the default expected configuration parameters.
+ */
+- (instancetype)initWithStandardParameters;
+
+/**
+ Adds the parameter to this instance.
+
+ @param paramName The name of the parameter to add
+ @param paramValue The value of the parameter to add
+ @param paramGroup The group to which this parameter will be added. If `nil` the parameter will be added to `kSTDSConfigDefaultGroupName`
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` or `paramValue` are `nil`. @see STDSInvalidInputException
+ */
+- (void)addParameterNamed:(NSString *)paramName withValue:(NSString *)paramValue toGroup:(nullable NSString *)paramGroup;
+
+/**
+ Adds the parameter to the default group in this instance.
+
+ @param paramName The name of the parameter to add
+ @param paramValue The value of the parameter to add
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` or `paramValue` are `nil`. @see STDSInvalidInputException
+ */
+- (void)addParameterNamed:(NSString *)paramName withValue:(NSString *)paramValue;
+
+/**
+ Returns the value for `paramName` in `paramGroup` or `nil` if the parameter value is not set.
+
+ @param paramName The name of the parameter to return
+ @param paramGroup The group from which to fetch the parameter value. If `nil` will default to `kSTDSConfigDefaultGroupName`
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` is `nil`. @see STDSInvalidInputException
+ */
+- (nullable NSString *)parameterValue:(NSString *)paramName inGroup:(nullable NSString *)paramGroup;
+
+/**
+ Returns the value for `paramName` in the default group or `nil` if the parameter value is not set.
+
+ @param paramName The name of the parameter to return
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` is `nil`. @see STDSInvalidInputException
+ */
+- (nullable NSString *)parameterValue:(NSString *)paramName;
+
+/**
+ Removes the specified parameter from the group and returns the value or `nil` if the parameter was not found.
+
+ @param paramName The name of the parameter to remove
+ @param paramGroup The group from which to remove this parameter. If `nil` will default to `kSTDSConfigDefaultGroupName`
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` is `nil`. @see STDSInvalidInputException
+ */
+- (nullable NSString *)removeParameterNamed:(NSString *)paramName fromGroup:(nullable NSString *)paramGroup;
+
+/**
+ Removes the specified parameter from the default group and returns the value or `nil` if the parameter was not found.
+
+ @param paramName The name of the parameter to remove
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` is `nil`. @see STDSInvalidInputException
+ */
+- (nullable NSString *)removeParameterNamed:(NSString *)paramName;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSCustomization.h
new file mode 100644
index 0000000000..516eff9e3c
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSCustomization.h
@@ -0,0 +1,25 @@
+//
+// STDSCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// This class provides a common set of customization parameters, used to customize elements of the UI.
+@interface STDSCustomization : NSObject
+
+/// The font to use for text.
+@property (nonatomic, nullable) UIFont *font;
+
+/// The color to use for the text.
+@property (nonatomic, nullable) UIColor *textColor;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSErrorMessage.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSErrorMessage.h
new file mode 100644
index 0000000000..35bce4a305
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSErrorMessage.h
@@ -0,0 +1,108 @@
+//
+// STDSErrorMessage.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/21/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSJSONEncodable.h"
+#import "STDSJSONDecodable.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// Error codes as defined by the 3DS2 spec.
+typedef NS_ENUM(NSInteger, STDSErrorMessageCode) {
+ /// The SDK received a message that is not an ARes, CRes, or ErrorMessage.
+ STDSErrorMessageCodeInvalidMessage = 101,
+
+ /// A required data element is missing from the network response.
+ STDSErrorMessageCodeRequiredDataElementMissing = 201,
+
+ // Critical message extension not recognised
+ STDSErrorMessageCodeUnrecognizedCriticalMessageExtension = 202,
+
+ /// A data element is not in the required format or the value is invalid.
+ STDSErrorMessageErrorInvalidDataElement = 203,
+
+ // Transaction ID not recognized
+ STDSErrorMessageErrorTransactionIDNotRecognized = 301,
+
+ /// A network response could not be decrypted or verified.
+ STDSErrorMessageErrorDataDecryptionFailure = 302,
+
+ /// The SDK timed out
+ STDSErrorMessageErrorTimeout = 402,
+};
+
+/**
+ `STDSErrorMessage` represents an error message that is returned by the ACS or to be sent to the ACS.
+ */
+@interface STDSErrorMessage : NSObject
+
+/**
+ Designated initializer for `STDSErrorMessage`.
+
+ @param errorCode The error code.
+ @param errorComponent The component that identified the error.
+ @param errorDescription Text describing the error.
+ @param errorDetails Additional error details. Optional.
+ */
+- (instancetype)initWithErrorCode:(NSString *)errorCode
+ errorComponent:(NSString *)errorComponent
+ errorDescription:(NSString *)errorDescription
+ errorDetails:(nullable NSString *)errorDetails
+ messageVersion:(NSString *)messageVersion
+ acsTransactionIdentifier:(nullable NSString *)acsTransactionIdentifier
+ errorMessageType:(NSString *)errorMessageType;
+
+/**
+ `STDSErrorMessage` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ The error code.
+ */
+@property (nonatomic, readonly) NSString *errorCode;
+
+/**
+ The 3-D Secure component that identified the error.
+ */
+@property (nonatomic, readonly) NSString *errorComponent;
+
+/**
+ Text describing the error.
+ */
+@property (nonatomic, readonly) NSString *errorDescription;
+
+/**
+ Additional error details.
+ */
+@property (nonatomic, nullable, readonly) NSString *errorDetails;
+
+/**
+ The protocol version identifier.
+ */
+@property (nonatomic, readonly) NSString *messageVersion;
+
+/**
+ The ACS transaction identifier.
+ */
+@property (nonatomic, readonly, nullable) NSString *acsTransactionIdentifier;
+
+/**
+ The message type that was identified as erroneous.
+ */
+@property (nonatomic, readonly) NSString *errorMessageType;
+
+/**
+ A representation of the `STDSErrorMessage` as an `NSError`
+ */
+- (NSError *)NSErrorValue;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSException.h
new file mode 100644
index 0000000000..1f2c5ecdf8
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSException.h
@@ -0,0 +1,25 @@
+//
+// STDSException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ An abstract class to represent 3DS2 SDK custom exceptions
+ */
+@interface STDSException : NSException
+
+/**
+ A description of the exception.
+ */
+@property (nonatomic, readonly) NSString *message;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSFooterCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSFooterCustomization.h
new file mode 100644
index 0000000000..990ffd9b25
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSFooterCustomization.h
@@ -0,0 +1,41 @@
+//
+// STDSFooterCustomization.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 6/10/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The Challenge view displays a footer with additional details that
+ expand when tapped. This object configures the appearance of that view.
+*/
+@interface STDSFooterCustomization : STDSCustomization
+
+/// The default settings.
++ (instancetype)defaultSettings;
+
+/**
+ The background color of the footer.
+ Defaults to gray.
+ */
+@property (nonatomic) UIColor *backgroundColor;
+
+/// The color of the chevron. Defaults to a dark gray.
+@property (nonatomic) UIColor *chevronColor;
+
+/// The color of the heading text. Defaults to black.
+@property (nonatomic) UIColor *headingTextColor;
+
+/// The font to use for the heading text.
+@property (nonatomic) UIFont *headingFont;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSInvalidInputException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSInvalidInputException.h
new file mode 100644
index 0000000000..b30d4e1079
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSInvalidInputException.h
@@ -0,0 +1,21 @@
+//
+// STDSInvalidInputException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSException.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSInvalidInputException` represents an exception that will be thrown by
+ Stripe3DS2 SDK methods that are called with invalid input arguments.
+ */
+@interface STDSInvalidInputException : STDSException
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSJSONDecodable.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSJSONDecodable.h
new file mode 100644
index 0000000000..f93428acf7
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSJSONDecodable.h
@@ -0,0 +1,33 @@
+//
+// STDSJSONDecodable.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/27/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol STDSJSONDecodable
+
+/**
+ Initializes an instance of the class from its JSON representation.
+
+ This method recognizes two categories of errors:
+ - a required field is missing.
+ - a required field value is in valid (e.g. expected 'Y' or 'N' but received 'X').
+
+ Errors populating optional fields are ignored.
+
+ @param json The JSON dictionary that represents an object of this type
+ @param outError If there was a missing required field or invalid field value, contains an instance of NSError.
+
+ @return The object represented by the JSON dictionary. If the object could not be decoded, returns nil and populates the outError argument.
+ */
++ (nullable instancetype)decodedObjectFromJSON:(nullable NSDictionary *)json error:(NSError **)outError;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSJSONEncodable.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSJSONEncodable.h
new file mode 100644
index 0000000000..9861a23c39
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSJSONEncodable.h
@@ -0,0 +1,22 @@
+//
+// STDSJSONEncodable.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/25/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol STDSJSONEncodable
+
+/**
+ Returns a map of property names to their JSON representation's key value. For example, `STDSChallengeParameters` has a property called `acsTransactionID`, but the 3DS2 JSON spec expects a field called `acsTransID`. This dictionary represents a mapping from the former to the latter (in other words, [STDSChallengeParameters propertyNamesToJSONKeysMapping][@"acsTransactionID"] == @"acsTransID".)
+ */
++ (NSDictionary *)propertyNamesToJSONKeysMapping;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSJSONEncoder.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSJSONEncoder.h
new file mode 100644
index 0000000000..7ccc07e613
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSJSONEncoder.h
@@ -0,0 +1,27 @@
+//
+// STDSJSONEncoder.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/25/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSJSONEncodable.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSJSONEncoder` is a utility class to help with converting API objects into JSON
+ */
+@interface STDSJSONEncoder : NSObject
+
+/**
+ Method to convert an STDSJSONEncodable object into a JSON dictionary.
+ */
++ (NSDictionary *)dictionaryForObject:(NSObject *)object;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSLabelCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSLabelCustomization.h
new file mode 100644
index 0000000000..af75cf39dd
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSLabelCustomization.h
@@ -0,0 +1,31 @@
+//
+// STDSLabelCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ A customization object to use to configure the UI of a text label.
+
+ The font and textColor inherited from `STDSCustomization` configure non-heading labels.
+ */
+@interface STDSLabelCustomization : STDSCustomization
+
+/// The default settings.
++ (instancetype)defaultSettings;
+
+/// The color of the heading text. Defaults to black.
+@property (nonatomic) UIColor *headingTextColor;
+
+/// The font to use for the heading text.
+@property (nonatomic) UIFont *headingFont;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSNavigationBarCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSNavigationBarCustomization.h
new file mode 100644
index 0000000000..18affaaf74
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSNavigationBarCustomization.h
@@ -0,0 +1,59 @@
+//
+// STDSNavigationBarCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+#import
+
+#import "STDSCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ A customization object to use to configure a UINavigationBar.
+
+ The font and textColor inherited from `STDSCustomization` configure the
+ title of the navigation bar, and default to nil.
+ */
+@interface STDSNavigationBarCustomization : STDSCustomization
+
+/// The default settings.
++ (instancetype)defaultSettings;
+
+/**
+ The tint color of the navigation bar background.
+ Defaults to nil.
+ */
+@property (nonatomic, nullable) UIColor *barTintColor;
+
+/**
+ The navigation bar style.
+ Defaults to UIBarStyleDefault.
+ */
+@property (nonatomic) UIBarStyle barStyle;
+
+/**
+ A Boolean value indicating whether the navigation bar is translucent or not.
+ Defaults to YES.
+ */
+@property (nonatomic) BOOL translucent;
+
+/**
+ The text to display in the title of the navigation bar.
+ Defaults to "Secure checkout".
+ */
+@property (nonatomic, copy) NSString *headerText;
+
+/**
+ The text to display for the button in the navigation bar.
+ Defaults to "Cancel".
+ */
+@property (nonatomic, copy) NSString *buttonText;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSNotInitializedException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSNotInitializedException.h
new file mode 100644
index 0000000000..cb836d5e83
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSNotInitializedException.h
@@ -0,0 +1,23 @@
+//
+// STDSNotInitializedException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 2/13/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSException.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSNotInitializedException` represents an exception that will be thrown by
+ the the Stripe3DS2 SDK if methods are called without initializing `STDSThreeDS2Service`.
+
+ @see STDSThreeDS2Service
+ */
+@interface STDSNotInitializedException : STDSException
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSProtocolErrorEvent.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSProtocolErrorEvent.h
new file mode 100644
index 0000000000..1e3142a722
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSProtocolErrorEvent.h
@@ -0,0 +1,42 @@
+//
+// STDSProtocolErrorEvent.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/20/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+@class STDSErrorMessage;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSProtocolErrorEvent` contains details about erorrs received from or sent to the ACS.
+ */
+@interface STDSProtocolErrorEvent : NSObject
+
+/**
+ Designated initializer for `STDSProtocolErrorEvent`.
+ */
+- (instancetype)initWithSDKTransactionIdentifier:(NSString *)identifier errorMessage:(STDSErrorMessage *)errorMessage;
+
+/**
+ `STDSProtocolErrorEvent` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ Details about the error.
+ */
+@property (nonatomic, readonly) STDSErrorMessage *errorMessage;
+
+/**
+ The SDK Transaction Identifier.
+ */
+@property (nonatomic, readonly) NSString *sdkTransactionIdentifier;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSRuntimeErrorEvent.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSRuntimeErrorEvent.h
new file mode 100644
index 0000000000..658cdb90cb
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSRuntimeErrorEvent.h
@@ -0,0 +1,53 @@
+//
+// STDSRuntimeErrorEvent.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/20/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+FOUNDATION_EXTERN NSString * const kSTDSRuntimeErrorCodeParsingError;
+FOUNDATION_EXTERN NSString * const kSTDSRuntimeErrorCodeEncryptionError;
+
+/**
+ `STDSRuntimeErrorEvent` contains details about run-time errors encountered during authentication.
+
+ The following are examples of run-time errors:
+ - ACS is unreachable
+ - Unparseable message
+ - Network issues
+ */
+@interface STDSRuntimeErrorEvent : NSObject
+
+/**
+ A code corresponding to the type of error this represents.
+ */
+@property (nonatomic, readonly) NSString *errorCode;
+
+/**
+ Details about the error.
+ */
+@property (nonatomic, readonly) NSString *errorMessage;
+
+/**
+ Designated initializer for `STDSRuntimeErrorEvent`.
+ */
+- (instancetype)initWithErrorCode:(NSString *)errorCode errorMessage:(NSString *)errorMessage NS_DESIGNATED_INITIALIZER;
+
+/**
+ A representation of the `STDSRuntimeErrorEvent` as an `NSError`
+ */
+- (NSError *)NSErrorValue;
+
+/**
+ `STDSRuntimeErrorEvent` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSRuntimeException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSRuntimeException.h
new file mode 100644
index 0000000000..5b63a2d3bf
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSRuntimeException.h
@@ -0,0 +1,21 @@
+//
+// STDSRuntimeException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSException.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSRuntimeException` represents an exception that will be thrown by the
+ Stripe3DS2 SDK if it encounters an internal error.
+ */
+@interface STDSRuntimeException : STDSException
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSSelectionCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSSelectionCustomization.h
new file mode 100644
index 0000000000..a9818bb988
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSSelectionCustomization.h
@@ -0,0 +1,48 @@
+//
+// STDSSelectionCustomization.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 6/11/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ A customization object that configures the appearance of
+ radio buttons and checkboxes.
+ */
+@interface STDSSelectionCustomization: NSObject
+
+/// The default settings.
++ (instancetype)defaultSettings;
+
+/**
+ The primary color of the selected state.
+ Defaults to blue.
+ */
+@property (nonatomic) UIColor *primarySelectedColor;
+
+/**
+ The secondary color of the selected state (e.g. the checkmark color).
+ Defaults to white.
+ */
+@property (nonatomic) UIColor *secondarySelectedColor;
+
+/**
+ The background color displayed in the unselected state.
+ Defaults to light blue.
+ */
+@property (nonatomic) UIColor *unselectedBackgroundColor;
+
+/**
+ The color of the border drawn around the view in the unselected state.
+ Defaults to blue.
+ */
+@property (nonatomic) UIColor *unselectedBorderColor;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSStripe3DS2Error.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSStripe3DS2Error.h
new file mode 100644
index 0000000000..2e506fe2f4
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSStripe3DS2Error.h
@@ -0,0 +1,68 @@
+//
+// STDSStripe3DS2Error.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/27/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+FOUNDATION_EXPORT NSString * const STDSStripe3DS2ErrorDomain;
+
+/**
+ NSError.userInfo contains this key if we received an ErrorMessage instead of the expected response object.
+ The value of this key is the ErrorMessage.
+ */
+FOUNDATION_EXPORT NSString * const STDSStripe3DS2ErrorMessageErrorKey;
+
+/**
+ NSError.userInfo contains this key if we errored parsing JSON.
+ The value of this key is the invalid or missing field.
+ */
+FOUNDATION_EXPORT NSString * const STDSStripe3DS2ErrorFieldKey;
+
+/**
+ NSError.userInfo contains this key if we couldn't recognize critical message extension(s)
+ The value of this key is an array of identifiers.
+ */
+FOUNDATION_EXPORT NSString * const STDSStripe3DS2UnrecognizedCriticalMessageExtensionsKey;
+
+
+typedef NS_ENUM(NSInteger, STDSErrorCode) {
+
+ /// Code triggered an assertion
+ STDSErrorCodeAssertionFailed = 204,
+
+ // JSON Parsing
+ /// Received invalid or malformed data
+ STDSErrorCodeJSONFieldInvalid = 203,
+ /// Expected field missing
+ STDSErrorCodeJSONFieldMissing = 201,
+
+ /// Critical message extension not recognised
+ STDSErrorCodeUnrecognizedCriticalMessageExtension = 202,
+
+ /// Decryption or verification error
+ STDSErrorCodeDecryptionVerification = 302,
+
+ /// Error code corresponding to a `STDSRuntimeErrorEvent` for an unparseable network response
+ STDSErrorCodeRuntimeParsing = 400,
+ /// Error code corresponding to a `STDSRuntimeErrorEvent` for an error with decrypting or verifying a network response
+ STDSErrorCodeRuntimeEncryption = 401,
+
+ // Networking
+ /// We received an ErrorMessage instead of the expected response object. `userInfo[STDSStripe3DS2ErrorMessageErrorKey]` will contain the ErrorMessage object.
+ STDSErrorCodeReceivedErrorMessage = 1000,
+ /// We received an unknown message type.
+ STDSErrorCodeUnknownMessageType = 1001,
+ /// Request timed out
+ STDSErrorCodeTimeout = 1002,
+
+ /// Unknown
+ STDSErrorCodeUnknownError = 2000,
+};
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSSwiftTryCatch.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSSwiftTryCatch.h
new file mode 100644
index 0000000000..47443368a7
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSSwiftTryCatch.h
@@ -0,0 +1,50 @@
+//
+// STDSSwiftTryCatch.h
+//
+// Created by William Falcon on 10/10/14.
+// Copyright (c) 2014 William Falcon. All rights reserved.
+//
+/*
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+ */
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Provides try catch functionality for swift by wrapping around Objective-C
+ */
+@interface STDSSwiftTryCatch : NSObject
+
+/**
+ Provides try catch functionality for swift by wrapping around Objective-C
+ */
++ (void)tryBlock:(void(^)(void))tryBlock catchBlock:(void(^)(NSException*exception))catchBlock finallyBlock:(void(^)(void))finallyBlock;
+/**
+ Throws Objective-C exception with name and reason set to `s`
+ */
++ (void)throwString:(NSString*)s;
+
+/**
+ Throws exception `e`
+ */
++ (void)throwException:(NSException*)e;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSTextFieldCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSTextFieldCustomization.h
new file mode 100644
index 0000000000..6f2bfede11
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSTextFieldCustomization.h
@@ -0,0 +1,47 @@
+//
+// STDSTextFieldCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ A customization object to use to configure the UI of a text field.
+
+ The font and textColor inherited from `STDSCustomization` configure
+ the user input text.
+ */
+@interface STDSTextFieldCustomization : STDSCustomization
+
+/**
+ The default settings.
+
+ The default textColor is black.
+ */
++ (instancetype)defaultSettings;
+
+/// The border width of the text field. Defaults to 2.
+@property (nonatomic) CGFloat borderWidth;
+
+/// The color of the border of the text field. Defaults to clear.
+@property (nonatomic) UIColor *borderColor;
+
+/// The corner radius of the edges of the text field. Defaults to 8.
+@property (nonatomic) CGFloat cornerRadius;
+
+/// The appearance of the keyboard. Defaults to UIKeyboardAppearanceDefault.
+@property (nonatomic) UIKeyboardAppearance keyboardAppearance;
+
+/// The color of the placeholder text. Defaults to light gray.
+@property (nonatomic) UIColor *placeholderTextColor;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSThreeDS2Service.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSThreeDS2Service.h
new file mode 100644
index 0000000000..c0baa55fef
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSThreeDS2Service.h
@@ -0,0 +1,84 @@
+//
+// STDSThreeDS2Service.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+@class STDSConfigParameters;
+@class STDSTransaction;
+@class STDSUICustomization;
+@class STDSWarning;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSThreeDS2Service` is the main 3DS SDK interface and provides methods to process transactions.
+ */
+@interface STDSThreeDS2Service : NSObject
+
+/**
+ A list of warnings that may be populated once the SDK has been initialized.
+ */
+@property (nonatomic, readonly, nullable) NSArray *warnings;
+
+/**
+ Initializes the 3DS SDK instance.
+
+ This method should be called at the start of the payment stage of a transaction.
+ **Note: Until the `STDSThreeDS2Service instance is initialized, it will be unusable.**
+
+ - Performs security checks
+ - Collects device information
+
+ @param config Configuration information that will be used during initialization. @see STDSConfigParameters
+ @param locale Optional override for the locale to use in UI. If `nil`, will default to the current system locale.
+ @param uiSettings Optional custom UI settings. If `nil`, will default to `[STDSUICustomization defaultSettings]`.
+ This argument is copied; any further changes to the customization object have no effect. @see STDSUICustomization
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `config` is `nil` or any of `config`, `locale`, or `uiSettings` are invalid. @see STDSInvalidInputException
+ @exception STDSAlreadyInitializedException Will throw an `STDSAlreadyInitializedException` if the 3DS SDK instance has already been initialized. @see STDSSDKAlreadyInitializedException
+ @exception STDSRuntimeException Will throw an `STDSRuntimeException` if there is an internal error in the SDK. @see STDSRuntimeException
+ */
+- (void)initializeWithConfig:(STDSConfigParameters *)config
+ locale:(nullable NSLocale *)locale
+ uiSettings:(nullable STDSUICustomization *)uiSettings;
+
+/**
+ Creates and returns an instance of `STDSTransaction`.
+
+ @param directoryServerID The Directory Server identifier returned in the authentication response
+ @param protocolVersion 3DS protocol version according to which the transaction will be created. Uses the default value of 2.1.0 if nil
+
+ @exception STDSNotInitializedException Will throw an `STDSNotInitializedException` if the the `STDSThreeDS2Service` instance hasn't been initialized with a call to `initializeWithConfig:locale:uiSettings:`. @see STDSNotInitializedException
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `directoryServerID` is not recognized or if the `protocolVersion` is not supported by this version of the SDK. @see STDSInvalidInputException
+ @exception STDSRuntimeException Will throw an `STDSRuntimeException` if there is an internal error in the SDK. @see STDSRuntimeException
+ */
+- (STDSTransaction *)createTransactionForDirectoryServer:(NSString *)directoryServerID
+ withProtocolVersion:(nullable NSString *)protocolVersion;
+
+/**
+ Creates and returns an instance of `STDSTransaction` using a custom directory server certificate.
+ Will return nil if unable to create a certificate from the provided params.
+
+ @param directoryServerID The Directory Server identifier returned in the authentication response
+ @param serverKeyID An additional authentication key used by some Directory Servers
+ @param certificateString A Base64-encoded PEM or DER formatted certificate string containing the directory server's public key
+ @param rootCertificateStrings An arry of base64-encoded PEM or DER formatted certificate strings containing the DS root certificate used for signature checks
+ @param protocolVersion 3DS protocol version according to which the transaction will be created. Uses the default value of 2.1.0 if nil
+
+ @exception STDSNotInitializedException Will throw an `STDSNotInitializedException` if the the `STDSThreeDS2Service` instance hasn't been initialized with a call to `initializeWithConfig:locale:uiSettings:`. @see STDSNotInitializedException
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if the `protocolVersion` is not supported by this version of the SDK. @see STDSInvalidInputException
+ */
+- (nullable STDSTransaction *)createTransactionForDirectoryServer:(NSString *)directoryServerID
+ serverKeyID:(nullable NSString *)serverKeyID
+ certificateString:(NSString *)certificateString
+ rootCertificateStrings:(NSArray *)rootCertificateStrings
+ withProtocolVersion:(nullable NSString *)protocolVersion;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSThreeDSProtocolVersion.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSThreeDSProtocolVersion.h
new file mode 100644
index 0000000000..b4161a6e3c
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSThreeDSProtocolVersion.h
@@ -0,0 +1,15 @@
+//
+// STDSThreeDSProtocolVersion.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 6/27/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+FOUNDATION_EXPORT NSString * const Stripe3DS2ProtocolVersion;
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSTransaction.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSTransaction.h
new file mode 100644
index 0000000000..45d06e5142
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSTransaction.h
@@ -0,0 +1,79 @@
+//
+// STDSTransaction.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/21/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+#import
+
+typedef void (^STDSTransactionVoidBlock)(void);
+
+@class STDSAuthenticationRequestParameters, STDSChallengeParameters;
+@protocol STDSChallengeStatusReceiver;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSTransaction` holds parameters that the 3DS Server requires to create AReq messages and to perform the Challenge Flow.
+ */
+@interface STDSTransaction : NSObject
+
+/**
+ The UI type of the presented challenge for this transaction if applicable. Will be one of
+ "none"
+ "text"
+ "single_select"
+ "multi_select"
+ "oob"
+ "html"
+ */
+@property (nonatomic, readonly, copy) NSString *presentedChallengeUIType;
+
+/**
+ Encrypts device information collected during initialization and returns it along with SDK details.
+
+ @return Encrypted device information and details about this SDK. @see STDSAuthenticationRequestParameters
+
+ @exception SDKRuntimeException Thrown if an internal error is encountered.
+ */
+- (STDSAuthenticationRequestParameters *)createAuthenticationRequestParameters;
+
+/**
+ Returns a UIViewController instance displaying the Directory Server logo and a spinner. Present this during the Authentication Request/Response.
+ */
+- (UIViewController *)createProgressViewControllerWithDidCancel:(STDSTransactionVoidBlock)didCancel;
+
+/**
+ Initiates the challenge process, displaying challenge UI as needed.
+
+ @param presentingViewController The UIViewController used to present the challenge response UIViewController
+ @param challengeParameters Details required to conduct the challenge process. @see STDSChallengeParameters
+ @param challengeStatusReceiver A callback object to receive the status of the challenge. See @STDSChallengeStatusReceiver
+ @param timeout An interval in seconds within which the challenge process will finish. Must be at least 5 minutes.
+
+ @exception STDSInvalidInputException Thrown if an argument is invalid (e.g. timeout less than 5 minutes). @see STDSInvalidInputException
+ @exception STDSSDKRuntimeException Thrown if an internal error is encountered, and if you call this method after calling `close`. @see SDKRuntimeException
+ */
+- (void)doChallengeWithViewController:(UIViewController *)presentingViewController
+ challengeParameters:(STDSChallengeParameters *)challengeParameters
+ challengeStatusReceiver:(id)challengeStatusReceiver
+ timeout:(NSTimeInterval)timeout;
+
+/**
+ Returns the version of the Stripe3DS2 SDK, e.g. @"1.0"
+ */
+- (NSString *)sdkVersion;
+
+/**
+Cleans up resources held by `STDSTransaction`. Call this when the transaction is completed, if `doChallengeWithChallengeParameters:challengeStatusReceiver:timeout` is not called.
+
+ @note Don't use this object after calling this method. Calling `doChallengeWithViewController:challengeParameters:challengeStatusReceiver:timeout` after calling this method will throw an `STDSSDKRuntimeException`
+ */
+- (void)close;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSUICustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSUICustomization.h
new file mode 100644
index 0000000000..651b22f170
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSUICustomization.h
@@ -0,0 +1,109 @@
+//
+// STDSUICustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+#import "STDSCustomization.h"
+#import "STDSButtonCustomization.h"
+#import "STDSNavigationBarCustomization.h"
+#import "STDSLabelCustomization.h"
+#import "STDSTextFieldCustomization.h"
+#import "STDSFooterCustomization.h"
+#import "STDSSelectionCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The `STDSUICustomization` provides configuration for UI elements.
+
+ It's important to configure this object appropriately before using it to initialize a
+ `STDSThreeDS2Service` object. `STDSThreeDS2Service` makes a copy of the customization
+ settings you provide; it ignores any subsequent changes you make to your `STDSUICustomization` instance.
+*/
+@interface STDSUICustomization: NSObject
+
+/// The default settings. See individual properties for their default values.
++ (instancetype)defaultSettings;
+
+/**
+ Provides custom settings for the UINavigationBar of all UIViewControllers the SDK display.
+ The default is `[STDSNavigationBarCustomization defaultSettings]`.
+ */
+@property (nonatomic) STDSNavigationBarCustomization *navigationBarCustomization;
+
+/**
+ Provides custom settings for labels.
+ The default is `[STDSLabelCustomization defaultSettings]`.
+ */
+@property (nonatomic) STDSLabelCustomization *labelCustomization;
+
+/**
+ Provides custom settings for text fields.
+ The default is `[STDSTextFieldCustomization defaultSettings]`.
+ */
+@property (nonatomic) STDSTextFieldCustomization *textFieldCustomization;
+
+/**
+ The primary background color of all UIViewControllers the SDK display.
+ Defaults to white.
+ */
+@property (nonatomic) UIColor *backgroundColor;
+
+/**
+ The Challenge view displays a footer with additional details. This controls the background color of that view.
+ Defaults to gray.
+ */
+@property (nonatomic) STDSFooterCustomization *footerCustomization;
+
+/**
+ Sets a given button customization for the specified type.
+
+ @param buttonCustomization The buttom customization to use.
+ @param buttonType The type of button to use the customization for.
+ */
+- (void)setButtonCustomization:(STDSButtonCustomization *)buttonCustomization forType:(STDSUICustomizationButtonType)buttonType;
+
+/**
+ Retrieves a button customization object for the given button type.
+
+ @param buttonType The button type to retrieve a customization object for.
+ @return A button customization object, or the default if none was set.
+ @see STDSButtonCustomization
+ */
+- (STDSButtonCustomization *)buttonCustomizationForButtonType:(STDSUICustomizationButtonType)buttonType;
+
+/**
+ Provides custom settings for radio buttons and checkboxes.
+ The default is `[STDSSelectionCustomization defaultSettings]`.
+ */
+@property (nonatomic) STDSSelectionCustomization *selectionCustomization;
+
+
+/**
+ The preferred status bar style for all UIViewControllers the SDK display.
+ Defaults to UIStatusBarStyleDefault.
+ */
+@property (nonatomic) UIStatusBarStyle preferredStatusBarStyle;
+
+#pragma mark - Progress View
+
+/**
+ The style of UIActivityIndicatorViews displayed.
+ This should contrast with `backgroundColor`. Defaults to regular on iOS 13+,
+ gray on iOS 10-12.
+ */
+@property (nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle;
+
+/**
+ The style of the UIBlurEffect displayed underneath the UIActivityIndicatorView.
+ Defaults to UIBlurEffectStyleDefault.
+ */
+@property (nonatomic) UIBlurEffectStyle blurStyle;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSWarning.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSWarning.h
new file mode 100644
index 0000000000..5f09fe70a8
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/STDSWarning.h
@@ -0,0 +1,69 @@
+//
+// STDSWarning.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 2/12/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The `STDSWarningSeverity` enum defines the severity levels of warnings generated
+ during SDK initialization. @see STDSThreeDS2Service
+ */
+typedef NS_ENUM(NSInteger, STDSWarningSeverity) {
+ /**
+ Low severity
+ */
+ STDSWarningSeverityLow = 0,
+
+ /**
+ Medium severity
+ */
+ STDSWarningSeverityMedium,
+
+ /**
+ High severity
+ */
+ STDSWarningSeverityHigh,
+};
+
+/**
+ The `STDSWarning` class represents warnings generated by `STDSThreeDS2Service` during
+ security checks run during initialization. @see STDSThreeDS2Service
+ */
+@interface STDSWarning : NSObject
+
+/**
+ Designated initializer for `STDSWarning`.
+ */
+- (instancetype)initWithIdentifier:(NSString *)identifier
+ message:(NSString *)message
+ severity:(STDSWarningSeverity)severity NS_DESIGNATED_INITIALIZER;
+
+/**
+ `STDSWarning` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ The identifier for this warning instance.
+ */
+@property (nonatomic, readonly) NSString *identifier;
+
+/**
+ The descriptive message for this warning.
+ */
+@property (nonatomic, readonly) NSString *message;
+
+/**
+ The severity of this warning.
+ */
+@property (nonatomic, readonly) STDSWarningSeverity severity;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/Stripe3DS2-Prefix.pch b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/Stripe3DS2-Prefix.pch
new file mode 100644
index 0000000000..888096ff59
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/Stripe3DS2-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Stripe3DS2-Prefix.pch
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 4/16/20.
+// Copyright © 2020 Stripe. All rights reserved.
+//
+
+#ifndef Stripe3DS2_pch
+#define Stripe3DS2_pch
+
+#import "STDSLocalizedString.h"
+
+#endif /* Stripe3DS2_pch */
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/Stripe3DS2.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/Stripe3DS2.h
new file mode 100644
index 0000000000..9e9f3eba40
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Headers/Stripe3DS2.h
@@ -0,0 +1,52 @@
+//
+// Stripe3DS2.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/16/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+//! Project version number for Stripe3DS2.
+FOUNDATION_EXPORT double Stripe3DS2VersionNumber;
+
+//! Project version string for Stripe3DS2.
+FOUNDATION_EXPORT const unsigned char Stripe3DS2VersionString[];
+
+#import "STDSConfigParameters.h"
+#import "STDSThreeDS2Service.h"
+#import "STDSUICustomization.h"
+#import "STDSWarning.h"
+
+#import "STDSAlreadyInitializedException.h"
+#import "STDSInvalidInputException.h"
+#import "STDSNotInitializedException.h"
+#import "STDSRuntimeException.h"
+
+#import "STDSErrorMessage.h"
+#import "STDSProtocolErrorEvent.h"
+#import "STDSRuntimeErrorEvent.h"
+#import "STDSStripe3DS2Error.h"
+#import "STDSThreeDSProtocolVersion.h"
+
+#import "STDSAuthenticationRequestParameters.h"
+#import "STDSAuthenticationResponse.h"
+#import "STDSChallengeParameters.h"
+#import "STDSChallengeStatusReceiver.h"
+#import "STDSCompletionEvent.h"
+#import "STDSJSONDecodable.h"
+#import "STDSJSONEncoder.h"
+#import "STDSTransaction.h"
+
+#import "STDSButtonCustomization.h"
+#import "STDSCustomization.h"
+#import "STDSException.h"
+#import "STDSFooterCustomization.h"
+#import "STDSJSONEncodable.h"
+#import "STDSLabelCustomization.h"
+#import "STDSNavigationBarCustomization.h"
+#import "STDSSelectionCustomization.h"
+#import "STDSTextFieldCustomization.h"
+
+#import "STDSSwiftTryCatch.h"
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Info.plist b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Info.plist
new file mode 100644
index 0000000000..3b42badb2f
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Info.plist differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Modules/module.modulemap b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Modules/module.modulemap
new file mode 100644
index 0000000000..7770928524
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module Stripe3DS2 {
+ umbrella header "Stripe3DS2.h"
+
+ export *
+ module * { export * }
+}
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Stripe3DS2 b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Stripe3DS2
new file mode 100755
index 0000000000..44efb6918c
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/Stripe3DS2 differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/_CodeSignature/CodeResources b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/_CodeSignature/CodeResources
new file mode 100644
index 0000000000..d856255767
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/_CodeSignature/CodeResources
@@ -0,0 +1,1003 @@
+
+
+
+
+ files
+
+ Assets.car
+
+ K4ddGkUJlXGtYXl7QG4DaCiQKwg=
+
+ Headers/STDSAlreadyInitializedException.h
+
+ KFb71y1hI4w1R3xDhuELOgcQr5s=
+
+ Headers/STDSAuthenticationRequestParameters.h
+
+ 8EKDN3mKXlm2pwHA3AmIZTQK+oU=
+
+ Headers/STDSAuthenticationResponse.h
+
+ ezsikPYNZFfdB0NHtCGDS6rrIcw=
+
+ Headers/STDSButtonCustomization.h
+
+ chFDzTIM6k9WTvDQRwi0QEnj/wI=
+
+ Headers/STDSChallengeParameters.h
+
+ tLbEKNXogKOF9j8rN37cQHyRCEo=
+
+ Headers/STDSChallengeStatusReceiver.h
+
+ 0io1Utb3IhPZvZzD8T2qOcUYp1g=
+
+ Headers/STDSCompletionEvent.h
+
+ U23BAc2xWhlC6YG5C63TVqmgRuI=
+
+ Headers/STDSConfigParameters.h
+
+ /KjQHYmVVJw+c8wauJdRn8PiVRc=
+
+ Headers/STDSCustomization.h
+
+ Ds7oUp+eFhlA8sIdXojACidPH4E=
+
+ Headers/STDSErrorMessage.h
+
+ h2neasX3A2gXDIv3nHmaTX/70cI=
+
+ Headers/STDSException.h
+
+ iL8FZLDaXYN+sS1fh54AEHueKFE=
+
+ Headers/STDSFooterCustomization.h
+
+ TG9KXPLtIIWQJ2tWUJBYXd/iupY=
+
+ Headers/STDSInvalidInputException.h
+
+ 5vwUeCFM5OHVhOwDmQ1T8mtYF/s=
+
+ Headers/STDSJSONDecodable.h
+
+ S8h4WRkJKhzqWLG70dHDqc4iOIM=
+
+ Headers/STDSJSONEncodable.h
+
+ iX8ahv9WlRO7rZvb77XQoBCz5xI=
+
+ Headers/STDSJSONEncoder.h
+
+ y5iLiVTGEGMFxpVU4K10YV++4VU=
+
+ Headers/STDSLabelCustomization.h
+
+ 5g1jJ0dk+M69QKYesSdDfzL/VnM=
+
+ Headers/STDSNavigationBarCustomization.h
+
+ NHI+fpX5+j15h5b73L5jupMSP0U=
+
+ Headers/STDSNotInitializedException.h
+
+ 85uczJCE3eRVQIMSD/ffMqYf2Ps=
+
+ Headers/STDSProtocolErrorEvent.h
+
+ bkUKK0rql/OWkuogrJIcDvDEJNM=
+
+ Headers/STDSRuntimeErrorEvent.h
+
+ fr5us8V+D8u8rs5Lu2zDUD7rkMI=
+
+ Headers/STDSRuntimeException.h
+
+ J6UNRQhRKMHAPUk9jiRtYChMHFQ=
+
+ Headers/STDSSelectionCustomization.h
+
+ fAEZSzVsoe1ip2DfzPQa1nySW70=
+
+ Headers/STDSStripe3DS2Error.h
+
+ f/v/+vT1+86AcyarYXzHafU0JpI=
+
+ Headers/STDSSwiftTryCatch.h
+
+ DBK2VZ6hn5/p48dHx/qMvhYo3dA=
+
+ Headers/STDSTextFieldCustomization.h
+
+ aYzQAfJLTWTZ3xcuA86zta2fKAw=
+
+ Headers/STDSThreeDS2Service.h
+
+ GX/yIi9v61s5ZPUw7sFK7yncoKU=
+
+ Headers/STDSThreeDSProtocolVersion.h
+
+ DO4BkY5YmzLwiu94D53onNLg7kY=
+
+ Headers/STDSTransaction.h
+
+ EoymuudX5e6/DCYR37orEwzMsPQ=
+
+ Headers/STDSUICustomization.h
+
+ OHJm7RtIca90bOuxB+3CmYWuhZI=
+
+ Headers/STDSWarning.h
+
+ UJBXLABnJS1Ihj/JAnQegK125SM=
+
+ Headers/Stripe3DS2-Prefix.pch
+
+ hngwCb2HwjQ1hkVOivIMr5mUQn0=
+
+ Headers/Stripe3DS2.h
+
+ uPM3wsEA5JxH+2A5C9C2hkmiJf8=
+
+ Info.plist
+
+ 3Jlj/4u0RT/7gQPcup7YEoqhSKw=
+
+ Modules/module.modulemap
+
+ nj6HQsvH8/WK5v/3KyQshReMNhg=
+
+ amex.der
+
+ snCYjO7JNBJQKkWyMlCA24k7eug=
+
+ da.lproj/Localizable.strings
+
+ hash
+
+ PiyoO9PDSXSDAwcLbykxQTi3s6g=
+
+ optional
+
+
+ de.lproj/Localizable.strings
+
+ hash
+
+ shY1Ga9aoUrcV8bDiDfZ2A+Sx5A=
+
+ optional
+
+
+ discover.der
+
+ mtG1XxZunvggdgCwFOBv7DD7f/I=
+
+ ec_test.der
+
+ 8s8wt8N7EVfE8bg9XklcGBcWkL4=
+
+ en-GB.lproj/Localizable.strings
+
+ hash
+
+ kUFl6HG0jxpEA/Cjyp0Q22hjoBY=
+
+ optional
+
+
+ en.lproj/Localizable.strings
+
+ hash
+
+ NB6JTH0Z9bfgxuOHguVrUY9Ngzk=
+
+ optional
+
+
+ es-419.lproj/Localizable.strings
+
+ hash
+
+ btRVd4/cJ8Om1essCg60ZRrtFCE=
+
+ optional
+
+
+ es.lproj/Localizable.strings
+
+ hash
+
+ 8aCCiyQsGG/9jSPul31yOK6/6ds=
+
+ optional
+
+
+ fi.lproj/Localizable.strings
+
+ hash
+
+ WSqKa0zhnaHO1Iz90kQcdVrqVs8=
+
+ optional
+
+
+ fr-CA.lproj/Localizable.strings
+
+ hash
+
+ Z4ahYl69zTB1BMz1j1yoSbaEpVk=
+
+ optional
+
+
+ fr.lproj/Localizable.strings
+
+ hash
+
+ qoQPmSCx6ZnCyTI3b91Vjz/40UY=
+
+ optional
+
+
+ hu.lproj/Localizable.strings
+
+ hash
+
+ VgN/eSF1owBzG1PEyGx0JX8lX4I=
+
+ optional
+
+
+ it.lproj/Localizable.strings
+
+ hash
+
+ 4kpv10yLpplSV5hLfLhcMTmxMTo=
+
+ optional
+
+
+ ja.lproj/Localizable.strings
+
+ hash
+
+ Tzit496+7v6blA6GoV2Euro2LeY=
+
+ optional
+
+
+ ko.lproj/Localizable.strings
+
+ hash
+
+ 7L4FV8eCPEVx4Vez+YcutGUX/T4=
+
+ optional
+
+
+ mastercard.der
+
+ 6QqEKleaktL0+NBwJRdmBAxK8gY=
+
+ mt.lproj/Localizable.strings
+
+ hash
+
+ RMmNqMm6jPWOwX78cxKN4RCqvho=
+
+ optional
+
+
+ nb.lproj/Localizable.strings
+
+ hash
+
+ 5k5pjFmmCyJtT2uET8AdNdVMpss=
+
+ optional
+
+
+ nl.lproj/Localizable.strings
+
+ hash
+
+ mWW/HJgb03/CZ2D4vInJJa/kMO8=
+
+ optional
+
+
+ nn-NO.lproj/Localizable.strings
+
+ hash
+
+ BqBeLtV8ATgKQgQlXTklrXh9dVg=
+
+ optional
+
+
+ pt-BR.lproj/Localizable.strings
+
+ hash
+
+ 7dfqKlaJO6DsNszkyFM03R33V80=
+
+ optional
+
+
+ pt-PT.lproj/Localizable.strings
+
+ hash
+
+ ono1MuCgYCi64hNyjhzcrT93PFk=
+
+ optional
+
+
+ ru.lproj/Localizable.strings
+
+ hash
+
+ XaiYB2RQmzB7Qq/462z1ztVu+Xs=
+
+ optional
+
+
+ sv.lproj/Localizable.strings
+
+ hash
+
+ b4esqOwElsQVtyQNkhcwnLTRfbU=
+
+ optional
+
+
+ tr.lproj/Localizable.strings
+
+ hash
+
+ 7L/cEAt/RlBi7hrNgWGLxc1vdX4=
+
+ optional
+
+
+ ul-test.der
+
+ 1EWoI2W7Bx/yv6rw5Zqa5OPPgkk=
+
+ visa.der
+
+ cIAUXvXkElHLQ1L0+fmxo+SGZps=
+
+ zh-HK.lproj/Localizable.strings
+
+ hash
+
+ qD/sxx9Meqp6dK9rLaDyvBal4+s=
+
+ optional
+
+
+ zh-Hans.lproj/Localizable.strings
+
+ hash
+
+ pZcwXmsNJgrXs3tVLZLDQ7sHXkE=
+
+ optional
+
+
+ zh-Hant.lproj/Localizable.strings
+
+ hash
+
+ kzE22UeMNM4ySQbm60goy5kxTNs=
+
+ optional
+
+
+
+ files2
+
+ Assets.car
+
+ hash2
+
+ ZMvtm4jFdazqdWhtomsWRR7yBUpSRy2Ew6NdezDUZ0A=
+
+
+ Headers/STDSAlreadyInitializedException.h
+
+ hash2
+
+ LnTjgl00L+nkczuj6z+pQv9uVDryqut42BEtQ/seK2k=
+
+
+ Headers/STDSAuthenticationRequestParameters.h
+
+ hash2
+
+ EERv5Be2WB14RQNKmOWUT8vq63hL3XNVYmVvyHXEzzE=
+
+
+ Headers/STDSAuthenticationResponse.h
+
+ hash2
+
+ L6ekIVfl21LWODjTzrem/BU2OThaF4ft8mtqEklEqsc=
+
+
+ Headers/STDSButtonCustomization.h
+
+ hash2
+
+ j2VVI4o8iGD3F8twP+vJWBQXzQcxtbo0vtAaWwB1p3o=
+
+
+ Headers/STDSChallengeParameters.h
+
+ hash2
+
+ RrQAI5p0R2gml549t72BZMfLcFedGI2mv32Z5uBHh1I=
+
+
+ Headers/STDSChallengeStatusReceiver.h
+
+ hash2
+
+ UPX0mlhugi2IZAzhc7Fn7OzOlZT8R+XfCNlFtuOMLdQ=
+
+
+ Headers/STDSCompletionEvent.h
+
+ hash2
+
+ l7fWoCeTfWaQp3RWwUHtAGviDx9HSVQSJpw04ocAKEI=
+
+
+ Headers/STDSConfigParameters.h
+
+ hash2
+
+ peyc7jFonxP+P/EZZzlj4HI+jWJRfJiZB9EnoJOroUo=
+
+
+ Headers/STDSCustomization.h
+
+ hash2
+
+ wOzGgJL0tGprZkD31yH5wOQ5kQVvWhwRe95BnnpY6hA=
+
+
+ Headers/STDSErrorMessage.h
+
+ hash2
+
+ k/5EDekPZsIXDiQ8ksasl5RdjXJ0K5Vbho6Kyvooiz0=
+
+
+ Headers/STDSException.h
+
+ hash2
+
+ 0So0+UPkBbE4YjdUTEd3JwDj3sk1MTzn9WUZHaAxOEI=
+
+
+ Headers/STDSFooterCustomization.h
+
+ hash2
+
+ c9SavQivzkHIvIb/waPjlOzmk2FpE4GdRmn1dPpLgBw=
+
+
+ Headers/STDSInvalidInputException.h
+
+ hash2
+
+ n2sJ7y8deli2eVXsw3SyCij5x80t8ICrZacexmlG7cQ=
+
+
+ Headers/STDSJSONDecodable.h
+
+ hash2
+
+ odNtMkxzF8JkpR/0ap3aT86Bpk00Bchco1fy9OM2bYg=
+
+
+ Headers/STDSJSONEncodable.h
+
+ hash2
+
+ 4zc8EWmatHx+hlCXHMuW4Wm5IfAM3agewD3n9449938=
+
+
+ Headers/STDSJSONEncoder.h
+
+ hash2
+
+ venzZUvKKRDh/POXihjNcHi1bu441fgBUIMF/FnkcZU=
+
+
+ Headers/STDSLabelCustomization.h
+
+ hash2
+
+ x03noEfNJ4HCMzNF0PsCmmWR+t+sCVMhrLYx6aXOy10=
+
+
+ Headers/STDSNavigationBarCustomization.h
+
+ hash2
+
+ eUjdHILvFoE41/Nx5FA1LlJOFjF0xrOhXsJl9gOpSUc=
+
+
+ Headers/STDSNotInitializedException.h
+
+ hash2
+
+ QNfsydffqMnxp+f9dGX71KslKATLbPPipLmc//1R/Ss=
+
+
+ Headers/STDSProtocolErrorEvent.h
+
+ hash2
+
+ ZxJwUog0UYVqXCvuubkxuCwLmnMSP8BKG6akUy9lALc=
+
+
+ Headers/STDSRuntimeErrorEvent.h
+
+ hash2
+
+ 29ahc1s0wfgPZBrmMk5dbxiOe38CiKQTWoCWy/KcRl8=
+
+
+ Headers/STDSRuntimeException.h
+
+ hash2
+
+ AThN7K/9V9KjbhpTJdleRxti0gXNJCaqcsHPs2J5KfA=
+
+
+ Headers/STDSSelectionCustomization.h
+
+ hash2
+
+ jMn7PULZ4b3kbhCp9+UK8AVBtbZ8sGM1XlL6yfOP9/Y=
+
+
+ Headers/STDSStripe3DS2Error.h
+
+ hash2
+
+ oU9WLPdFz8ZCabQZiqxSPVBSyxxnCqQphMWY8nQJj+4=
+
+
+ Headers/STDSSwiftTryCatch.h
+
+ hash2
+
+ nlk8KPcafh0wYs4sc7zhfHnNlobxfAU25R07LWKB4Lg=
+
+
+ Headers/STDSTextFieldCustomization.h
+
+ hash2
+
+ /u4CTleR71rYIu3lVIRnzNSmareZ9s6Ehz1gPh91Ic8=
+
+
+ Headers/STDSThreeDS2Service.h
+
+ hash2
+
+ dGDum2PqbuZ0sUTjBnVYNBBAjhu64SUvPytKeTdo5K4=
+
+
+ Headers/STDSThreeDSProtocolVersion.h
+
+ hash2
+
+ HA9L+QuT0THnJ3cdBiViveK1LTWR/OL8ZrxixgCvjfc=
+
+
+ Headers/STDSTransaction.h
+
+ hash2
+
+ W268IWyRjD40pPzNSyq0qwXdJCPLfCOjPB4pIqFzybk=
+
+
+ Headers/STDSUICustomization.h
+
+ hash2
+
+ xIKZrekuaSjFdzSuOPlBVptJh0pqHg6lSj8QcSuGRyQ=
+
+
+ Headers/STDSWarning.h
+
+ hash2
+
+ OoAjwT0USJ+zm9BWAftf9xRMnvZx9Hl3tSVZEsC5gn4=
+
+
+ Headers/Stripe3DS2-Prefix.pch
+
+ hash2
+
+ uS6K6gmWuwdnzKD9N0F0SB4GK+VSSDq7kKliKRLCRsI=
+
+
+ Headers/Stripe3DS2.h
+
+ hash2
+
+ Ye/nqG5YQEKe3z27lGW7hxb/cs1xRdk01+Ae8lZG9QA=
+
+
+ Modules/module.modulemap
+
+ hash2
+
+ k2OxvME22TD4va/hicMSI+P3jwtV31nQXTI83ktpCSc=
+
+
+ amex.der
+
+ hash2
+
+ NCdEoR4qX8+jU/9n2UrGR1Qig9nt5YCYbGnqJ1YpTLk=
+
+
+ da.lproj/Localizable.strings
+
+ hash2
+
+ qyZDkvaWgICXl2Mu+0gbpkWxbEcBWSmPgx5C4bLPAOk=
+
+ optional
+
+
+ de.lproj/Localizable.strings
+
+ hash2
+
+ Xt2J95YXtbIxeomk26OxDk8xQObERtIzL+zXetuck2s=
+
+ optional
+
+
+ discover.der
+
+ hash2
+
+ 4nn4l1pT+G9RaE4XQSdTDFZvZGdIM3dOEDG6qIJofUA=
+
+
+ ec_test.der
+
+ hash2
+
+ Zh/1Qh8otkIB55J3H8D0LXRSugBhUpbR4XtBNCQ6BE4=
+
+
+ en-GB.lproj/Localizable.strings
+
+ hash2
+
+ tUCoRd4nS7NyCOYohPpAXhs+UWLx6W0UbpYPRKF3gMY=
+
+ optional
+
+
+ en.lproj/Localizable.strings
+
+ hash2
+
+ 27aQZTjUYaDFueFper9CNl3sQ7KEOLUmiLZqrnCeELQ=
+
+ optional
+
+
+ es-419.lproj/Localizable.strings
+
+ hash2
+
+ 4+Uv1Ru5/bfGWhdD7aXpbZN5RrVO6ZwAmNIWeOV4HOA=
+
+ optional
+
+
+ es.lproj/Localizable.strings
+
+ hash2
+
+ BlrmfUt6r0Q5fjGcAutXBD4+Wx0Kef66Cs7LeYXL+no=
+
+ optional
+
+
+ fi.lproj/Localizable.strings
+
+ hash2
+
+ cA33pzoa/4kUJSSvX8JzBAD++y53whTx84qhTXQTlfw=
+
+ optional
+
+
+ fr-CA.lproj/Localizable.strings
+
+ hash2
+
+ Py5wRNxX/HfLQK0ftXzKebfKqyqzdKumeTGtny6A44A=
+
+ optional
+
+
+ fr.lproj/Localizable.strings
+
+ hash2
+
+ 7Y8PKxKRt2sxZxRN5WvNjm4Xga98hQ9jmSzPbk3ux88=
+
+ optional
+
+
+ hu.lproj/Localizable.strings
+
+ hash2
+
+ 1ilqSSe5dDWI570QhlCTy2WwYddbnmc8czd7wpiDk8w=
+
+ optional
+
+
+ it.lproj/Localizable.strings
+
+ hash2
+
+ RyxP6Xai47GCO0wpvKWti+jD0acP9gvE9xjQjHRUzpM=
+
+ optional
+
+
+ ja.lproj/Localizable.strings
+
+ hash2
+
+ 6uI8GbjQkL9WTAdnB/FR4vjwfIAn506Qjqof5PSdRt4=
+
+ optional
+
+
+ ko.lproj/Localizable.strings
+
+ hash2
+
+ +7fFDjer4DEy/0lRvvD3QCtUKsFBM9IiWtwU8AWy484=
+
+ optional
+
+
+ mastercard.der
+
+ hash2
+
+ E5nZdBQA7MOlJ4biYm1610cIexUboNPdGxAffXrw+Lw=
+
+
+ mt.lproj/Localizable.strings
+
+ hash2
+
+ rJFSjAolrM07AgL2i4FJ8KUeaj2R5z9Ogx2nJJyKBJo=
+
+ optional
+
+
+ nb.lproj/Localizable.strings
+
+ hash2
+
+ 66w9rsc7b/jeM8TuFR25xFAJi5azcZ5jaTSqGKztYjk=
+
+ optional
+
+
+ nl.lproj/Localizable.strings
+
+ hash2
+
+ 8wkpd0kH47bErz5dyIwRvAky+vRzr84r37x4x1lVL4s=
+
+ optional
+
+
+ nn-NO.lproj/Localizable.strings
+
+ hash2
+
+ TVX4uGpa/Yu0CrLChqf1F9iwWg/GedWrXOMApo/pAtE=
+
+ optional
+
+
+ pt-BR.lproj/Localizable.strings
+
+ hash2
+
+ bkCN+x42qKE/Q7SDNG2x3HPYtHs5pRdqgXLUYXNpCkI=
+
+ optional
+
+
+ pt-PT.lproj/Localizable.strings
+
+ hash2
+
+ rEvkLFGucwCcunCDuih1+GsnZpvFjpn+uU2PPRr88FI=
+
+ optional
+
+
+ ru.lproj/Localizable.strings
+
+ hash2
+
+ 7Ws4v3UdtvFPaBcCUIfhlSCQtOvqZtbpkYWZlN4BvQU=
+
+ optional
+
+
+ sv.lproj/Localizable.strings
+
+ hash2
+
+ rCRYC8hwonm5IvCGDh07reIXoPVt6dsd/ajlwh1k+B8=
+
+ optional
+
+
+ tr.lproj/Localizable.strings
+
+ hash2
+
+ iqLom2NpJjvmlswYStHb3j3VzLxw8WPT+2DCBUFiMAg=
+
+ optional
+
+
+ ul-test.der
+
+ hash2
+
+ ym0CPu2VIwYjDK3FHgE1y1xJG8wRaMM1/gD85b0Y8yU=
+
+
+ visa.der
+
+ hash2
+
+ lkOAq2XG0NwIMcVOGHKM+JdnPyJRxAhQ01if+ubR03s=
+
+
+ zh-HK.lproj/Localizable.strings
+
+ hash2
+
+ MjlqF0maqYTdPZbia5aPWp5re1V4U6IXlU9RRldGArI=
+
+ optional
+
+
+ zh-Hans.lproj/Localizable.strings
+
+ hash2
+
+ SqyHevjJK0YndrivRl+RW3EJBZZ6nlrRcBLNaB4xL4U=
+
+ optional
+
+
+ zh-Hant.lproj/Localizable.strings
+
+ hash2
+
+ y6pGC8+eBGAzJY3KqpZRmREw3vkqdXR81OvvI2n/bdc=
+
+ optional
+
+
+
+ rules
+
+ ^.*
+
+ ^.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^.*
+
+ ^.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Base\.lproj/
+
+ weight
+ 1010
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/amex.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/amex.der
new file mode 100644
index 0000000000..61a1cfd1f0
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/amex.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/da.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/da.lproj/Localizable.strings
new file mode 100644
index 0000000000..5ec99f659f
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/da.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/de.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/de.lproj/Localizable.strings
new file mode 100644
index 0000000000..4a7102c290
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/de.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/discover.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/discover.der
new file mode 100644
index 0000000000..5b17935a35
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/discover.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ec_test.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ec_test.der
new file mode 100644
index 0000000000..06587c44c3
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ec_test.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/en-GB.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/en-GB.lproj/Localizable.strings
new file mode 100644
index 0000000000..f3dd661b06
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/en-GB.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/en.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/en.lproj/Localizable.strings
new file mode 100644
index 0000000000..2440abd600
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/en.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/es-419.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/es-419.lproj/Localizable.strings
new file mode 100644
index 0000000000..415dd67a13
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/es-419.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/es.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/es.lproj/Localizable.strings
new file mode 100644
index 0000000000..361e4c382e
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/es.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/fi.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/fi.lproj/Localizable.strings
new file mode 100644
index 0000000000..69e9adf5e5
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/fi.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/fr-CA.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/fr-CA.lproj/Localizable.strings
new file mode 100644
index 0000000000..9d0943f90d
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/fr-CA.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/fr.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/fr.lproj/Localizable.strings
new file mode 100644
index 0000000000..85e6a6a49c
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/fr.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/hu.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/hu.lproj/Localizable.strings
new file mode 100644
index 0000000000..83c4802687
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/hu.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/it.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/it.lproj/Localizable.strings
new file mode 100644
index 0000000000..a513ed333c
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/it.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ja.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ja.lproj/Localizable.strings
new file mode 100644
index 0000000000..b63f7e5bf8
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ja.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ko.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ko.lproj/Localizable.strings
new file mode 100644
index 0000000000..d984c0bbbd
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ko.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/mastercard.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/mastercard.der
new file mode 100644
index 0000000000..6e136e1331
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/mastercard.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/mt.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/mt.lproj/Localizable.strings
new file mode 100644
index 0000000000..23cbe6a691
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/mt.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/nb.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/nb.lproj/Localizable.strings
new file mode 100644
index 0000000000..8bbcf6499b
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/nb.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/nl.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/nl.lproj/Localizable.strings
new file mode 100644
index 0000000000..b3d20eeaf2
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/nl.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/nn-NO.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/nn-NO.lproj/Localizable.strings
new file mode 100644
index 0000000000..e676f72eda
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/nn-NO.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/pt-BR.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/pt-BR.lproj/Localizable.strings
new file mode 100644
index 0000000000..28945ef8ad
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/pt-BR.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/pt-PT.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/pt-PT.lproj/Localizable.strings
new file mode 100644
index 0000000000..1565f5ba60
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/pt-PT.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ru.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ru.lproj/Localizable.strings
new file mode 100644
index 0000000000..e66e7d76f4
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ru.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/sv.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/sv.lproj/Localizable.strings
new file mode 100644
index 0000000000..b3993c5f1e
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/sv.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/tr.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/tr.lproj/Localizable.strings
new file mode 100644
index 0000000000..c5af6aee58
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/tr.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ul-test.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ul-test.der
new file mode 100644
index 0000000000..11e5f29b3b
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/ul-test.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/visa.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/visa.der
new file mode 100644
index 0000000000..a77735dfa6
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/visa.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/zh-HK.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/zh-HK.lproj/Localizable.strings
new file mode 100644
index 0000000000..393154ffa7
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/zh-HK.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/zh-Hans.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/zh-Hans.lproj/Localizable.strings
new file mode 100644
index 0000000000..9d046f8d31
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/zh-Hans.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/zh-Hant.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/zh-Hant.lproj/Localizable.strings
new file mode 100644
index 0000000000..b5183ce460
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/Stripe3DS2.framework/zh-Hant.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Headers b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Headers
new file mode 120000
index 0000000000..a177d2a6b9
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Headers
@@ -0,0 +1 @@
+Versions/Current/Headers
\ No newline at end of file
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Modules b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Modules
new file mode 120000
index 0000000000..5736f3186e
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Modules
@@ -0,0 +1 @@
+Versions/Current/Modules
\ No newline at end of file
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Resources b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Resources
new file mode 120000
index 0000000000..953ee36f3b
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Resources
@@ -0,0 +1 @@
+Versions/Current/Resources
\ No newline at end of file
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Stripe3DS2 b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Stripe3DS2
new file mode 120000
index 0000000000..c2d9382fb6
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Stripe3DS2
@@ -0,0 +1 @@
+Versions/Current/Stripe3DS2
\ No newline at end of file
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSAlreadyInitializedException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSAlreadyInitializedException.h
new file mode 100644
index 0000000000..c39a85d8cb
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSAlreadyInitializedException.h
@@ -0,0 +1,22 @@
+//
+// STDSAlreadyInitializedException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSException.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSAlreadyInitializedException` represents an exception that will be thrown in the `STDSThreeDS2Service` instance has already been initialized.
+
+ @see STDSThreeDS2Service
+ */
+@interface STDSAlreadyInitializedException : STDSException
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSAuthenticationRequestParameters.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSAuthenticationRequestParameters.h
new file mode 100644
index 0000000000..766e48578c
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSAuthenticationRequestParameters.h
@@ -0,0 +1,68 @@
+//
+// STDSAuthenticationRequestParameters.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/21/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSJSONEncodable.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface STDSAuthenticationRequestParameters : NSObject
+
+/**
+ Designated initializer for `STDSAuthenticationRequestParameters`.
+
+ @param sdkTransactionIdentifier The SDK Transaction Identifier, as created by `[STDSTransaction createTransaction]`
+ @param deviceData Optional device data collected by the SDK.
+ @param sdkEphemeralPublicKey The SDK ephemeral public key.
+ @param sdkAppIdentifier The SDK app identifier.
+ @param sdkReferenceNumber The SDK reference number.
+ @param messageVersion The protocol version that is supported by the SDK and used for the transaction.
+
+ @exception InvalidInputException Thrown if an input parameter is invalid. @see InvalidInputException
+ */
+- (instancetype)initWithSDKTransactionIdentifier:(NSString *)sdkTransactionIdentifier
+ deviceData:(nullable NSString *)deviceData
+ sdkEphemeralPublicKey:(NSString *)sdkEphemeralPublicKey
+ sdkAppIdentifier:(NSString *)sdkAppIdentifier
+ sdkReferenceNumber:(NSString *)sdkReferenceNumber
+ messageVersion:(NSString *)messageVersion;
+
+/**
+ The encrypted device data as a JWE string.
+ */
+@property (nonatomic, readonly, nullable) NSString *deviceData;
+
+/**
+ The SDK Transaction Identifier.
+ */
+@property (nonatomic, readonly) NSString *sdkTransactionIdentifier;
+
+/**
+ The SDK App Identifier.
+ */
+@property (nonatomic, readonly) NSString *sdkAppIdentifier;
+
+/**
+ The SDK reference number.
+ */
+@property (nonatomic, readonly) NSString *sdkReferenceNumber;
+
+/**
+ The SDK ephemeral public key.
+ */
+@property (nonatomic, readonly) NSString *sdkEphemeralPublicKey;
+
+/**
+ The protocol version that is used for the transaction.
+ */
+@property (nonatomic, readonly) NSString *messageVersion;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSAuthenticationResponse.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSAuthenticationResponse.h
new file mode 100644
index 0000000000..d527f38df9
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSAuthenticationResponse.h
@@ -0,0 +1,115 @@
+//
+// STDSAuthenticationResponse.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 2/13/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSJSONDecodable.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The `STDSACSStatusType` enum defines the status of a transaction, as detailed in
+ 3DS2 Spec Seq 3.33:
+ */
+typedef NS_ENUM(NSInteger, STDSACSStatusType) {
+ /// The status is unknown or invalid
+ STDSACSStatusTypeUnknown = 0,
+
+ /// Authenticated
+ STDSACSStatusTypeAuthenticated = 1,
+
+ /// Requires a Cardholder challenge to complete authentication
+ STDSACSStatusTypeChallengeRequired = 2,
+
+ /// Requires a Cardholder challenge using Decoupled Authentication
+ STDSACSStatusTypeDecoupledAuthentication = 3,
+
+ /// Not authenticated
+ STDSACSStatusTypeNotAuthenticated = 4,
+
+ /// Not authenticated, but a proof of authentication attempt (Authentication Value)
+ /// was generated
+ STDSACSStatusTypeProofGenerated = 5,
+
+ /// Not authenticated, as authentication could not be performed due to technical or
+ /// other issue
+ STDSACSStatusTypeError = 6,
+
+ /// Not authenticated because the Issuer is rejecting authentication and requesting
+ /// that authorisation not be attempted
+ STDSACSStatusTypeRejected = 7,
+
+ /// Authentication not requested by the 3DS Server for data sent for informational
+ /// purposes only
+ STDSACSStatusTypeInformationalOnly = 8,
+};
+
+/**
+ A native protocol representing the response sent by the 3DS Server.
+ Only parameters relevant to performing 3DS2 authentication in the mobile SDK are exposed.
+ */
+@protocol STDSAuthenticationResponse
+
+/// Universally unique transaction identifier assigned by the 3DS Server to identify a single transaction.
+@property (nonatomic, readonly) NSString *threeDSServerTransactionID;
+
+/// Transaction status
+@property (nonatomic, readonly) STDSACSStatusType status;
+
+/// Indication of whether a challenge is required.
+@property (nonatomic, readonly, getter=isChallengeRequired) BOOL challengeRequired;
+
+/// Indicates whether the ACS confirms utilisation of Decoupled Authentication and agrees to utilise Decoupled Authentication to authenticate the Cardholder.
+@property (nonatomic, readonly) BOOL willUseDecoupledAuthentication;
+
+/**
+ DS assigned ACS identifier.
+ Each DS can provide a unique ID to each ACS on an individual basis.
+ */
+@property (nonatomic, readonly, nullable) NSString *acsOperatorID;
+
+/// Unique identifier assigned by the EMVCo Secretariat upon Testing and Approval.
+@property (nonatomic, readonly, nullable) NSString *acsReferenceNumber;
+
+/// Contains the JWS object (represented as a string) created by the ACS for the ARes message.
+@property (nonatomic, readonly, nullable) NSString *acsSignedContent;
+
+/// Universally Unique transaction identifier assigned by the ACS to identify a single transaction.
+@property (nonatomic, readonly) NSString *acsTransactionID;
+
+/// Fully qualified URL of the ACS to be used for the challenge.
+@property (nonatomic, readonly, nullable) NSURL *acsURL;
+
+/**
+ Text provided by the ACS/Issuer to Cardholder during a Frictionless or Decoupled transaction. The Issuer can provide information to Cardholder.
+ For example, “Additional authentication is needed for this transaction, please contact (Issuer Name) at xxx-xxx-xxxx.”
+ */
+@property (nonatomic, readonly, nullable) NSString *cardholderInfo;
+
+/// EMVCo-assigned unique identifier to track approved DS.
+@property (nonatomic, readonly, nullable) NSString *directoryServerReferenceNumber;
+
+/// Universally unique transaction identifier assigned by the DS to identify a single transaction.
+@property (nonatomic, readonly, nullable) NSString *directoryServerTransactionID;
+
+/**
+ Protocol version identifier This shall be the Protocol Version Number of the specification utilised by the system creating this message.
+ The Message Version Number is set by the 3DS Server which originates the protocol with the AReq message.
+ The Message Version Number does not change during a 3DS transaction.
+ */
+@property (nonatomic, readonly) NSString *protocolVersion;
+
+/// Universally unique transaction identifier assigned by the 3DS SDK to identify a single transaction.
+@property (nonatomic, readonly) NSString *sdkTransactionID;
+
+@end
+
+/// A utility to parse an STDSAuthenticationResponse from JSON
+id _Nullable STDSAuthenticationResponseFromJSON(NSDictionary *json);
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSButtonCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSButtonCustomization.h
new file mode 100644
index 0000000000..dd63f9820a
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSButtonCustomization.h
@@ -0,0 +1,83 @@
+//
+// STDSButtonCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+#import
+#import
+
+#import "STDSCustomization.h"
+
+/// An enum that defines the different types of buttons that are able to be customized.
+typedef NS_ENUM(NSInteger, STDSUICustomizationButtonType) {
+
+ /// The submit button type.
+ STDSUICustomizationButtonTypeSubmit = 0,
+
+ /// The continue button type.
+ STDSUICustomizationButtonTypeContinue = 1,
+
+ /// The next button type.
+ STDSUICustomizationButtonTypeNext = 2,
+
+ /// The cancel button type.
+ STDSUICustomizationButtonTypeCancel = 3,
+
+ /// The resend button type.
+ STDSUICustomizationButtonTypeResend = 4,
+};
+
+/// An enumeration of the case transformations that can be applied to the button's title
+typedef NS_ENUM(NSInteger, STDSButtonTitleStyle) {
+ /// Default style, doesn't modify the title
+ STDSButtonTitleStyleDefault,
+
+ /// Applies localizedUppercaseString to the title
+ STDSButtonTitleStyleUppercase,
+
+ /// Applies localizedLowercaseString to the title
+ STDSButtonTitleStyleLowercase,
+
+ /// Applies localizedCapitalizedString to the title
+ STDSButtonTitleStyleSentenceCapitalized,
+};
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// A customization object to use to configure the UI of a button.
+@interface STDSButtonCustomization: STDSCustomization
+
+/// The default settings for the provided button type.
++ (instancetype)defaultSettingsForButtonType:(STDSUICustomizationButtonType)type;
+
+/**
+ Initializes an instance of STDSButtonCustomization with the given backgroundColor and colorRadius.
+ */
+- (instancetype)initWithBackgroundColor:(UIColor *)backgroundColor cornerRadius:(CGFloat)cornerRadius;
+
+/**
+ This is unavailable because there are no sensible default property values without a button type.
+ Use `defaultSettingsForButtonType:` or `initWithBackgroundColor:cornerRadius:` instead.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ The background color of the button.
+ The default for .resend and .cancel is clear.
+ The default for .submit, .continue, and .next is blue.
+ */
+@property (nonatomic) UIColor *backgroundColor;
+
+/// The corner radius of the button. Defaults to 8.
+@property (nonatomic) CGFloat cornerRadius;
+
+/**
+ The capitalization style of the button title
+ */
+@property (nonatomic) STDSButtonTitleStyle titleStyle;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSChallengeParameters.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSChallengeParameters.h
new file mode 100644
index 0000000000..e1aa151cdc
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSChallengeParameters.h
@@ -0,0 +1,61 @@
+//
+// STDSChallengeParameters.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 2/13/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+@protocol STDSAuthenticationResponse;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSChallengeParameters` contains information from the 3DS Server's
+ authentication response that are used by the 3DS2 SDK to initiate
+ the challenge flow.
+ */
+@interface STDSChallengeParameters : NSObject
+
+/**
+ Convenience intiializer to create an instace of `STDSChallengeParameters` from an
+ `STDSAuthenticationResponse`
+ */
+- (instancetype)initWithAuthenticationResponse:(id)authResponse;
+
+/**
+ Transaction identifier assigned by the 3DS Server to uniquely identify
+ a transaction.
+ */
+@property (nonatomic, copy) NSString *threeDSServerTransactionID;
+
+/**
+ Transaction identifier assigned by the Access Control Server (ACS)
+ to uniquely identify a transaction.
+ */
+@property (nonatomic, copy) NSString *acsTransactionID;
+
+/**
+ The reference number of the relevant Access Control Server.
+ */
+@property (nonatomic, copy) NSString *acsReferenceNumber;
+
+/**
+ The encrypted message sent by the Access Control Server
+ containing the ACS URL, epthemeral public key, and the
+ 3DS2 SDK ephemeral public key.
+ */
+@property (nonatomic, copy) NSString *acsSignedContent;
+
+/**
+ The URL for the application that is requesting 3DS2 verification.
+ This property can be optionally set and will be included with the
+ messages sent to the Directory Server during the challenge flow.
+ */
+@property (nonatomic, copy, nullable) NSString *threeDSRequestorAppURL;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSChallengeStatusReceiver.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSChallengeStatusReceiver.h
new file mode 100644
index 0000000000..a06a32bb93
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSChallengeStatusReceiver.h
@@ -0,0 +1,61 @@
+//
+// STDSChallengeStatusReceiver.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/20/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+@class STDSTransaction, STDSCompletionEvent, STDSRuntimeErrorEvent, STDSProtocolErrorEvent;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Implement the `STDSChallengeStatusReceiver` protocol to receive challenge status notifications at the end of the challenge process.
+ @see `STDSTransaction.doChallenge`
+ */
+@protocol STDSChallengeStatusReceiver
+
+/**
+ Called when the challenge process is completed.
+
+ @param completionEvent Information about the completion of the challenge process. @see `STDSCompletionEvent`
+ */
+- (void)transaction:(STDSTransaction *)transaction didCompleteChallengeWithCompletionEvent:(STDSCompletionEvent *)completionEvent;
+
+/**
+ Called when the user selects the option to cancel the transaction on the challenge screen.
+ */
+- (void)transactionDidCancel:(STDSTransaction *)transaction;
+
+/**
+ Called when the challenge process reaches or exceeds the timeout interval that was passed to `STDSTransaction.doChallenge`
+ */
+- (void)transactionDidTimeOut:(STDSTransaction *)transaction;
+
+/**
+ Called when the 3DS SDK receives an EMV 3-D Secure protocol-defined error message from the ACS.
+
+ @param protocolErrorEvent The error code and details. @see `STDSProtocolErrorEvent`
+ */
+- (void)transaction:(STDSTransaction *)transaction didErrorWithProtocolErrorEvent:(STDSProtocolErrorEvent *)protocolErrorEvent;
+
+/**
+ Called when the 3DS SDK encounters errors during the challenge process. These errors include all errors except those covered by `didErrorWithProtocolErrorEvent`.
+
+ @param runtimeErrorEvent The error code and details. @see `STDSRuntimeErrorEvent`
+ */
+- (void)transaction:(STDSTransaction *)transaction didErrorWithRuntimeErrorEvent:(STDSRuntimeErrorEvent *)runtimeErrorEvent;
+
+@optional
+
+/**
+ Optional method that will be called when the transaction displays a new challenge screen.
+ */
+- (void)transactionDidPresentChallengeScreen:(STDSTransaction *)transaction;
+
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSCompletionEvent.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSCompletionEvent.h
new file mode 100644
index 0000000000..851c71dbe2
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSCompletionEvent.h
@@ -0,0 +1,40 @@
+//
+// STDSCompletionEvent.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/20/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSCompletionEvent` contains information about completion of the challenge process.
+ */
+@interface STDSCompletionEvent : NSObject
+
+/**
+ Designated initializer for `STDSCompletionEvent`.
+ */
+- (instancetype)initWithSDKTransactionIdentifier:(NSString *)identifier transactionStatus:(NSString *)transactionStatus NS_DESIGNATED_INITIALIZER;
+
+/**
+ `STDSCompletionEvent` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ The SDK Transaction ID.
+ */
+@property (nonatomic, readonly) NSString *sdkTransactionIdentifier;
+
+/**
+ The transaction status that was received in the final challenge response.
+ */
+@property (nonatomic, readonly) NSString *transactionStatus;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSConfigParameters.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSConfigParameters.h
new file mode 100644
index 0000000000..4d77ba5d5a
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSConfigParameters.h
@@ -0,0 +1,96 @@
+//
+// STDSConfigParameters.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The default group name that will be used to group additional
+ configuration parameters.
+ */
+extern NSString * const kSTDSConfigDefaultGroupName;
+
+/**
+ `STDSConfigParameters` represents additional configuration parameters
+ that can be passed to the Stripe3DS2 SDK during initialization.
+
+ There are currently no supported additional parameters and apps can
+ just pass `[STDSConfigParameters alloc] initWithStandardParameters`
+ to the `STDSThreeDS2Service` instance.
+ */
+@interface STDSConfigParameters : NSObject
+
+/**
+ Convenience initializer to get an `STDSConfigParameters` instance
+ with the default expected configuration parameters.
+ */
+- (instancetype)initWithStandardParameters;
+
+/**
+ Adds the parameter to this instance.
+
+ @param paramName The name of the parameter to add
+ @param paramValue The value of the parameter to add
+ @param paramGroup The group to which this parameter will be added. If `nil` the parameter will be added to `kSTDSConfigDefaultGroupName`
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` or `paramValue` are `nil`. @see STDSInvalidInputException
+ */
+- (void)addParameterNamed:(NSString *)paramName withValue:(NSString *)paramValue toGroup:(nullable NSString *)paramGroup;
+
+/**
+ Adds the parameter to the default group in this instance.
+
+ @param paramName The name of the parameter to add
+ @param paramValue The value of the parameter to add
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` or `paramValue` are `nil`. @see STDSInvalidInputException
+ */
+- (void)addParameterNamed:(NSString *)paramName withValue:(NSString *)paramValue;
+
+/**
+ Returns the value for `paramName` in `paramGroup` or `nil` if the parameter value is not set.
+
+ @param paramName The name of the parameter to return
+ @param paramGroup The group from which to fetch the parameter value. If `nil` will default to `kSTDSConfigDefaultGroupName`
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` is `nil`. @see STDSInvalidInputException
+ */
+- (nullable NSString *)parameterValue:(NSString *)paramName inGroup:(nullable NSString *)paramGroup;
+
+/**
+ Returns the value for `paramName` in the default group or `nil` if the parameter value is not set.
+
+ @param paramName The name of the parameter to return
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` is `nil`. @see STDSInvalidInputException
+ */
+- (nullable NSString *)parameterValue:(NSString *)paramName;
+
+/**
+ Removes the specified parameter from the group and returns the value or `nil` if the parameter was not found.
+
+ @param paramName The name of the parameter to remove
+ @param paramGroup The group from which to remove this parameter. If `nil` will default to `kSTDSConfigDefaultGroupName`
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` is `nil`. @see STDSInvalidInputException
+ */
+- (nullable NSString *)removeParameterNamed:(NSString *)paramName fromGroup:(nullable NSString *)paramGroup;
+
+/**
+ Removes the specified parameter from the default group and returns the value or `nil` if the parameter was not found.
+
+ @param paramName The name of the parameter to remove
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `paramName` is `nil`. @see STDSInvalidInputException
+ */
+- (nullable NSString *)removeParameterNamed:(NSString *)paramName;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSCustomization.h
new file mode 100644
index 0000000000..516eff9e3c
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSCustomization.h
@@ -0,0 +1,25 @@
+//
+// STDSCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// This class provides a common set of customization parameters, used to customize elements of the UI.
+@interface STDSCustomization : NSObject
+
+/// The font to use for text.
+@property (nonatomic, nullable) UIFont *font;
+
+/// The color to use for the text.
+@property (nonatomic, nullable) UIColor *textColor;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSErrorMessage.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSErrorMessage.h
new file mode 100644
index 0000000000..35bce4a305
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSErrorMessage.h
@@ -0,0 +1,108 @@
+//
+// STDSErrorMessage.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/21/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSJSONEncodable.h"
+#import "STDSJSONDecodable.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// Error codes as defined by the 3DS2 spec.
+typedef NS_ENUM(NSInteger, STDSErrorMessageCode) {
+ /// The SDK received a message that is not an ARes, CRes, or ErrorMessage.
+ STDSErrorMessageCodeInvalidMessage = 101,
+
+ /// A required data element is missing from the network response.
+ STDSErrorMessageCodeRequiredDataElementMissing = 201,
+
+ // Critical message extension not recognised
+ STDSErrorMessageCodeUnrecognizedCriticalMessageExtension = 202,
+
+ /// A data element is not in the required format or the value is invalid.
+ STDSErrorMessageErrorInvalidDataElement = 203,
+
+ // Transaction ID not recognized
+ STDSErrorMessageErrorTransactionIDNotRecognized = 301,
+
+ /// A network response could not be decrypted or verified.
+ STDSErrorMessageErrorDataDecryptionFailure = 302,
+
+ /// The SDK timed out
+ STDSErrorMessageErrorTimeout = 402,
+};
+
+/**
+ `STDSErrorMessage` represents an error message that is returned by the ACS or to be sent to the ACS.
+ */
+@interface STDSErrorMessage : NSObject
+
+/**
+ Designated initializer for `STDSErrorMessage`.
+
+ @param errorCode The error code.
+ @param errorComponent The component that identified the error.
+ @param errorDescription Text describing the error.
+ @param errorDetails Additional error details. Optional.
+ */
+- (instancetype)initWithErrorCode:(NSString *)errorCode
+ errorComponent:(NSString *)errorComponent
+ errorDescription:(NSString *)errorDescription
+ errorDetails:(nullable NSString *)errorDetails
+ messageVersion:(NSString *)messageVersion
+ acsTransactionIdentifier:(nullable NSString *)acsTransactionIdentifier
+ errorMessageType:(NSString *)errorMessageType;
+
+/**
+ `STDSErrorMessage` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ The error code.
+ */
+@property (nonatomic, readonly) NSString *errorCode;
+
+/**
+ The 3-D Secure component that identified the error.
+ */
+@property (nonatomic, readonly) NSString *errorComponent;
+
+/**
+ Text describing the error.
+ */
+@property (nonatomic, readonly) NSString *errorDescription;
+
+/**
+ Additional error details.
+ */
+@property (nonatomic, nullable, readonly) NSString *errorDetails;
+
+/**
+ The protocol version identifier.
+ */
+@property (nonatomic, readonly) NSString *messageVersion;
+
+/**
+ The ACS transaction identifier.
+ */
+@property (nonatomic, readonly, nullable) NSString *acsTransactionIdentifier;
+
+/**
+ The message type that was identified as erroneous.
+ */
+@property (nonatomic, readonly) NSString *errorMessageType;
+
+/**
+ A representation of the `STDSErrorMessage` as an `NSError`
+ */
+- (NSError *)NSErrorValue;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSException.h
new file mode 100644
index 0000000000..1f2c5ecdf8
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSException.h
@@ -0,0 +1,25 @@
+//
+// STDSException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ An abstract class to represent 3DS2 SDK custom exceptions
+ */
+@interface STDSException : NSException
+
+/**
+ A description of the exception.
+ */
+@property (nonatomic, readonly) NSString *message;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSFooterCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSFooterCustomization.h
new file mode 100644
index 0000000000..990ffd9b25
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSFooterCustomization.h
@@ -0,0 +1,41 @@
+//
+// STDSFooterCustomization.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 6/10/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The Challenge view displays a footer with additional details that
+ expand when tapped. This object configures the appearance of that view.
+*/
+@interface STDSFooterCustomization : STDSCustomization
+
+/// The default settings.
++ (instancetype)defaultSettings;
+
+/**
+ The background color of the footer.
+ Defaults to gray.
+ */
+@property (nonatomic) UIColor *backgroundColor;
+
+/// The color of the chevron. Defaults to a dark gray.
+@property (nonatomic) UIColor *chevronColor;
+
+/// The color of the heading text. Defaults to black.
+@property (nonatomic) UIColor *headingTextColor;
+
+/// The font to use for the heading text.
+@property (nonatomic) UIFont *headingFont;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSInvalidInputException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSInvalidInputException.h
new file mode 100644
index 0000000000..b30d4e1079
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSInvalidInputException.h
@@ -0,0 +1,21 @@
+//
+// STDSInvalidInputException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSException.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSInvalidInputException` represents an exception that will be thrown by
+ Stripe3DS2 SDK methods that are called with invalid input arguments.
+ */
+@interface STDSInvalidInputException : STDSException
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSJSONDecodable.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSJSONDecodable.h
new file mode 100644
index 0000000000..f93428acf7
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSJSONDecodable.h
@@ -0,0 +1,33 @@
+//
+// STDSJSONDecodable.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/27/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol STDSJSONDecodable
+
+/**
+ Initializes an instance of the class from its JSON representation.
+
+ This method recognizes two categories of errors:
+ - a required field is missing.
+ - a required field value is in valid (e.g. expected 'Y' or 'N' but received 'X').
+
+ Errors populating optional fields are ignored.
+
+ @param json The JSON dictionary that represents an object of this type
+ @param outError If there was a missing required field or invalid field value, contains an instance of NSError.
+
+ @return The object represented by the JSON dictionary. If the object could not be decoded, returns nil and populates the outError argument.
+ */
++ (nullable instancetype)decodedObjectFromJSON:(nullable NSDictionary *)json error:(NSError **)outError;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSJSONEncodable.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSJSONEncodable.h
new file mode 100644
index 0000000000..9861a23c39
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSJSONEncodable.h
@@ -0,0 +1,22 @@
+//
+// STDSJSONEncodable.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/25/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol STDSJSONEncodable
+
+/**
+ Returns a map of property names to their JSON representation's key value. For example, `STDSChallengeParameters` has a property called `acsTransactionID`, but the 3DS2 JSON spec expects a field called `acsTransID`. This dictionary represents a mapping from the former to the latter (in other words, [STDSChallengeParameters propertyNamesToJSONKeysMapping][@"acsTransactionID"] == @"acsTransID".)
+ */
++ (NSDictionary *)propertyNamesToJSONKeysMapping;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSJSONEncoder.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSJSONEncoder.h
new file mode 100644
index 0000000000..7ccc07e613
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSJSONEncoder.h
@@ -0,0 +1,27 @@
+//
+// STDSJSONEncoder.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/25/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSJSONEncodable.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSJSONEncoder` is a utility class to help with converting API objects into JSON
+ */
+@interface STDSJSONEncoder : NSObject
+
+/**
+ Method to convert an STDSJSONEncodable object into a JSON dictionary.
+ */
++ (NSDictionary *)dictionaryForObject:(NSObject *)object;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSLabelCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSLabelCustomization.h
new file mode 100644
index 0000000000..af75cf39dd
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSLabelCustomization.h
@@ -0,0 +1,31 @@
+//
+// STDSLabelCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ A customization object to use to configure the UI of a text label.
+
+ The font and textColor inherited from `STDSCustomization` configure non-heading labels.
+ */
+@interface STDSLabelCustomization : STDSCustomization
+
+/// The default settings.
++ (instancetype)defaultSettings;
+
+/// The color of the heading text. Defaults to black.
+@property (nonatomic) UIColor *headingTextColor;
+
+/// The font to use for the heading text.
+@property (nonatomic) UIFont *headingFont;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSNavigationBarCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSNavigationBarCustomization.h
new file mode 100644
index 0000000000..18affaaf74
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSNavigationBarCustomization.h
@@ -0,0 +1,59 @@
+//
+// STDSNavigationBarCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+#import
+
+#import "STDSCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ A customization object to use to configure a UINavigationBar.
+
+ The font and textColor inherited from `STDSCustomization` configure the
+ title of the navigation bar, and default to nil.
+ */
+@interface STDSNavigationBarCustomization : STDSCustomization
+
+/// The default settings.
++ (instancetype)defaultSettings;
+
+/**
+ The tint color of the navigation bar background.
+ Defaults to nil.
+ */
+@property (nonatomic, nullable) UIColor *barTintColor;
+
+/**
+ The navigation bar style.
+ Defaults to UIBarStyleDefault.
+ */
+@property (nonatomic) UIBarStyle barStyle;
+
+/**
+ A Boolean value indicating whether the navigation bar is translucent or not.
+ Defaults to YES.
+ */
+@property (nonatomic) BOOL translucent;
+
+/**
+ The text to display in the title of the navigation bar.
+ Defaults to "Secure checkout".
+ */
+@property (nonatomic, copy) NSString *headerText;
+
+/**
+ The text to display for the button in the navigation bar.
+ Defaults to "Cancel".
+ */
+@property (nonatomic, copy) NSString *buttonText;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSNotInitializedException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSNotInitializedException.h
new file mode 100644
index 0000000000..cb836d5e83
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSNotInitializedException.h
@@ -0,0 +1,23 @@
+//
+// STDSNotInitializedException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 2/13/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSException.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSNotInitializedException` represents an exception that will be thrown by
+ the the Stripe3DS2 SDK if methods are called without initializing `STDSThreeDS2Service`.
+
+ @see STDSThreeDS2Service
+ */
+@interface STDSNotInitializedException : STDSException
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSProtocolErrorEvent.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSProtocolErrorEvent.h
new file mode 100644
index 0000000000..1e3142a722
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSProtocolErrorEvent.h
@@ -0,0 +1,42 @@
+//
+// STDSProtocolErrorEvent.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/20/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+@class STDSErrorMessage;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSProtocolErrorEvent` contains details about erorrs received from or sent to the ACS.
+ */
+@interface STDSProtocolErrorEvent : NSObject
+
+/**
+ Designated initializer for `STDSProtocolErrorEvent`.
+ */
+- (instancetype)initWithSDKTransactionIdentifier:(NSString *)identifier errorMessage:(STDSErrorMessage *)errorMessage;
+
+/**
+ `STDSProtocolErrorEvent` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ Details about the error.
+ */
+@property (nonatomic, readonly) STDSErrorMessage *errorMessage;
+
+/**
+ The SDK Transaction Identifier.
+ */
+@property (nonatomic, readonly) NSString *sdkTransactionIdentifier;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSRuntimeErrorEvent.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSRuntimeErrorEvent.h
new file mode 100644
index 0000000000..658cdb90cb
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSRuntimeErrorEvent.h
@@ -0,0 +1,53 @@
+//
+// STDSRuntimeErrorEvent.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/20/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+FOUNDATION_EXTERN NSString * const kSTDSRuntimeErrorCodeParsingError;
+FOUNDATION_EXTERN NSString * const kSTDSRuntimeErrorCodeEncryptionError;
+
+/**
+ `STDSRuntimeErrorEvent` contains details about run-time errors encountered during authentication.
+
+ The following are examples of run-time errors:
+ - ACS is unreachable
+ - Unparseable message
+ - Network issues
+ */
+@interface STDSRuntimeErrorEvent : NSObject
+
+/**
+ A code corresponding to the type of error this represents.
+ */
+@property (nonatomic, readonly) NSString *errorCode;
+
+/**
+ Details about the error.
+ */
+@property (nonatomic, readonly) NSString *errorMessage;
+
+/**
+ Designated initializer for `STDSRuntimeErrorEvent`.
+ */
+- (instancetype)initWithErrorCode:(NSString *)errorCode errorMessage:(NSString *)errorMessage NS_DESIGNATED_INITIALIZER;
+
+/**
+ A representation of the `STDSRuntimeErrorEvent` as an `NSError`
+ */
+- (NSError *)NSErrorValue;
+
+/**
+ `STDSRuntimeErrorEvent` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSRuntimeException.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSRuntimeException.h
new file mode 100644
index 0000000000..5b63a2d3bf
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSRuntimeException.h
@@ -0,0 +1,21 @@
+//
+// STDSRuntimeException.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import "STDSException.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSRuntimeException` represents an exception that will be thrown by the
+ Stripe3DS2 SDK if it encounters an internal error.
+ */
+@interface STDSRuntimeException : STDSException
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSSelectionCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSSelectionCustomization.h
new file mode 100644
index 0000000000..a9818bb988
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSSelectionCustomization.h
@@ -0,0 +1,48 @@
+//
+// STDSSelectionCustomization.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 6/11/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ A customization object that configures the appearance of
+ radio buttons and checkboxes.
+ */
+@interface STDSSelectionCustomization: NSObject
+
+/// The default settings.
++ (instancetype)defaultSettings;
+
+/**
+ The primary color of the selected state.
+ Defaults to blue.
+ */
+@property (nonatomic) UIColor *primarySelectedColor;
+
+/**
+ The secondary color of the selected state (e.g. the checkmark color).
+ Defaults to white.
+ */
+@property (nonatomic) UIColor *secondarySelectedColor;
+
+/**
+ The background color displayed in the unselected state.
+ Defaults to light blue.
+ */
+@property (nonatomic) UIColor *unselectedBackgroundColor;
+
+/**
+ The color of the border drawn around the view in the unselected state.
+ Defaults to blue.
+ */
+@property (nonatomic) UIColor *unselectedBorderColor;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSStripe3DS2Error.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSStripe3DS2Error.h
new file mode 100644
index 0000000000..2e506fe2f4
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSStripe3DS2Error.h
@@ -0,0 +1,68 @@
+//
+// STDSStripe3DS2Error.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/27/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+FOUNDATION_EXPORT NSString * const STDSStripe3DS2ErrorDomain;
+
+/**
+ NSError.userInfo contains this key if we received an ErrorMessage instead of the expected response object.
+ The value of this key is the ErrorMessage.
+ */
+FOUNDATION_EXPORT NSString * const STDSStripe3DS2ErrorMessageErrorKey;
+
+/**
+ NSError.userInfo contains this key if we errored parsing JSON.
+ The value of this key is the invalid or missing field.
+ */
+FOUNDATION_EXPORT NSString * const STDSStripe3DS2ErrorFieldKey;
+
+/**
+ NSError.userInfo contains this key if we couldn't recognize critical message extension(s)
+ The value of this key is an array of identifiers.
+ */
+FOUNDATION_EXPORT NSString * const STDSStripe3DS2UnrecognizedCriticalMessageExtensionsKey;
+
+
+typedef NS_ENUM(NSInteger, STDSErrorCode) {
+
+ /// Code triggered an assertion
+ STDSErrorCodeAssertionFailed = 204,
+
+ // JSON Parsing
+ /// Received invalid or malformed data
+ STDSErrorCodeJSONFieldInvalid = 203,
+ /// Expected field missing
+ STDSErrorCodeJSONFieldMissing = 201,
+
+ /// Critical message extension not recognised
+ STDSErrorCodeUnrecognizedCriticalMessageExtension = 202,
+
+ /// Decryption or verification error
+ STDSErrorCodeDecryptionVerification = 302,
+
+ /// Error code corresponding to a `STDSRuntimeErrorEvent` for an unparseable network response
+ STDSErrorCodeRuntimeParsing = 400,
+ /// Error code corresponding to a `STDSRuntimeErrorEvent` for an error with decrypting or verifying a network response
+ STDSErrorCodeRuntimeEncryption = 401,
+
+ // Networking
+ /// We received an ErrorMessage instead of the expected response object. `userInfo[STDSStripe3DS2ErrorMessageErrorKey]` will contain the ErrorMessage object.
+ STDSErrorCodeReceivedErrorMessage = 1000,
+ /// We received an unknown message type.
+ STDSErrorCodeUnknownMessageType = 1001,
+ /// Request timed out
+ STDSErrorCodeTimeout = 1002,
+
+ /// Unknown
+ STDSErrorCodeUnknownError = 2000,
+};
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSSwiftTryCatch.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSSwiftTryCatch.h
new file mode 100644
index 0000000000..47443368a7
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSSwiftTryCatch.h
@@ -0,0 +1,50 @@
+//
+// STDSSwiftTryCatch.h
+//
+// Created by William Falcon on 10/10/14.
+// Copyright (c) 2014 William Falcon. All rights reserved.
+//
+/*
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+ */
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Provides try catch functionality for swift by wrapping around Objective-C
+ */
+@interface STDSSwiftTryCatch : NSObject
+
+/**
+ Provides try catch functionality for swift by wrapping around Objective-C
+ */
++ (void)tryBlock:(void(^)(void))tryBlock catchBlock:(void(^)(NSException*exception))catchBlock finallyBlock:(void(^)(void))finallyBlock;
+/**
+ Throws Objective-C exception with name and reason set to `s`
+ */
++ (void)throwString:(NSString*)s;
+
+/**
+ Throws exception `e`
+ */
++ (void)throwException:(NSException*)e;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSTextFieldCustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSTextFieldCustomization.h
new file mode 100644
index 0000000000..6f2bfede11
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSTextFieldCustomization.h
@@ -0,0 +1,47 @@
+//
+// STDSTextFieldCustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+#import "STDSCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ A customization object to use to configure the UI of a text field.
+
+ The font and textColor inherited from `STDSCustomization` configure
+ the user input text.
+ */
+@interface STDSTextFieldCustomization : STDSCustomization
+
+/**
+ The default settings.
+
+ The default textColor is black.
+ */
++ (instancetype)defaultSettings;
+
+/// The border width of the text field. Defaults to 2.
+@property (nonatomic) CGFloat borderWidth;
+
+/// The color of the border of the text field. Defaults to clear.
+@property (nonatomic) UIColor *borderColor;
+
+/// The corner radius of the edges of the text field. Defaults to 8.
+@property (nonatomic) CGFloat cornerRadius;
+
+/// The appearance of the keyboard. Defaults to UIKeyboardAppearanceDefault.
+@property (nonatomic) UIKeyboardAppearance keyboardAppearance;
+
+/// The color of the placeholder text. Defaults to light gray.
+@property (nonatomic) UIColor *placeholderTextColor;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSThreeDS2Service.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSThreeDS2Service.h
new file mode 100644
index 0000000000..c0baa55fef
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSThreeDS2Service.h
@@ -0,0 +1,84 @@
+//
+// STDSThreeDS2Service.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/22/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+@class STDSConfigParameters;
+@class STDSTransaction;
+@class STDSUICustomization;
+@class STDSWarning;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSThreeDS2Service` is the main 3DS SDK interface and provides methods to process transactions.
+ */
+@interface STDSThreeDS2Service : NSObject
+
+/**
+ A list of warnings that may be populated once the SDK has been initialized.
+ */
+@property (nonatomic, readonly, nullable) NSArray *warnings;
+
+/**
+ Initializes the 3DS SDK instance.
+
+ This method should be called at the start of the payment stage of a transaction.
+ **Note: Until the `STDSThreeDS2Service instance is initialized, it will be unusable.**
+
+ - Performs security checks
+ - Collects device information
+
+ @param config Configuration information that will be used during initialization. @see STDSConfigParameters
+ @param locale Optional override for the locale to use in UI. If `nil`, will default to the current system locale.
+ @param uiSettings Optional custom UI settings. If `nil`, will default to `[STDSUICustomization defaultSettings]`.
+ This argument is copied; any further changes to the customization object have no effect. @see STDSUICustomization
+
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `config` is `nil` or any of `config`, `locale`, or `uiSettings` are invalid. @see STDSInvalidInputException
+ @exception STDSAlreadyInitializedException Will throw an `STDSAlreadyInitializedException` if the 3DS SDK instance has already been initialized. @see STDSSDKAlreadyInitializedException
+ @exception STDSRuntimeException Will throw an `STDSRuntimeException` if there is an internal error in the SDK. @see STDSRuntimeException
+ */
+- (void)initializeWithConfig:(STDSConfigParameters *)config
+ locale:(nullable NSLocale *)locale
+ uiSettings:(nullable STDSUICustomization *)uiSettings;
+
+/**
+ Creates and returns an instance of `STDSTransaction`.
+
+ @param directoryServerID The Directory Server identifier returned in the authentication response
+ @param protocolVersion 3DS protocol version according to which the transaction will be created. Uses the default value of 2.1.0 if nil
+
+ @exception STDSNotInitializedException Will throw an `STDSNotInitializedException` if the the `STDSThreeDS2Service` instance hasn't been initialized with a call to `initializeWithConfig:locale:uiSettings:`. @see STDSNotInitializedException
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if `directoryServerID` is not recognized or if the `protocolVersion` is not supported by this version of the SDK. @see STDSInvalidInputException
+ @exception STDSRuntimeException Will throw an `STDSRuntimeException` if there is an internal error in the SDK. @see STDSRuntimeException
+ */
+- (STDSTransaction *)createTransactionForDirectoryServer:(NSString *)directoryServerID
+ withProtocolVersion:(nullable NSString *)protocolVersion;
+
+/**
+ Creates and returns an instance of `STDSTransaction` using a custom directory server certificate.
+ Will return nil if unable to create a certificate from the provided params.
+
+ @param directoryServerID The Directory Server identifier returned in the authentication response
+ @param serverKeyID An additional authentication key used by some Directory Servers
+ @param certificateString A Base64-encoded PEM or DER formatted certificate string containing the directory server's public key
+ @param rootCertificateStrings An arry of base64-encoded PEM or DER formatted certificate strings containing the DS root certificate used for signature checks
+ @param protocolVersion 3DS protocol version according to which the transaction will be created. Uses the default value of 2.1.0 if nil
+
+ @exception STDSNotInitializedException Will throw an `STDSNotInitializedException` if the the `STDSThreeDS2Service` instance hasn't been initialized with a call to `initializeWithConfig:locale:uiSettings:`. @see STDSNotInitializedException
+ @exception STDSInvalidInputException Will throw an `STDSInvalidInputException` if the `protocolVersion` is not supported by this version of the SDK. @see STDSInvalidInputException
+ */
+- (nullable STDSTransaction *)createTransactionForDirectoryServer:(NSString *)directoryServerID
+ serverKeyID:(nullable NSString *)serverKeyID
+ certificateString:(NSString *)certificateString
+ rootCertificateStrings:(NSArray *)rootCertificateStrings
+ withProtocolVersion:(nullable NSString *)protocolVersion;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSThreeDSProtocolVersion.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSThreeDSProtocolVersion.h
new file mode 100644
index 0000000000..b4161a6e3c
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSThreeDSProtocolVersion.h
@@ -0,0 +1,15 @@
+//
+// STDSThreeDSProtocolVersion.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 6/27/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+FOUNDATION_EXPORT NSString * const Stripe3DS2ProtocolVersion;
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSTransaction.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSTransaction.h
new file mode 100644
index 0000000000..45d06e5142
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSTransaction.h
@@ -0,0 +1,79 @@
+//
+// STDSTransaction.h
+// Stripe3DS2
+//
+// Created by Yuki Tokuhiro on 3/21/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+#import
+
+typedef void (^STDSTransactionVoidBlock)(void);
+
+@class STDSAuthenticationRequestParameters, STDSChallengeParameters;
+@protocol STDSChallengeStatusReceiver;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ `STDSTransaction` holds parameters that the 3DS Server requires to create AReq messages and to perform the Challenge Flow.
+ */
+@interface STDSTransaction : NSObject
+
+/**
+ The UI type of the presented challenge for this transaction if applicable. Will be one of
+ "none"
+ "text"
+ "single_select"
+ "multi_select"
+ "oob"
+ "html"
+ */
+@property (nonatomic, readonly, copy) NSString *presentedChallengeUIType;
+
+/**
+ Encrypts device information collected during initialization and returns it along with SDK details.
+
+ @return Encrypted device information and details about this SDK. @see STDSAuthenticationRequestParameters
+
+ @exception SDKRuntimeException Thrown if an internal error is encountered.
+ */
+- (STDSAuthenticationRequestParameters *)createAuthenticationRequestParameters;
+
+/**
+ Returns a UIViewController instance displaying the Directory Server logo and a spinner. Present this during the Authentication Request/Response.
+ */
+- (UIViewController *)createProgressViewControllerWithDidCancel:(STDSTransactionVoidBlock)didCancel;
+
+/**
+ Initiates the challenge process, displaying challenge UI as needed.
+
+ @param presentingViewController The UIViewController used to present the challenge response UIViewController
+ @param challengeParameters Details required to conduct the challenge process. @see STDSChallengeParameters
+ @param challengeStatusReceiver A callback object to receive the status of the challenge. See @STDSChallengeStatusReceiver
+ @param timeout An interval in seconds within which the challenge process will finish. Must be at least 5 minutes.
+
+ @exception STDSInvalidInputException Thrown if an argument is invalid (e.g. timeout less than 5 minutes). @see STDSInvalidInputException
+ @exception STDSSDKRuntimeException Thrown if an internal error is encountered, and if you call this method after calling `close`. @see SDKRuntimeException
+ */
+- (void)doChallengeWithViewController:(UIViewController *)presentingViewController
+ challengeParameters:(STDSChallengeParameters *)challengeParameters
+ challengeStatusReceiver:(id)challengeStatusReceiver
+ timeout:(NSTimeInterval)timeout;
+
+/**
+ Returns the version of the Stripe3DS2 SDK, e.g. @"1.0"
+ */
+- (NSString *)sdkVersion;
+
+/**
+Cleans up resources held by `STDSTransaction`. Call this when the transaction is completed, if `doChallengeWithChallengeParameters:challengeStatusReceiver:timeout` is not called.
+
+ @note Don't use this object after calling this method. Calling `doChallengeWithViewController:challengeParameters:challengeStatusReceiver:timeout` after calling this method will throw an `STDSSDKRuntimeException`
+ */
+- (void)close;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSUICustomization.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSUICustomization.h
new file mode 100644
index 0000000000..651b22f170
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSUICustomization.h
@@ -0,0 +1,109 @@
+//
+// STDSUICustomization.h
+// Stripe3DS2
+//
+// Created by Andrew Harrison on 3/14/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+#import "STDSCustomization.h"
+#import "STDSButtonCustomization.h"
+#import "STDSNavigationBarCustomization.h"
+#import "STDSLabelCustomization.h"
+#import "STDSTextFieldCustomization.h"
+#import "STDSFooterCustomization.h"
+#import "STDSSelectionCustomization.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The `STDSUICustomization` provides configuration for UI elements.
+
+ It's important to configure this object appropriately before using it to initialize a
+ `STDSThreeDS2Service` object. `STDSThreeDS2Service` makes a copy of the customization
+ settings you provide; it ignores any subsequent changes you make to your `STDSUICustomization` instance.
+*/
+@interface STDSUICustomization: NSObject
+
+/// The default settings. See individual properties for their default values.
++ (instancetype)defaultSettings;
+
+/**
+ Provides custom settings for the UINavigationBar of all UIViewControllers the SDK display.
+ The default is `[STDSNavigationBarCustomization defaultSettings]`.
+ */
+@property (nonatomic) STDSNavigationBarCustomization *navigationBarCustomization;
+
+/**
+ Provides custom settings for labels.
+ The default is `[STDSLabelCustomization defaultSettings]`.
+ */
+@property (nonatomic) STDSLabelCustomization *labelCustomization;
+
+/**
+ Provides custom settings for text fields.
+ The default is `[STDSTextFieldCustomization defaultSettings]`.
+ */
+@property (nonatomic) STDSTextFieldCustomization *textFieldCustomization;
+
+/**
+ The primary background color of all UIViewControllers the SDK display.
+ Defaults to white.
+ */
+@property (nonatomic) UIColor *backgroundColor;
+
+/**
+ The Challenge view displays a footer with additional details. This controls the background color of that view.
+ Defaults to gray.
+ */
+@property (nonatomic) STDSFooterCustomization *footerCustomization;
+
+/**
+ Sets a given button customization for the specified type.
+
+ @param buttonCustomization The buttom customization to use.
+ @param buttonType The type of button to use the customization for.
+ */
+- (void)setButtonCustomization:(STDSButtonCustomization *)buttonCustomization forType:(STDSUICustomizationButtonType)buttonType;
+
+/**
+ Retrieves a button customization object for the given button type.
+
+ @param buttonType The button type to retrieve a customization object for.
+ @return A button customization object, or the default if none was set.
+ @see STDSButtonCustomization
+ */
+- (STDSButtonCustomization *)buttonCustomizationForButtonType:(STDSUICustomizationButtonType)buttonType;
+
+/**
+ Provides custom settings for radio buttons and checkboxes.
+ The default is `[STDSSelectionCustomization defaultSettings]`.
+ */
+@property (nonatomic) STDSSelectionCustomization *selectionCustomization;
+
+
+/**
+ The preferred status bar style for all UIViewControllers the SDK display.
+ Defaults to UIStatusBarStyleDefault.
+ */
+@property (nonatomic) UIStatusBarStyle preferredStatusBarStyle;
+
+#pragma mark - Progress View
+
+/**
+ The style of UIActivityIndicatorViews displayed.
+ This should contrast with `backgroundColor`. Defaults to regular on iOS 13+,
+ gray on iOS 10-12.
+ */
+@property (nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle;
+
+/**
+ The style of the UIBlurEffect displayed underneath the UIActivityIndicatorView.
+ Defaults to UIBlurEffectStyleDefault.
+ */
+@property (nonatomic) UIBlurEffectStyle blurStyle;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSWarning.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSWarning.h
new file mode 100644
index 0000000000..5f09fe70a8
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/STDSWarning.h
@@ -0,0 +1,69 @@
+//
+// STDSWarning.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 2/12/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ The `STDSWarningSeverity` enum defines the severity levels of warnings generated
+ during SDK initialization. @see STDSThreeDS2Service
+ */
+typedef NS_ENUM(NSInteger, STDSWarningSeverity) {
+ /**
+ Low severity
+ */
+ STDSWarningSeverityLow = 0,
+
+ /**
+ Medium severity
+ */
+ STDSWarningSeverityMedium,
+
+ /**
+ High severity
+ */
+ STDSWarningSeverityHigh,
+};
+
+/**
+ The `STDSWarning` class represents warnings generated by `STDSThreeDS2Service` during
+ security checks run during initialization. @see STDSThreeDS2Service
+ */
+@interface STDSWarning : NSObject
+
+/**
+ Designated initializer for `STDSWarning`.
+ */
+- (instancetype)initWithIdentifier:(NSString *)identifier
+ message:(NSString *)message
+ severity:(STDSWarningSeverity)severity NS_DESIGNATED_INITIALIZER;
+
+/**
+ `STDSWarning` should not be directly initialized.
+ */
+- (instancetype)init NS_UNAVAILABLE;
+
+/**
+ The identifier for this warning instance.
+ */
+@property (nonatomic, readonly) NSString *identifier;
+
+/**
+ The descriptive message for this warning.
+ */
+@property (nonatomic, readonly) NSString *message;
+
+/**
+ The severity of this warning.
+ */
+@property (nonatomic, readonly) STDSWarningSeverity severity;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/Stripe3DS2-Prefix.pch b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/Stripe3DS2-Prefix.pch
new file mode 100644
index 0000000000..888096ff59
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/Stripe3DS2-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Stripe3DS2-Prefix.pch
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 4/16/20.
+// Copyright © 2020 Stripe. All rights reserved.
+//
+
+#ifndef Stripe3DS2_pch
+#define Stripe3DS2_pch
+
+#import "STDSLocalizedString.h"
+
+#endif /* Stripe3DS2_pch */
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/Stripe3DS2.h b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/Stripe3DS2.h
new file mode 100644
index 0000000000..9e9f3eba40
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Headers/Stripe3DS2.h
@@ -0,0 +1,52 @@
+//
+// Stripe3DS2.h
+// Stripe3DS2
+//
+// Created by Cameron Sabol on 1/16/19.
+// Copyright © 2019 Stripe. All rights reserved.
+//
+
+#import
+
+//! Project version number for Stripe3DS2.
+FOUNDATION_EXPORT double Stripe3DS2VersionNumber;
+
+//! Project version string for Stripe3DS2.
+FOUNDATION_EXPORT const unsigned char Stripe3DS2VersionString[];
+
+#import "STDSConfigParameters.h"
+#import "STDSThreeDS2Service.h"
+#import "STDSUICustomization.h"
+#import "STDSWarning.h"
+
+#import "STDSAlreadyInitializedException.h"
+#import "STDSInvalidInputException.h"
+#import "STDSNotInitializedException.h"
+#import "STDSRuntimeException.h"
+
+#import "STDSErrorMessage.h"
+#import "STDSProtocolErrorEvent.h"
+#import "STDSRuntimeErrorEvent.h"
+#import "STDSStripe3DS2Error.h"
+#import "STDSThreeDSProtocolVersion.h"
+
+#import "STDSAuthenticationRequestParameters.h"
+#import "STDSAuthenticationResponse.h"
+#import "STDSChallengeParameters.h"
+#import "STDSChallengeStatusReceiver.h"
+#import "STDSCompletionEvent.h"
+#import "STDSJSONDecodable.h"
+#import "STDSJSONEncoder.h"
+#import "STDSTransaction.h"
+
+#import "STDSButtonCustomization.h"
+#import "STDSCustomization.h"
+#import "STDSException.h"
+#import "STDSFooterCustomization.h"
+#import "STDSJSONEncodable.h"
+#import "STDSLabelCustomization.h"
+#import "STDSNavigationBarCustomization.h"
+#import "STDSSelectionCustomization.h"
+#import "STDSTextFieldCustomization.h"
+
+#import "STDSSwiftTryCatch.h"
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Modules/module.modulemap b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Modules/module.modulemap
new file mode 100644
index 0000000000..7770928524
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module Stripe3DS2 {
+ umbrella header "Stripe3DS2.h"
+
+ export *
+ module * { export * }
+}
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/Assets.car b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/Assets.car
new file mode 100644
index 0000000000..f50135cecb
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/Assets.car differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/Info.plist b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/Info.plist
new file mode 100644
index 0000000000..649425b669
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/Info.plist
@@ -0,0 +1,50 @@
+
+
+
+
+ BuildMachineOSBuild
+ 19G2021
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ Stripe3DS2
+ CFBundleIdentifier
+ com.stripe.stripe-3ds2
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ Stripe3DS2
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 1.0
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 12A7209
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 10.15.6
+ DTSDKBuild
+ 19G68
+ DTSDKName
+ macosx10.15
+ DTXcode
+ 1200
+ DTXcodeBuild
+ 12A7209
+ LSMinimumSystemVersion
+ 10.15
+ UIDeviceFamily
+
+ 2
+
+
+
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/amex.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/amex.der
new file mode 100644
index 0000000000..61a1cfd1f0
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/amex.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/da.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/da.lproj/Localizable.strings
new file mode 100644
index 0000000000..4bf8d75e7a
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/da.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/de.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/de.lproj/Localizable.strings
new file mode 100644
index 0000000000..c223442ccd
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/de.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/discover.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/discover.der
new file mode 100644
index 0000000000..5b17935a35
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/discover.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ec_test.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ec_test.der
new file mode 100644
index 0000000000..06587c44c3
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ec_test.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/en-GB.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/en-GB.lproj/Localizable.strings
new file mode 100644
index 0000000000..09359c5b36
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/en-GB.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/en.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/en.lproj/Localizable.strings
new file mode 100644
index 0000000000..964c7be1f9
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/en.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/es-419.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/es-419.lproj/Localizable.strings
new file mode 100644
index 0000000000..4f932544a8
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/es-419.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/es.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/es.lproj/Localizable.strings
new file mode 100644
index 0000000000..05be1afab1
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/es.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/fi.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/fi.lproj/Localizable.strings
new file mode 100644
index 0000000000..91182f0635
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/fi.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/fr-CA.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/fr-CA.lproj/Localizable.strings
new file mode 100644
index 0000000000..df6a03b8f4
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/fr-CA.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/fr.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/fr.lproj/Localizable.strings
new file mode 100644
index 0000000000..1053972dc5
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/fr.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/hu.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/hu.lproj/Localizable.strings
new file mode 100644
index 0000000000..d34a34a177
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/hu.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/it.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/it.lproj/Localizable.strings
new file mode 100644
index 0000000000..6125a9411a
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/it.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ja.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ja.lproj/Localizable.strings
new file mode 100644
index 0000000000..b16e0fae7c
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ja.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ko.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ko.lproj/Localizable.strings
new file mode 100644
index 0000000000..d2e9e3f5a0
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ko.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/mastercard.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/mastercard.der
new file mode 100644
index 0000000000..6e136e1331
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/mastercard.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/mt.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/mt.lproj/Localizable.strings
new file mode 100644
index 0000000000..41fbe6994e
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/mt.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/nb.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/nb.lproj/Localizable.strings
new file mode 100644
index 0000000000..631f9b9da9
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/nb.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/nl.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/nl.lproj/Localizable.strings
new file mode 100644
index 0000000000..28a58aa119
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/nl.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/nn-NO.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/nn-NO.lproj/Localizable.strings
new file mode 100644
index 0000000000..e77191ee7d
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/nn-NO.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/pt-BR.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/pt-BR.lproj/Localizable.strings
new file mode 100644
index 0000000000..28dcc28e9e
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/pt-BR.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/pt-PT.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/pt-PT.lproj/Localizable.strings
new file mode 100644
index 0000000000..81cbbc2764
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/pt-PT.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ru.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ru.lproj/Localizable.strings
new file mode 100644
index 0000000000..a67877946b
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ru.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/sv.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/sv.lproj/Localizable.strings
new file mode 100644
index 0000000000..6ed9cd828f
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/sv.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/tr.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/tr.lproj/Localizable.strings
new file mode 100644
index 0000000000..df588e2cfd
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/tr.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ul-test.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ul-test.der
new file mode 100644
index 0000000000..11e5f29b3b
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/ul-test.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/visa.der b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/visa.der
new file mode 100644
index 0000000000..a77735dfa6
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/visa.der differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/zh-HK.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/zh-HK.lproj/Localizable.strings
new file mode 100644
index 0000000000..fb5f6fd2c1
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/zh-HK.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings
new file mode 100644
index 0000000000..4229174d23
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/zh-Hans.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.strings b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.strings
new file mode 100644
index 0000000000..15cb60cf8c
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Resources/zh-Hant.lproj/Localizable.strings differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Stripe3DS2 b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Stripe3DS2
new file mode 100755
index 0000000000..749d2b4b80
Binary files /dev/null and b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/A/Stripe3DS2 differ
diff --git a/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/Current b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/Current
new file mode 120000
index 0000000000..8c7e5a667f
--- /dev/null
+++ b/InternalFrameworks/dynamic/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/Stripe3DS2.framework/Versions/Current
@@ -0,0 +1 @@
+A
\ No newline at end of file
diff --git a/InternalFrameworks/Stripe3DS2.xcframework/Info.plist b/InternalFrameworks/static/Stripe3DS2.xcframework/Info.plist
similarity index 86%
rename from InternalFrameworks/Stripe3DS2.xcframework/Info.plist
rename to InternalFrameworks/static/Stripe3DS2.xcframework/Info.plist
index 343a9bd9ff..ef8738039f 100644
--- a/InternalFrameworks/Stripe3DS2.xcframework/Info.plist
+++ b/InternalFrameworks/static/Stripe3DS2.xcframework/Info.plist
@@ -6,9 +6,9 @@
LibraryIdentifier
- ios-x86_64-simulator
+ ios-x86_64-maccatalyst
LibraryPath
- libStripe3DS2-static-sim.a
+ libStripe3DS2.a
SupportedArchitectures
x86_64
@@ -16,13 +16,28 @@
SupportedPlatform
ios
SupportedPlatformVariant
+ maccatalyst
+
+
+ LibraryIdentifier
+ ios-arm64_x86_64-simulator
+ LibraryPath
+ libStripe3DS2.a
+ SupportedArchitectures
+
+ arm64
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
simulator
LibraryIdentifier
ios-arm64
LibraryPath
- libStripe3DS2-static-ios.a
+ libStripe3DS2.a
SupportedArchitectures
arm64
@@ -30,20 +45,6 @@
SupportedPlatform
ios
-
- LibraryIdentifier
- ios-x86_64-maccatalyst
- LibraryPath
- libStripe3DS2-static-catalyst.a
- SupportedArchitectures
-
- x86_64
-
- SupportedPlatform
- ios
- SupportedPlatformVariant
- maccatalyst
-
CFBundlePackageType
XFWK
diff --git a/InternalFrameworks/Stripe3DS2.xcframework/ios-arm64/libStripe3DS2-static-ios.a b/InternalFrameworks/static/Stripe3DS2.xcframework/ios-arm64/libStripe3DS2.a
similarity index 61%
rename from InternalFrameworks/Stripe3DS2.xcframework/ios-arm64/libStripe3DS2-static-ios.a
rename to InternalFrameworks/static/Stripe3DS2.xcframework/ios-arm64/libStripe3DS2.a
index 21f8eedccb..ed8d2f908c 100644
Binary files a/InternalFrameworks/Stripe3DS2.xcframework/ios-arm64/libStripe3DS2-static-ios.a and b/InternalFrameworks/static/Stripe3DS2.xcframework/ios-arm64/libStripe3DS2.a differ
diff --git a/InternalFrameworks/static/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/libStripe3DS2.a b/InternalFrameworks/static/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/libStripe3DS2.a
new file mode 100644
index 0000000000..98fe59de4b
Binary files /dev/null and b/InternalFrameworks/static/Stripe3DS2.xcframework/ios-arm64_x86_64-simulator/libStripe3DS2.a differ
diff --git a/InternalFrameworks/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/libStripe3DS2-static-catalyst.a b/InternalFrameworks/static/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/libStripe3DS2.a
similarity index 54%
rename from InternalFrameworks/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/libStripe3DS2-static-catalyst.a
rename to InternalFrameworks/static/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/libStripe3DS2.a
index 7f472710ac..7163647ba0 100644
Binary files a/InternalFrameworks/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/libStripe3DS2-static-catalyst.a and b/InternalFrameworks/static/Stripe3DS2.xcframework/ios-x86_64-maccatalyst/libStripe3DS2.a differ
diff --git a/Package.swift b/Package.swift
index e8091115fc..f773d19279 100644
--- a/Package.swift
+++ b/Package.swift
@@ -10,7 +10,6 @@ let package = Package(
products: [
.library(
name: "Stripe",
- type: .dynamic,
targets: ["Stripe"]
),
],
@@ -24,7 +23,6 @@ let package = Package(
.process("Info.plist"),
.process("Resources/Images"),
.process("Resources/au_becs_bsb.json"),
- .process("ExternalResources/Stripe3DS2.bundle"),
],
publicHeadersPath: "PublicHeaders",
cSettings: [
@@ -34,7 +32,7 @@ let package = Package(
),
.binaryTarget(
name: "Stripe3DS2",
- url: "https://github.com/stripe-ios/stripe-3ds2-ios-releases/releases/download/v19.9.9/Stripe3DS2.xcframework.zip",
- checksum: "2efb524df2480cb9d23dafe4b5e9cb0f91440e7d5d8b94fc1ea4c0a6c969f579"),
+ path: "InternalFrameworks/dynamic/Stripe3DS2.xcframework"
+ ),
]
)
diff --git a/Stripe.xcodeproj/project.pbxproj b/Stripe.xcodeproj/project.pbxproj
index 4e5523ab64..880614379f 100644
--- a/Stripe.xcodeproj/project.pbxproj
+++ b/Stripe.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 46;
+ objectVersion = 52;
objects = {
/* Begin PBXBuildFile section */
@@ -179,14 +179,12 @@
31237F2224F7116D00B22785 /* STPIntentActionAlipayHandleRedirect.h in Headers */ = {isa = PBXBuildFile; fileRef = 31237F2124F7116D00B22785 /* STPIntentActionAlipayHandleRedirect.h */; settings = {ATTRIBUTES = (Public, ); }; };
31237F2524F7118B00B22785 /* STPIntentAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 31237F2424F7118B00B22785 /* STPIntentAction.h */; settings = {ATTRIBUTES = (Public, ); }; };
31237F2824F71BA000B22785 /* Stripe3DS2.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 31237F2724F71BA000B22785 /* Stripe3DS2.bundle */; };
- 31237F2E24F7386300B22785 /* libStripe3DS2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 315CB85222E7BD0D00E612A3 /* libStripe3DS2.a */; };
314B6A532384A713001FE708 /* STPKlarnaLineItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 314B6A512384A713001FE708 /* STPKlarnaLineItem.h */; settings = {ATTRIBUTES = (Public, ); }; };
314B6A552384A713001FE708 /* STPKlarnaLineItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 314B6A522384A713001FE708 /* STPKlarnaLineItem.m */; };
314B6A592384ABF9001FE708 /* STPSourceKlarnaDetails.h in Headers */ = {isa = PBXBuildFile; fileRef = 314B6A572384ABF9001FE708 /* STPSourceKlarnaDetails.h */; settings = {ATTRIBUTES = (Public, ); }; };
314B6A5B2384ABF9001FE708 /* STPSourceKlarnaDetails.m in Sources */ = {isa = PBXBuildFile; fileRef = 314B6A582384ABF9001FE708 /* STPSourceKlarnaDetails.m */; };
314F9CC0235E66920059E2F6 /* STPFPXBankStatusResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 314F9CBE235E66920059E2F6 /* STPFPXBankStatusResponse.h */; };
314F9CC2235E66920059E2F6 /* STPFPXBankStatusResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 314F9CBF235E66920059E2F6 /* STPFPXBankStatusResponse.m */; };
- 315CB86222E7D13600E612A3 /* libStripe3DS2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 315CB85222E7BD0D00E612A3 /* libStripe3DS2.a */; };
315CB8C222E7D96000E612A3 /* STDSChallengeStatusReceiver.h in Headers */ = {isa = PBXBuildFile; fileRef = 315CB8A322E7D95E00E612A3 /* STDSChallengeStatusReceiver.h */; settings = {ATTRIBUTES = (Public, ); }; };
315CB8C322E7D96000E612A3 /* STDSRuntimeException.h in Headers */ = {isa = PBXBuildFile; fileRef = 315CB8A422E7D95E00E612A3 /* STDSRuntimeException.h */; settings = {ATTRIBUTES = (Public, ); }; };
315CB8C422E7D96000E612A3 /* STDSButtonCustomization.h in Headers */ = {isa = PBXBuildFile; fileRef = 315CB8A522E7D95E00E612A3 /* STDSButtonCustomization.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -232,6 +230,8 @@
31C8645024DDF2D90015F7DF /* STPPaymentMethodSofortParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 31C8644324DDEF070015F7DF /* STPPaymentMethodSofortParams.h */; settings = {ATTRIBUTES = (Public, ); }; };
31CF06DF2508486F002FED4B /* Stripe.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 31CF06DE2508486F002FED4B /* Stripe.xcassets */; };
31CF06E1250863A9002FED4B /* au_becs_bsb.json in Resources */ = {isa = PBXBuildFile; fileRef = 363E25BA24183B6900070D59 /* au_becs_bsb.json */; };
+ 31F336DD25376C5700874F00 /* Stripe3DS2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 31F336DC25376C5700874F00 /* Stripe3DS2.xcframework */; };
+ 31F336E025377C9700874F00 /* STDSSwiftTryCatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 31F336DF25377C9700874F00 /* STDSSwiftTryCatch.h */; settings = {ATTRIBUTES = (Public, ); }; };
31F5A50922F0EFB10033663B /* STPPaymentMethodFPXParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 31F5A50722F0EFB00033663B /* STPPaymentMethodFPXParams.h */; settings = {ATTRIBUTES = (Public, ); }; };
31F5A50B22F0EFB10033663B /* STPPaymentMethodFPX.h in Headers */ = {isa = PBXBuildFile; fileRef = 31F5A50822F0EFB00033663B /* STPPaymentMethodFPX.h */; settings = {ATTRIBUTES = (Public, ); }; };
31F5A50F22F0EFDC0033663B /* STPPaymentMethodFPX.m in Sources */ = {isa = PBXBuildFile; fileRef = 31F5A50D22F0EFDB0033663B /* STPPaymentMethodFPX.m */; };
@@ -977,7 +977,6 @@
314B6A582384ABF9001FE708 /* STPSourceKlarnaDetails.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = STPSourceKlarnaDetails.m; sourceTree = ""; };
314F9CBE235E66920059E2F6 /* STPFPXBankStatusResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = STPFPXBankStatusResponse.h; sourceTree = ""; };
314F9CBF235E66920059E2F6 /* STPFPXBankStatusResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = STPFPXBankStatusResponse.m; sourceTree = ""; };
- 315CB85222E7BD0D00E612A3 /* libStripe3DS2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libStripe3DS2.a; path = InternalFrameworks/libStripe3DS2.a; sourceTree = ""; };
315CB8A322E7D95E00E612A3 /* STDSChallengeStatusReceiver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = STDSChallengeStatusReceiver.h; path = Stripe/STDSChallengeStatusReceiver.h; sourceTree = ""; };
315CB8A422E7D95E00E612A3 /* STDSRuntimeException.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = STDSRuntimeException.h; path = Stripe/STDSRuntimeException.h; sourceTree = ""; };
315CB8A522E7D95E00E612A3 /* STDSButtonCustomization.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = STDSButtonCustomization.h; path = Stripe/STDSButtonCustomization.h; sourceTree = ""; };
@@ -1022,6 +1021,8 @@
31C8644724DDF2550015F7DF /* STPPaymentMethodSofortTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = STPPaymentMethodSofortTests.m; sourceTree = ""; };
31C8644824DDF2550015F7DF /* STPPaymentMethodSofortParamsTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = STPPaymentMethodSofortParamsTests.m; sourceTree = ""; };
31CF06DE2508486F002FED4B /* Stripe.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Stripe.xcassets; sourceTree = ""; };
+ 31F336DC25376C5700874F00 /* Stripe3DS2.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Stripe3DS2.xcframework; path = InternalFrameworks/static/Stripe3DS2.xcframework; sourceTree = ""; };
+ 31F336DF25377C9700874F00 /* STDSSwiftTryCatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = STDSSwiftTryCatch.h; path = Stripe/STDSSwiftTryCatch.h; sourceTree = ""; };
31F5A50722F0EFB00033663B /* STPPaymentMethodFPXParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = STPPaymentMethodFPXParams.h; path = PublicHeaders/Stripe/STPPaymentMethodFPXParams.h; sourceTree = ""; };
31F5A50822F0EFB00033663B /* STPPaymentMethodFPX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = STPPaymentMethodFPX.h; path = PublicHeaders/Stripe/STPPaymentMethodFPX.h; sourceTree = ""; };
31F5A50D22F0EFDB0033663B /* STPPaymentMethodFPX.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPPaymentMethodFPX.m; sourceTree = ""; };
@@ -1572,7 +1573,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 315CB86222E7D13600E612A3 /* libStripe3DS2.a in Frameworks */,
04E01F7B21A8C37D0061402F /* OHHTTPStubs.framework in Frameworks */,
04E01F7C21A8C37D0061402F /* SWHttpTrafficRecorder.framework in Frameworks */,
045E7C091A5F41DE004751EF /* Stripe.framework in Frameworks */,
@@ -1587,11 +1587,11 @@
files = (
F15232311EA93E6800D65C67 /* Contacts.framework in Frameworks */,
F1D765CE1EDE331500F37005 /* CoreLocation.framework in Frameworks */,
- 31237F2E24F7386300B22785 /* libStripe3DS2.a in Frameworks */,
F116E94C1D83405E0026A52A /* Foundation.framework in Frameworks */,
04533E7D1A6877F400C7E52E /* PassKit.framework in Frameworks */,
F116E94D1D8340640026A52A /* Security.framework in Frameworks */,
F1D64B2E1D87686E001CDB7C /* WebKit.framework in Frameworks */,
+ 31F336DD25376C5700874F00 /* Stripe3DS2.xcframework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1737,7 +1737,7 @@
11C74B9A164043050071C2CA /* Frameworks */ = {
isa = PBXGroup;
children = (
- 315CB85222E7BD0D00E612A3 /* libStripe3DS2.a */,
+ 31F336DC25376C5700874F00 /* Stripe3DS2.xcframework */,
04E01F7921A8C37C0061402F /* OHHTTPStubs.framework */,
04E01F7A21A8C37D0061402F /* SWHttpTrafficRecorder.framework */,
F1D765CD1EDE331500F37005 /* CoreLocation.framework */,
@@ -1809,6 +1809,7 @@
315CB8A422E7D95E00E612A3 /* STDSRuntimeException.h */,
315CB8A722E7D95E00E612A3 /* STDSSelectionCustomization.h */,
315CB8C122E7D96000E612A3 /* STDSStripe3DS2Error.h */,
+ 31F336DF25377C9700874F00 /* STDSSwiftTryCatch.h */,
315CB8A922E7D95F00E612A3 /* STDSTextFieldCustomization.h */,
315CB8B522E7D95F00E612A3 /* STDSThreeDS2Service.h */,
315CB8B322E7D95F00E612A3 /* STDSThreeDSProtocolVersion.h */,
@@ -2959,6 +2960,7 @@
36239BAE2295EA23004FB1A5 /* STP3DS2AuthenticateResponse.h in Headers */,
B61D4B97245767D2001AEBEF /* STPPaymentIntentShippingDetailsAddress.h in Headers */,
C158AB3F1E1EE98900348D01 /* STPSectionHeaderView.h in Headers */,
+ 31F336E025377C9700874F00 /* STDSSwiftTryCatch.h in Headers */,
04EBC7571B7533C300A0E6AE /* STPCardValidator.h in Headers */,
364B75DD24F46354007D9FAB /* STPCardLoadingIndicator.h in Headers */,
366658B0240F20AD00D00354 /* STPPaymentMethodAUBECSDebit.h in Headers */,
diff --git a/Stripe/ExternalResources/Stripe3DS2.bundle/Assets.car b/Stripe/ExternalResources/Stripe3DS2.bundle/Assets.car
index f2cb78239e..f0ecfbb065 100644
Binary files a/Stripe/ExternalResources/Stripe3DS2.bundle/Assets.car and b/Stripe/ExternalResources/Stripe3DS2.bundle/Assets.car differ
diff --git a/Stripe/PublicHeaders/Stripe/STDSSwiftTryCatch.h b/Stripe/PublicHeaders/Stripe/STDSSwiftTryCatch.h
new file mode 100644
index 0000000000..47443368a7
--- /dev/null
+++ b/Stripe/PublicHeaders/Stripe/STDSSwiftTryCatch.h
@@ -0,0 +1,50 @@
+//
+// STDSSwiftTryCatch.h
+//
+// Created by William Falcon on 10/10/14.
+// Copyright (c) 2014 William Falcon. All rights reserved.
+//
+/*
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+ */
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Provides try catch functionality for swift by wrapping around Objective-C
+ */
+@interface STDSSwiftTryCatch : NSObject
+
+/**
+ Provides try catch functionality for swift by wrapping around Objective-C
+ */
++ (void)tryBlock:(void(^)(void))tryBlock catchBlock:(void(^)(NSException*exception))catchBlock finallyBlock:(void(^)(void))finallyBlock;
+/**
+ Throws Objective-C exception with name and reason set to `s`
+ */
++ (void)throwString:(NSString*)s;
+
+/**
+ Throws exception `e`
+ */
++ (void)throwException:(NSException*)e;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/Stripe/PublicHeaders/Stripe/Stripe3DS2.h b/Stripe/PublicHeaders/Stripe/Stripe3DS2.h
index b604b9bb85..9e9f3eba40 100644
--- a/Stripe/PublicHeaders/Stripe/Stripe3DS2.h
+++ b/Stripe/PublicHeaders/Stripe/Stripe3DS2.h
@@ -48,3 +48,5 @@ FOUNDATION_EXPORT const unsigned char Stripe3DS2VersionString[];
#import "STDSNavigationBarCustomization.h"
#import "STDSSelectionCustomization.h"
#import "STDSTextFieldCustomization.h"
+
+#import "STDSSwiftTryCatch.h"
diff --git a/ci_scripts/check_documentation.sh b/ci_scripts/check_documentation.sh
index a5a81b29ec..dbadf0dbf2 100755
--- a/ci_scripts/check_documentation.sh
+++ b/ci_scripts/check_documentation.sh
@@ -40,7 +40,7 @@ jazzy \
--no-clean \
--output "${script_dir}/../docs/docs" \
--skip-documentation \
- --framework-root "${script_dir}/.." \
+ --framework-root "${script_dir}/../Stripe" \
--umbrella-header "${script_dir}/../Stripe/PublicHeaders/Stripe/Stripe.h" \
--objc \
--sdk iphonesimulator \
diff --git a/ci_scripts/export_builds.sh b/ci_scripts/export_builds.sh
index ff6c6c0d31..3fd15bafb5 100755
--- a/ci_scripts/export_builds.sh
+++ b/ci_scripts/export_builds.sh
@@ -21,11 +21,6 @@ if ! command -v xcpretty > /dev/null; then
gem install xcpretty --no-document || die "Executing \`gem install xcpretty\` failed"
fi
-# Verify Xcode 13.0 or later is selected
-if ! xcodebuild -version | grep -q 'Xcode 11' &> /dev/null; then
- die "Please xcode-select a copy of Xcode 11."
-fi
-
# Clean build directory
build_dir="${root_dir}/build"
@@ -85,22 +80,22 @@ fi
# Once Xcode 12 is out, uncomment this section so we start building a Mac slice in our distributed .xcframework again.
# Until then, our recommended strategy for Catalyst users will be Xcode 12 + Swift Package Manager.
#
-# xcodebuild clean archive \
-# -workspace "Stripe.xcworkspace" \
-# -scheme "StripeiOS" \
-# -configuration "Release" \
-# -archivePath "${build_dir}/Stripe-mac.xcarchive" \
-# -sdk macosx \
-# SYMROOT="${build_dir}/framework-mac" \
-# OBJROOT="${build_dir}/framework-mac" \
-# SUPPORTS_MACCATALYST=YES \
-# BUILD_LIBRARIES_FOR_DISTRIBUTION=YES \
-# SKIP_INSTALL=NO \
-# | xcpretty
-# exit_code="${PIPESTATUS[0]}"
-# if [[ "${exit_code}" != 0 ]]; then
-# die "xcodebuild exited with non-zero status code: ${exit_code}"
-# fi
+xcodebuild clean archive \
+ -workspace "Stripe.xcworkspace" \
+ -scheme "StripeiOS" \
+ -configuration "Release" \
+ -archivePath "${build_dir}/Stripe-mac.xcarchive" \
+ -sdk macosx \
+ SYMROOT="${build_dir}/framework-mac" \
+ OBJROOT="${build_dir}/framework-mac" \
+ SUPPORTS_MACCATALYST=YES \
+ BUILD_LIBRARIES_FOR_DISTRIBUTION=YES \
+ SKIP_INSTALL=NO \
+ | xcpretty
+exit_code="${PIPESTATUS[0]}"
+if [[ "${exit_code}" != 0 ]]; then
+ die "xcodebuild exited with non-zero status code: ${exit_code}"
+fi
set -ex
codesign_identity=$(security find-identity -v -p codesigning | grep Y28TH9SHX7 | grep -o -E '\w{40}' | head -n 1)
@@ -110,13 +105,17 @@ if [ -z "$codesign_identity" ]; then
else
codesign -f --deep -s "$codesign_identity" "${build_dir}/Stripe-iOS.xcarchive/Products/Library/Frameworks/Stripe.framework"
codesign -f --deep -s "$codesign_identity" "${build_dir}/Stripe-sim.xcarchive/Products/Library/Frameworks/Stripe.framework"
-
+ codesign -f --deep -s "$codesign_identity" "${build_dir}/Stripe-mac.xcarchive/Products/Library/Frameworks/Stripe.framework"
+fi
xcodebuild -create-xcframework \
-framework "${build_dir}/Stripe-iOS.xcarchive/Products/Library/Frameworks/Stripe.framework" \
-framework "${build_dir}/Stripe-sim.xcarchive/Products/Library/Frameworks/Stripe.framework" \
+ -framework "${build_dir}/Stripe-mac.xcarchive/Products/Library/Frameworks/Stripe.framework" \
-output "${build_dir}/Stripe.xcframework"
+if [ ! -z "$codesign_identity" ]; then
codesign -f --deep -s "$codesign_identity" "${build_dir}/Stripe.xcframework"
+fi
ditto \
-ck \
@@ -125,7 +124,6 @@ else
--keepParent \
"${build_dir}/Stripe.xcframework" \
"${build_dir}/Stripe.xcframework.zip"
-fi
carthage build \
--no-skip-current \
diff --git a/fastlane/Fastfile b/fastlane/Fastfile
index e490441933..389fa46d05 100644
--- a/fastlane/Fastfile
+++ b/fastlane/Fastfile
@@ -45,9 +45,9 @@ platform :ios do
end
lane :linting_tests do
- preflight
- builds
check_docs
+ builds
+ preflight
end
lane :install_tests do
diff --git a/fastlane/README.md b/fastlane/README.md
index ca6cc58fb6..19c279ab34 100644
--- a/fastlane/README.md
+++ b/fastlane/README.md
@@ -31,6 +31,16 @@ fastlane ios all_ci
fastlane ios standard_tests
```
+### ios ui_and_analyze_tests
+```
+fastlane ios ui_and_analyze_tests
+```
+
+### ios linting_tests
+```
+fastlane ios linting_tests
+```
+
### ios install_tests
```
fastlane ios install_tests
@@ -41,9 +51,9 @@ fastlane ios install_tests
fastlane ios preflight
```
-### ios lint
+### ios lint_fauxpas
```
-fastlane ios lint
+fastlane ios lint_fauxpas
```
### ios old_tests
@@ -51,16 +61,16 @@ fastlane ios lint
fastlane ios old_tests
```
+### ios integration_tests
+```
+fastlane ios integration_tests
+```
+
### ios ui_tests
```
fastlane ios ui_tests
```
-### ios legacy_tests_10
-```
-fastlane ios legacy_tests_10
-```
-
### ios legacy_tests_11
```
fastlane ios legacy_tests_11