Skip to content

Releases: braintree/braintree_ios

5.22.0

08 Jun 16:05
Compare
Choose a tag to compare
  • Require Xcode 14.1 (per App Store requirements)
  • Deprecate 3DS v1. Any attempt to use 3DS v1 will now throw an error. See Migrating to 3D Secure 2 for more information.
  • Carthage .frameworks are no longer supported in Xcode 14.1, please replace all Frameworks with XCFrameworks and use --use-xcframeworks for all Carthage steps

6.0.0-beta4

01 Jun 16:15
Compare
Choose a tag to compare
  • Require Xcode 14.1 (per App Store requirements)
  • Move from Braintree to PayPal analytics service
  • Make BTConfiguration extensions internal
  • Breaking Changes
    • Require Xcode 14.3+ and Swift 5.8+
    • Rename BraintreePaymentFlow module to BraintreeLocalPayment
    • BraintreeThreeDSecure
      • Add BTThreeDSecureClient
        • Remove BTPaymentFlowClient+ThreeDSecure extension
        • Move BTPaymentFlowClient+ThreeDSecure and BTThreeDSecureRequest methods to BTThreeDSecureClient
        • Remove BTThreeDSecureError.cannotCastRequest case
      • Remove dependency on BraintreePaymentFlow module
    • BraintreeLocalPayment (formerly named BraintreePaymentFlow)
      • Rename BTPaymentFlowClient to BTLocalPaymentClient
      • Rename BTPaymentFlowError to BTLocalPaymentError
        • Rename BTLocalPaymentError.errorDomain from BTPaymentFlowErrorDomain to BTLocalPaymentErrorDomain
      • Move BTLocalPaymentRequest methods to BTLocalPaymentClient
      • Add BTLocalPaymentError case
        • .webSessionError = 10
    • BraintreePayPal
      • Add BTPayPalError case
        • Add error .webSessionError = 8
    • BraintreeCard
      • Add BTCardError case
        • Add error .fetchConfigurationFailed = 4
    • BraintreeSEPADirectDebit
      • Add BTSEPADirectDebitError case
        • Add error .failedToCreateNonce = 7
      • Remove BTSEPADirectDebitError.presentationContextInvalid

6.0.0-beta3

18 Apr 16:51
Compare
Choose a tag to compare
  • Remove iosBaseSDK, iosDeploymentTarget, iosIdentifierForVendor, deviceAppGeneratedPersistentUuid, and deviceScreenOrientation from BTAnalyticsMetadata
  • Fixes error @objcMembers attribute used without importing module 'Foundation' in Xcode 14.3+
  • Add async/await support back to all public Swift methods
  • Convert BraintreeVenmo module to Swift
  • Convert BraintreeCard module to Swift
  • Convert BraintreeThreeDSecure module to Swift
  • Convert BraintreePaymentFlow module to Swift
  • Breaking Changes
    • BraintreePaymentFlow
      • Replaced SFSafariViewController with ASWebAuthenticationSession
      • Removed BTViewControllerPresentingDelegate protocol and correlating methods
      • Rename BTLocalPaymentRequest.shippingAddressRequired to isShippingAddressRequired
      • Remove BTPaymentFlowErrorDomain global constant & BTPaymentFlowErrorType
      • Add BTPaymentFlowError cases
        • .noAccountData = 4
        • .failedToCreateNonce = 6
        • .fetchConfigurationFailed = 7
        • .missingRedirectURL = 8
        • .missingReturnURL = 9
      • Update BTPaymentFlowError values
        • .integration = 3
    • BraintreeApplePay
      • Rename BTApplePayClient.tokenizeApplePay(_:completion:) to BTApplePayClient.tokenize(_:completion:)
      • Rename BTApplePayClient.paymentRequest() to BTApplePayClient.makePaymentRequest()
      • Remove BTApplePayErrorDomain global constant
      • Remove BTApplePayErrorType
      • Make BTApplePayCardNonce initializer internal
    • BraintreeDataCollector
      • Update PPRiskMagnes to static XCFramework
    • BraintreeVenmo
      • Rename BTVenmoAccountNonce.externalId to BTVenmoAccountNonce.externalID
      • Remove BTVenmoErrorDomain global constant
      • Renamed BTVenmoClient.tokenizeVenmoAccount(with:completion:) to BTVenmoClient.tokenize(_:completion:)
      • Renamed BTVenmoClient.isiOSAppAvailableForAppSwitch() to BTVenmoClient.isVenmoAppInstalled()
      • Add new BTVenmoError
        • .invalidBodyReturned
        • .invalidRedirectURL
        • .fetchConfigurationFailed
      • Removed BTVenmoError.integration and BTVenmoError.requestURL
    • BraintreeAmericanExpress
      • Rename BTAmericanExpressClient.getRewardsBalance(forNonce:currencyIsoCode:completion:) to BTAmericanExpressClient.getRewardsBalance(forNonce:currencyISOCode:completion:)
    • BraintreeSEPADirectDebit
      • Rename BTSEPADirectDebitClient.tokenize(request:completion:) to BTSEPADirectDebitClient.tokenize(_:completion:)
    • BraintreeCard
      • Make BTAuthenticationInsight initializer internal
      • Remove BTCardClientErrorDomain global constant
      • Rename BTCardClient.tokenizeCard(_:completion) to BTCardClient.tokenize(_:completion:)
      • Rename BTCardClientErrorType to BTCardError
        • Remove unused BTCardClientErrorType.paymentOptionNotEnabled
        • Update enum values:
          • .unknown = 0
          • .integration = 1
          • .customerInputInvalid = 2
          • .cardAlreadyExists = 3
    • BraintreeThreeDSecure
      • 3D Secure version 1 is no longer supported
        • Removed the following: BTThreeDSecureV1UICustomization class, BTThreeDSecureRequest.v1UICustomization property, and BTThreeDSecureVersion enum
          • All 3D Secure requests will use version 2
        • Rename BTThreeDSecureV2ButtonType enum cases to: .verify, .continue, .next, .cancel, and .resend
        • Remove BTThreeDSecureFlowErrorDomain global constant
        • Add new BTThreeDSecureError
          • Add error .noBodyReturned = 4
          • Add error .canceled = 5
          • Add error .invalidAPIClient = 6
          • Add error .cannotCastRequest= 7
          • Add error .jsonSerializationFailure = 8

5.21.0

14 Mar 15:33
Compare
Choose a tag to compare
  • Add missed deprecation warnings to BTCardRequest Union Pay properties
  • Update Cardinal SDK to version 2.2.5-6
  • BraintreePayPalNativeCheckout (BETA)
    • Expose payerID property on BTPayPalNativeCheckoutAccountNonce publicly
    • Expose all properties on BTPayPalNativeCheckoutAccountNonce to Objective-C

5.20.1

31 Jan 15:44
Compare
Choose a tag to compare
  • BraintreePayPalNativeCheckout (BETA)
    • Fix bug where some request dictionaries were being constructed incorrectly
    • Fix bug where passing BTPayPalNativeVaultRequest.shippingAddressOverride as nil was incorrectly throwing an error

6.0.0-beta2

30 Jan 17:00
Compare
Choose a tag to compare
  • Convert BraintreePayPal module to Swift
  • Breaking Changes
    • BraintreePayPal
      • Rename BTPayPalRequest.riskCorrelationId to BTPayPalRequest.riskCorrelationID
      • Removed BTPayPalRequest.activeWindow property
        • The window will be set to the first window or a new ASPresentationAnchor if the first window is nil
      • Update BTPayPalRequestLandingPageType enum default case to .none
        • Update enum values
          • .none = 0
          • .login = 1
          • .billing = 2
      • BTPayPalRequestUserAction
        • Update enum cases to .none and .payNow
        • Update enum values
          • .none = 0
          • .payNow = 1
      • Update BTPayPalRequestIntent enum values
        • .authorize = 0
        • .sale = 1
        • .order = 2
      • Update BTPayPalLineItemKind enum values
        • .debit = 0
        • .credit = 1
      • Create BTPayPalLocaleCode enum
      • BTPayPalRequest.localeCode now uses the BTPayPalLocaleCode enum instead of a String
      • Renamed and replaced BTPayPalClient.tokenizePayPalAccount with two methods called tokenize() taking in requests of either BTPayPalCheckoutRequest or BTPayPalVaultRequest
      • Removed BTPayPalErrorType
      • Replaced BTPayPalErrorDomain global constant with BTPayPalError.errorDomain
      • Added BTPayPalError
        • .disabled
        • .canceled
        • .fetchConfigurationFailed
        • .httpPostRequestError
        • .invalidURL
        • .asWebAuthenticationSessionURLInvalid
        • .invalidURLAction
        • .failedToCreateNonce
      • Make BTPayPalNonce initializer internal
    • BraintreePayPalNativeCheckout (BETA)
      • Renamed and replaced BTPayPalNativeCheckoutClient.tokenizePayPalAccount with two methods called tokenize() taking in requests of either BTPayPalNativeCheckoutRequest or BTPayPalNativeVaultRequest
      • BTPayPalNativeCheckoutRequest now takes in an intent of type BTPayPalRequestIntent instead of BTPayPalNativeRequestIntent
      • BTPayPalNativeCheckoutRequest.localeCode now uses the BTPayPalLocaleCode enum instead of a String value
    • BraintreeUnionPay
      • Remove BraintreeUnionPay module
        • UnionPay cards can now be processed as regular cards (through the BraintreeCard module) due to their partnership with Discover
    • BraintreeCore
      • Remove BTConfiguration+Extensions.isUnionPayEnabled property
      • Remove BTPreferredPaymentMethods and BTPreferredPaymentMethodResult
    • BraintreeSEPADirectDebit
      • The tokenize method no longer takes in a context parameter
      • Merchants no longer need to conform to the ASWebAuthenticationPresentationContextProviding protocol

5.20.0

24 Jan 16:27
Compare
Choose a tag to compare
  • BraintreeThreeDSecure
    • Add requestedExemptionType to BTThreeDSecureRequest

5.19.0

19 Dec 16:12
Compare
Choose a tag to compare
  • BraintreePayPalNativeCheckout (BETA)
    • Update NativeCheckout version from 0.108.0 to 0.110.0
    • Fix issue with multiple clientIDs causing incorrect web fallback

6.0.0-beta1

13 Dec 19:53
Compare
Choose a tag to compare
  • Convert BraintreeCore module to Swift
  • Convert BraintreeAmericanExpress module to Swift
  • Convert BraintreeDataCollector module to Swift
  • Removed PayPalDataCollector module in favor of single BraintreeDataCollector
  • Kount is no longer supported through the SDK
  • Breaking Changes
    • Bump minimum supported deployment target to iOS 14+
    • Require Carthage 0.38.0+ and xcframeworks via carthage update --use-xcframeworks
    • Require Xcode 14
      • Bump Swift Tools Version to 5.7 for CocoaPods & SPM
    • BraintreeCore
      • Renamed BTAppContextSwitchDriver protocol to `BTAppContextSwitchClient
      • BTViewControllerPresentingDelegate protocol now takes in the client parameter instead of driver
      • Renamed BTClientMetadataSourceType to BTClientMetadataSource
      • Renamed BTClientMetadataIntegrationType to BTClientMetadataIntegration
      • Removed static wrapper methods from BTAppContextSwitcher
      • Replaced BTLogger with BTLogLevel and BTLogLevelDescription
      • Remove BTJSONErrorDomain global constant
      • Remove BTJSONErrorCode
      • Remove BTAPIClientErrorDomain global constant
      • Add BTClientTokenErrors
        • .invalidAuthorizationFingerprint
        • .invalidConfigURL
        • .invalidFormat
        • .unsupportedVersion
        • .failedDecoding
      • Add BTHTTPErrorCodes
        • .httpResponseInvalid
        • .urlStringInvalid
        • .clientApiUrlInvalid
        • .invalidAuthorizationFingerprint
      • Renamed BTCardNetworkUKMaestro to BTCardNetworkUkMaestro in BTCardNetwork enum
    • BraintreeVenmo
      • Renamed BTVenmoDriver to BTVenmoClient
      • Renamed BTVenmoDriverErrorDomain to BTVenmoErrorDomain
      • Renamed BTVenmoDriverErrorType to BTVenmoErrorType
      • All errors are now prefixed with BTVenmoError instead of BTVenmoDriverError
      • Remove .unspecified case from BTVenmoPaymentMethodUsage enum
      • Require paymentMethodUsage param in BTVenmoRequest initializer
      • Move category extension of BTConfiguration into BraintreeCore
    • BraintreePayPal
      • Renamed BTPayPalDriver to BTPayPalClient
      • Renamed BTPayPalDriverErrorDomain to BTPayPalErrorDomain
      • Renamed BTPayPalDriverErrorType to BTPayPalErrorType
      • All errors are now prefixed with BTPayPalError instead of BTPayPalDriverError
      • Remove BTPayPalDriver.requestOneTimePayment in favor of BTPayPalClient.tokenizePayPalAccount
      • Remove BTPayPalDriver.requestBillingAgreement in favor of BTPayPalClient.tokenizePayPalAccount
      • Move category extension of BTConfiguration into BraintreeCore
    • BraintreeAmericanExpress
      • Remove BTAmericanExpressErrorDomain global constant
      • Remove BTAmericanExpressErrorType
      • Make BTAmericanExpressRewardsBalance initializer private
    • BraintreePaymentFlow
      • Renamed BTPaymentFlowDriver to BTPaymentFlowClient
      • Renamed BTPaymentFlowDriverErrorDomain to BTPaymentFlowErrorDomain
      • Renamed BTPaymentFlowDriverErrorType to BTPaymentFlowErrorType
      • All errors are now prefixed with BTPaymentFlowError instead of BTPaymentFlowDriverError
      • Renamed BTPaymentFlowDriverDelegate protocol to BTPaymentFlowClientDelegate
      • handleRequest in delegate protocol now takes in paymentClientDelegate parameter instead of paymentDriverDelegate
      • Move category extension of BTConfiguration into BraintreeCore
    • PayPalDataCollector
      • Removed PayPalDataCollector module in favor of single BraintreeDataCollector
    • BraintreeDataCollector
      • Kount is no longer supported through the SDK
      • Combine PayPalDataCollector and BraintreeDataCollector into one module to create single entrypoint for data collection
      • Merchants should use the new collectDeviceData function for data collection which will now return a completion with either device data or an error
    • BraintreeApplePay
      • Move category extension of BTConfiguration into BraintreeCore
    • BraintreeUnionPay
      • Move category extension of BTConfiguration into BraintreeCore
    • BraintreeThreeDSecure
      • Move category extension of BTConfiguration into BraintreeCore

5.18.0

13 Dec 16:50
Compare
Choose a tag to compare
  • Deprecate Kount Custom integrations
  • Deprecate the BraintreeUnionPay module and containing classes
    • UnionPay cards can now be processed as regular cards (through the BraintreeCard module) due to their partnership with Discover