From 0d2c39acb2e008467c23366fc5cf0a1a07733293 Mon Sep 17 00:00:00 2001 From: Naoufal Kadhom Date: Thu, 27 Jul 2017 18:10:17 -0700 Subject: [PATCH] Switches to monorepo and adds cli, stripe-addon, and braintree-addon. (#10) * Setup lerna project * Move react-native-payments into tmp folder * Add react-native-payments * Add stripe-addon to stripe example * Update stripe example * Add react-native-payments-addon-braintree * Update stripe addon description * Update addon versions * Update gitignore * Add test project * Move project from data to ios * Add cli commands * Add cli configs to addons * Update example dependencies * Add merging of inputPaths and outputPaths on buildScriptPhases * Add main to package.json of cli * Add bin to react-native-payments * Bump versions * Update fix path bugs on cli * Bump braintree version * add npmignore to cli * Bump react-native-package version * Fix double .framework bug * Add messaging to cli * Bump packages * Remove framework headers from rnp * Add readme to cli * Add README to addons * Update main README.md * Move README to root * Update travis.yml * Update package jsons --- .gitignore | 36 +- .travis.yml | 5 +- README.md | 123 +- .../ios/Frameworks/Braintree/.gitattributes | 1 - .../Braintree/.github/issue_template.md | 10 - .../ios/Frameworks/Braintree/.gitignore | 36 - .../ios/Frameworks/Braintree/.ruby-gemset | 1 - .../ios/Frameworks/Braintree/.ruby-version | 1 - .../ios/Frameworks/Braintree/.swift-version | 1 - .../ios/Frameworks/Braintree/.travis.yml | 27 - .../Frameworks/Braintree/ACKNOWLEDGEMENTS.md | 17 - .../Frameworks/Braintree/Braintree.podspec | 121 - .../Braintree.xcodeproj/project.pbxproj | 7492 ----------------- ...0AC71B63-8A4C-42F9-AD7C-1C7EF957B618.plist | 22 - .../Info.plist | 40 - .../xcshareddata/xcschemes/Braintree.xcscheme | 80 - .../xcschemes/Braintree3DSecure.xcscheme | 80 - .../xcschemes/BraintreeApplePay.xcscheme | 80 - .../xcschemes/BraintreeCard.xcscheme | 80 - .../xcschemes/BraintreeCore.xcscheme | 80 - .../xcschemes/BraintreeDataCollector.xcscheme | 80 - .../xcschemes/BraintreePayPal.xcscheme | 80 - .../xcschemes/BraintreeUI.xcscheme | 80 - .../xcschemes/BraintreeUnionPay.xcscheme | 80 - .../xcschemes/BraintreeVenmo.xcscheme | 80 - .../xcshareddata/xcschemes/Demo.xcscheme | 130 - .../xcschemes/IntegrationTests.xcscheme | 56 - ...PayPalDataCollector-StaticLibrary.xcscheme | 80 - .../xcschemes/PayPalDataCollector.xcscheme | 80 - .../PayPalOneTouch-StaticLibrary.xcscheme | 80 - .../xcschemes/PayPalOneTouch.xcscheme | 80 - .../xcschemes/PayPalUtils.xcscheme | 80 - .../xcshareddata/xcschemes/UITests.xcscheme | 56 - .../xcshareddata/xcschemes/UnitTests.xcscheme | 57 - .../contents.xcworkspacedata | 10 - .../xcshareddata/WorkspaceSettings.xcsettings | 8 - .../Braintree/Braintree/API/@Public/README.md | 4 - ...ThreeDSecureAuthenticationViewController.h | 106 - ...ThreeDSecureAuthenticationViewController.m | 122 - .../BTThreeDSecureCardNonce.m | 45 - .../Braintree3DSecure/BTThreeDSecureDriver.m | 233 - .../BTThreeDSecureDriver_Internal.h | 14 - .../Braintree3DSecure/BTThreeDSecureErrors.m | 5 - .../BTThreeDSecureLookupResult.h | 16 - .../BTThreeDSecureLookupResult.m | 9 - .../BTThreeDSecureResponse.h | 11 - .../BTThreeDSecureResponse.m | 9 - .../Braintree3DSecure/BTWebViewController.h | 25 - .../Braintree3DSecure/BTWebViewController.m | 216 - .../BTThreeDSecureLocalizedString.h | 10 - .../BTThreeDSecureLocalizedString.m | 29 - .../da.lproj/Three-D-Secure.strings | Bin 424 -> 0 bytes .../de.lproj/Three-D-Secure.strings | Bin 426 -> 0 bytes .../en.lproj/Three-D-Secure.strings | Bin 420 -> 0 bytes .../en_AU.lproj/Three-D-Secure.strings | Bin 420 -> 0 bytes .../en_CA.lproj/Three-D-Secure.strings | Bin 420 -> 0 bytes .../en_GB.lproj/Three-D-Secure.strings | Bin 420 -> 0 bytes .../es.lproj/Three-D-Secure.strings | Bin 434 -> 0 bytes .../es_ES.lproj/Three-D-Secure.strings | Bin 434 -> 0 bytes .../fr.lproj/Three-D-Secure.strings | Bin 422 -> 0 bytes .../fr_CA.lproj/Three-D-Secure.strings | Bin 422 -> 0 bytes .../fr_FR.lproj/Three-D-Secure.strings | Bin 422 -> 0 bytes .../he.lproj/Three-D-Secure.strings | Bin 424 -> 0 bytes .../it.lproj/Three-D-Secure.strings | Bin 422 -> 0 bytes .../nb.lproj/Three-D-Secure.strings | Bin 420 -> 0 bytes .../nl.lproj/Three-D-Secure.strings | Bin 426 -> 0 bytes .../pl.lproj/Three-D-Secure.strings | Bin 420 -> 0 bytes .../pt.lproj/Three-D-Secure.strings | Bin 424 -> 0 bytes .../ru.lproj/Three-D-Secure.strings | Bin 420 -> 0 bytes .../sv.lproj/Three-D-Secure.strings | Bin 420 -> 0 bytes .../tr.lproj/Three-D-Secure.strings | Bin 424 -> 0 bytes .../zh-Hans.lproj/Three-D-Secure.strings | Bin 412 -> 0 bytes .../Public/BTThreeDSecureCardNonce.h | 25 - .../Public/BTThreeDSecureDriver.h | 102 - .../Public/BTThreeDSecureErrors.h | 27 - .../Public/Braintree3DSecure.h | 14 - .../BraintreeApplePay/BTApplePayCardNonce.m | 5 - .../BraintreeApplePay/BTApplePayClient.m | 169 - .../BTApplePayClient_Internal.h | 9 - .../BTConfiguration+ApplePay.m | 47 - .../Public/BTApplePayCardNonce.h | 14 - .../Public/BTApplePayClient.h | 57 - .../Public/BTConfiguration+ApplePay.h | 40 - .../Public/BraintreeApplePay.h | 14 - .../Braintree/BraintreeCard/BTCard.m | 111 - .../Braintree/BraintreeCard/BTCardClient.m | 163 - .../BraintreeCard/BTCardClient_Internal.h | 19 - .../Braintree/BraintreeCard/BTCardNonce.m | 74 - .../BraintreeCard/BTCardNonce_Internal.h | 16 - .../Braintree/BraintreeCard/BTCardRequest.m | 15 - .../Braintree/BraintreeCard/BTCard_Internal.h | 8 - .../Braintree/BraintreeCard/Public/BTCard.h | 92 - .../BraintreeCard/Public/BTCardClient.h | 64 - .../BraintreeCard/Public/BTCardNonce.h | 31 - .../BraintreeCard/Public/BTCardRequest.h | 37 - .../BraintreeCard/Public/BraintreeCard.h | 15 - .../Braintree/BraintreeCore/BTAPIClient.m | 328 - .../BraintreeCore/BTAPIClient_Internal.h | 43 - .../BraintreeCore/BTAPIPinnedCertificates.h | 21 - .../BraintreeCore/BTAPIPinnedCertificates.m | 1022 --- .../BraintreeCore/BTAnalyticsMetadata.h | 7 - .../BraintreeCore/BTAnalyticsMetadata.m | 253 - .../BraintreeCore/BTAnalyticsService.h | 56 - .../BraintreeCore/BTAnalyticsService.m | 274 - .../Braintree/BraintreeCore/BTAppSwitch.m | 71 - .../BraintreeCore/BTClientMetadata.m | 102 - .../Braintree/BraintreeCore/BTClientToken.m | 191 - .../Braintree/BraintreeCore/BTConfiguration.m | 23 - .../Braintree/BraintreeCore/BTErrors.m | 5 - .../Braintree/BraintreeCore/BTHTTP.h | 87 - .../Braintree/BraintreeCore/BTHTTP.m | 384 - .../Braintree/BraintreeCore/BTHTTPErrors.m | 7 - .../Braintree/BraintreeCore/BTJSON.m | 257 - .../Braintree/BraintreeCore/BTKeychain.h | 12 - .../Braintree/BraintreeCore/BTKeychain.m | 98 - .../Braintree/BraintreeCore/BTLogger.m | 85 - .../BraintreeCore/BTLogger_Internal.h | 19 - .../BraintreeCore/BTPaymentMethodNonce.m | 34 - .../BTPaymentMethodNonceParser.m | 61 - .../Braintree/BraintreeCore/BTPostalAddress.m | 24 - .../BraintreeCore/BTTokenizationService.m | 74 - .../Braintree/BraintreeCore/BTURLUtils.h | 9 - .../Braintree/BraintreeCore/BTURLUtils.m | 87 - .../BraintreeCore/Braintree-Version.h | 1 - .../Braintree/BraintreeCore/Info.plist | 26 - .../BraintreeCore/Public/BTAPIClient.h | 112 - .../BraintreeCore/Public/BTAppSwitch.h | 171 - .../BraintreeCore/Public/BTClientMetadata.h | 60 - .../BraintreeCore/Public/BTClientToken.h | 50 - .../BraintreeCore/Public/BTConfiguration.h | 31 - .../Braintree/BraintreeCore/Public/BTEnums.h | 18 - .../Braintree/BraintreeCore/Public/BTErrors.h | 8 - .../BraintreeCore/Public/BTHTTPErrors.h | 34 - .../Braintree/BraintreeCore/Public/BTJSON.h | 127 - .../Braintree/BraintreeCore/Public/BTLogger.h | 42 - .../Public/BTPaymentMethodNonce.h | 71 - .../Public/BTPaymentMethodNonceParser.h | 59 - .../BraintreeCore/Public/BTPostalAddress.h | 44 - .../Public/BTTokenizationService.h | 76 - .../BTViewControllerPresentingDelegate.h | 34 - .../BraintreeCore/Public/BraintreeCore.h | 28 - .../BraintreeDataCollector/BTDataCollector.m | 276 - .../BTDataCollector_Internal.h | 16 - .../Kount/KDataCollector.h | 103 - .../Kount/libDeviceCollectorLibrary.a | Bin 1374128 -> 0 bytes .../Public/BTConfiguration+DataCollector.h | 19 - .../Public/BTConfiguration+DataCollector.m | 13 - .../Public/BTDataCollector.h | 195 - .../Public/BraintreeDataCollector.h | 8 - .../BraintreeDataCollector/README.md | 5 - .../Braintree/BraintreeDropIn.podspec | 40 - .../BraintreePayPal/BTConfiguration+PayPal.m | 13 - .../BraintreePayPal/BTPayPalAccountNonce.m | 44 - .../BTPayPalAccountNonce_Internal.h | 40 - .../BraintreePayPal/BTPayPalCreditFinancing.m | 34 - .../BTPayPalCreditFinancingAmount.m | 20 - .../BraintreePayPal/BTPayPalDriver.m | 963 --- .../BraintreePayPal/BTPayPalDriver_Internal.h | 81 - .../BraintreePayPal/BTPayPalRequest.m | 29 - .../BraintreePayPal/BTPayPalRequestFactory.h | 33 - .../BraintreePayPal/BTPayPalRequestFactory.m | 45 - .../PayPalDataCollector/Info.plist | 26 - .../PayPalDataCollector/PPDataCollector.m | 71 - .../PPDataCollector_Internal.h | 33 - .../Public/PPDataCollector.h | 43 - .../Public/PayPalDataCollector.h | 17 - .../Risk/PPRCClientMetadataIDProvider.h | 57 - .../Risk/libPPRiskComponent.a | Bin 4517720 -> 0 bytes .../PayPalOneTouch/Analytics/PPFPTIData.h | 49 - .../PayPalOneTouch/Analytics/PPFPTIData.m | 97 - .../PayPalOneTouch/Analytics/PPFPTITracker.h | 55 - .../PayPalOneTouch/Analytics/PPFPTITracker.m | 79 - .../Analytics/PPOTAnalyticsDefines.h | 28 - .../Analytics/PPOTAnalyticsTracker.h | 31 - .../Analytics/PPOTAnalyticsTracker.m | 348 - .../PPDefaultConfigurationJSON.h | 1730 ---- .../Configuration/PPOTConfiguration.h | 91 - .../Configuration/PPOTConfiguration.m | 574 -- .../Configuration/otc-config.ios.json | 858 -- .../BraintreePayPal/PayPalOneTouch/Info.plist | 26 - .../Models/PPOTAppSwitchResponse.h | 73 - .../Models/PPOTAppSwitchResponse.m | 218 - .../PayPalOneTouch/Models/PPOTAppSwitchUtil.h | 107 - .../PayPalOneTouch/Models/PPOTAppSwitchUtil.m | 184 - .../Models/PPOTAuthorizationRequest.m | 180 - .../PPOTAuthorizationRequest_Internal.h | 19 - .../Models/PPOTBillingAgreementRequest.m | 79 - .../Models/PPOTCheckoutAppSwitchRequest.h | 12 - .../Models/PPOTCheckoutAppSwitchRequest.m | 23 - .../Models/PPOTCheckoutBrowserSwitchRequest.h | 12 - .../Models/PPOTCheckoutBrowserSwitchRequest.m | 40 - .../Models/PPOTCheckoutRequest.m | 130 - .../Models/PPOTCheckoutRequest_Internal.h | 42 - .../Models/PPOTCheckoutSwitchRequest.h | 14 - .../Models/PPOTCheckoutSwitchRequest.m | 12 - .../PayPalOneTouch/Models/PPOTCore.m | 143 - .../PayPalOneTouch/Models/PPOTCore_Internal.h | 21 - .../PayPalOneTouch/Models/PPOTError.h | 26 - .../PayPalOneTouch/Models/PPOTError.m | 20 - .../Models/PPOTOAuth2AppSwitchRequest.h | 12 - .../Models/PPOTOAuth2AppSwitchRequest.m | 22 - .../Models/PPOTOAuth2BrowserSwitchRequest.h | 41 - .../Models/PPOTOAuth2BrowserSwitchRequest.m | 91 - .../Models/PPOTOAuth2SwitchRequest.h | 18 - .../Models/PPOTOAuth2SwitchRequest.m | 40 - .../Models/PPOTPersistentRequestData.h | 31 - .../Models/PPOTPersistentRequestData.m | 76 - .../PayPalOneTouch/Models/PPOTRequest.m | 247 - .../Models/PPOTRequestFactory.m | 73 - .../Models/PPOTRequest_Internal.h | 62 - .../PayPalOneTouch/Models/PPOTResult.m | 192 - .../Models/PPOTResult_Internal.h | 19 - .../PayPalOneTouch/Models/PPOTSwitchRequest.h | 43 - .../PayPalOneTouch/Models/PPOTSwitchRequest.m | 104 - .../PayPalOneTouch/Public/PPOTCore.h | 85 - .../PayPalOneTouch/Public/PPOTRequest.h | 146 - .../Public/PPOTRequestFactory.h | 92 - .../PayPalOneTouch/Public/PPOTResult.h | 60 - .../PayPalOneTouch/Public/PayPalOneTouch.h | 18 - .../BraintreePayPal/PayPalUtils/Info.plist | 26 - .../BraintreePayPal/PayPalUtils/PPOTDevice.m | 114 - .../PayPalUtils/PPOTEncryptionHelper.m | 248 - .../PayPalUtils/PPOTJSONHelper.m | 90 - .../BraintreePayPal/PayPalUtils/PPOTMacros.m | 20 - .../PayPalUtils/PPOTPinnedCertificates.m | 350 - .../PayPalUtils/PPOTSimpleKeychain.m | 128 - .../BraintreePayPal/PayPalUtils/PPOTString.m | 237 - .../BraintreePayPal/PayPalUtils/PPOTTime.m | 63 - .../PayPalUtils/PPOTURLSession.m | 134 - .../PayPalUtils/Public/PPOTDevice.h | 37 - .../PayPalUtils/Public/PPOTEncryptionHelper.h | 46 - .../PayPalUtils/Public/PPOTJSONHelper.h | 24 - .../PayPalUtils/Public/PPOTMacros.h | 68 - .../Public/PPOTPinnedCertificates.h | 19 - .../PayPalUtils/Public/PPOTSimpleKeychain.h | 47 - .../PayPalUtils/Public/PPOTString.h | 58 - .../PayPalUtils/Public/PPOTTime.h | 25 - .../PayPalUtils/Public/PPOTURLSession.h | 42 - .../PayPalUtils/Public/PPOTVersion.h | 11 - .../PayPalUtils/Public/PayPalUtils.h | 18 - .../Public/BTConfiguration+PayPal.h | 15 - .../Public/BTPayPalAccountNonce.h | 60 - .../Public/BTPayPalCreditFinancing.h | 54 - .../BraintreePayPal/Public/BTPayPalDriver.h | 254 - .../BraintreePayPal/Public/BTPayPalRequest.h | 154 - .../BraintreePayPal/Public/BraintreePayPal.h | 18 - .../BraintreeUI/Drop-In/BTDropInContentView.h | 51 - .../BraintreeUI/Drop-In/BTDropInContentView.m | 325 - .../BraintreeUI/Drop-In/BTDropInErrorAlert.h | 21 - .../BraintreeUI/Drop-In/BTDropInErrorAlert.m | 89 - .../BraintreeUI/Drop-In/BTDropInErrorState.h | 29 - .../BraintreeUI/Drop-In/BTDropInErrorState.m | 64 - ...TDropInSelectPaymentMethodViewController.h | 37 - ...TDropInSelectPaymentMethodViewController.m | 78 - .../BraintreeUI/Drop-In/BTDropInUtil.h | 15 - .../BraintreeUI/Drop-In/BTDropInUtil.m | 34 - .../Drop-In/BTDropInViewController.m | 721 -- .../Drop-In/BTDropInViewController_Internal.h | 14 - .../BraintreeUI/Drop-In/BTPaymentButton.m | 362 - .../Drop-In/BTPaymentButton_Internal.h | 12 - .../Localization/BTDropInLocalizedString.h | 21 - .../Localization/BTDropInLocalizedString.m | 74 - .../Localization/da.lproj/Drop-In.strings | Bin 3918 -> 0 bytes .../Localization/de.lproj/Drop-In.strings | Bin 4130 -> 0 bytes .../Localization/en.lproj/Drop-In.strings | Bin 3926 -> 0 bytes .../Localization/en_AU.lproj/Drop-In.strings | Bin 3924 -> 0 bytes .../Localization/en_CA.lproj/Drop-In.strings | Bin 3926 -> 0 bytes .../Localization/en_GB.lproj/Drop-In.strings | Bin 3924 -> 0 bytes .../Localization/es.lproj/Drop-In.strings | Bin 4014 -> 0 bytes .../Localization/es_ES.lproj/Drop-In.strings | Bin 3980 -> 0 bytes .../Localization/fr.lproj/Drop-In.strings | Bin 4032 -> 0 bytes .../Localization/fr_CA.lproj/Drop-In.strings | Bin 4054 -> 0 bytes .../Localization/fr_FR.lproj/Drop-In.strings | Bin 3982 -> 0 bytes .../Localization/he.lproj/Drop-In.strings | Bin 3858 -> 0 bytes .../Localization/it.lproj/Drop-In.strings | Bin 3992 -> 0 bytes .../Localization/nb.lproj/Drop-In.strings | Bin 3964 -> 0 bytes .../Localization/nl.lproj/Drop-In.strings | Bin 4008 -> 0 bytes .../Localization/pl.lproj/Drop-In.strings | Bin 3970 -> 0 bytes .../Localization/pt.lproj/Drop-In.strings | Bin 4038 -> 0 bytes .../Localization/ru.lproj/Drop-In.strings | Bin 4040 -> 0 bytes .../Localization/sv.lproj/Drop-In.strings | Bin 3940 -> 0 bytes .../Localization/tr.lproj/Drop-In.strings | Bin 3972 -> 0 bytes .../zh-Hans.lproj/Drop-In.strings | Bin 3700 -> 0 bytes .../BraintreeUI/Icons/BTUICardAmEx.svg | 29 - .../BraintreeUI/Icons/BTUICardCVVBack.svg | 16 - .../BraintreeUI/Icons/BTUICardCVVFront.svg | 47 - .../BraintreeUI/Icons/BTUICardDinersClub.svg | 15 - .../BraintreeUI/Icons/BTUICardDiscover.svg | 23 - .../BraintreeUI/Icons/BTUICardJCB.svg | 45 - .../BraintreeUI/Icons/BTUICardMaestro.svg | 22 - .../BraintreeUI/Icons/BTUICardMasterCard.svg | 65 - .../BraintreeUI/Icons/BTUICardUnknown.svg | 42 - .../BraintreeUI/Icons/BTUICardVisa.svg | 18 - .../Icons/BTUIPayPalMonogramFullWordmark.svg | 51 - .../Localization/BTUILocalizedString.h | 33 - .../Localization/BTUILocalizedString.m | 108 - .../Localization/da.lproj/UI.strings | Bin 2982 -> 0 bytes .../Localization/de.lproj/UI.strings | Bin 2974 -> 0 bytes .../Localization/en.lproj/UI.strings | Bin 3134 -> 0 bytes .../Localization/en_AU.lproj/UI.strings | Bin 2962 -> 0 bytes .../Localization/en_CA.lproj/UI.strings | Bin 2970 -> 0 bytes .../Localization/en_GB.lproj/UI.strings | Bin 2962 -> 0 bytes .../Localization/es.lproj/UI.strings | Bin 3028 -> 0 bytes .../Localization/es_ES.lproj/UI.strings | Bin 2994 -> 0 bytes .../Localization/fr.lproj/UI.strings | Bin 3012 -> 0 bytes .../Localization/fr_CA.lproj/UI.strings | Bin 2978 -> 0 bytes .../Localization/fr_FR.lproj/UI.strings | Bin 2976 -> 0 bytes .../Localization/he.lproj/UI.strings | Bin 3000 -> 0 bytes .../Localization/it.lproj/UI.strings | Bin 2982 -> 0 bytes .../Localization/nb.lproj/UI.strings | Bin 2964 -> 0 bytes .../Localization/nl.lproj/UI.strings | Bin 2972 -> 0 bytes .../Localization/pl.lproj/UI.strings | Bin 2990 -> 0 bytes .../Localization/pt.lproj/UI.strings | Bin 2982 -> 0 bytes .../Localization/ru.lproj/UI.strings | Bin 2984 -> 0 bytes .../Localization/sv.lproj/UI.strings | Bin 2964 -> 0 bytes .../Localization/tr.lproj/UI.strings | Bin 2976 -> 0 bytes .../Localization/zh-Hans.lproj/UI.strings | Bin 2924 -> 0 bytes .../BraintreeUI/Models/BTPaymentRequest.m | 32 - .../Models/BTUICardExpirationValidator.h | 9 - .../Models/BTUICardExpirationValidator.m | 43 - .../BraintreeUI/Models/BTUICardExpiryFormat.h | 10 - .../BraintreeUI/Models/BTUICardExpiryFormat.m | 51 - .../BraintreeUI/Models/BTUICardType.h | 64 - .../BraintreeUI/Models/BTUICardType.m | 227 - .../Braintree/BraintreeUI/Models/BTUIUtil.h | 18 - .../Braintree/BraintreeUI/Models/BTUIUtil.m | 48 - .../Public/BTDropInViewController.h | 146 - .../BraintreeUI/Public/BTPaymentButton.h | 84 - .../BraintreeUI/Public/BTPaymentRequest.h | 112 - .../Braintree/BraintreeUI/Public/BTUI.h | 110 - .../BraintreeUI/Public/BTUICTAControl.h | 31 - .../BraintreeUI/Public/BTUICardFormView.h | 130 - .../BraintreeUI/Public/BTUICardHint.h | 54 - .../BraintreeUI/Public/BTUICoinbaseButton.h | 9 - .../BraintreeUI/Public/BTUIPayPalButton.h | 11 - .../Public/BTUIPaymentMethodView.h | 26 - .../Public/BTUIPaymentOptionType.h | 21 - .../BraintreeUI/Public/BTUISummaryView.h | 24 - .../BraintreeUI/Public/BTUIThemedView.h | 6 - .../BraintreeUI/Public/BTUIVectorArtView.h | 23 - .../BraintreeUI/Public/BTUIVenmoButton.h | 9 - .../BraintreeUI/Public/BraintreeUI.h | 25 - .../BraintreeUI/Public/UIColor+BTUI.h | 11 - .../Braintree/BraintreeUI/README.md | 18 - .../Braintree/BraintreeUI/Theme/BTUI.m | 300 - .../BraintreeUI/Theme/UIColor+BTUI.m | 34 - .../BTMockApplePayPaymentAuthorizationView.h | 16 - .../BTMockApplePayPaymentAuthorizationView.m | 98 - ...plePayPaymentAuthorizationViewController.h | 24 - ...plePayPaymentAuthorizationViewController.m | 66 - .../BraintreeUI/Views/BTUIViewUtil.h | 17 - .../BraintreeUI/Views/BTUIViewUtil.m | 76 - ...ontalButtonStackCollectionViewFlowLayout.h | 5 - ...ontalButtonStackCollectionViewFlowLayout.m | 65 - ...UIHorizontalButtonStackSeparatorLineView.h | 7 - ...UIHorizontalButtonStackSeparatorLineView.m | 59 - .../BTUIPaymentButtonCollectionViewCell.h | 5 - .../BTUIPaymentButtonCollectionViewCell.m | 62 - .../Views/Custom Views/BTUIFloatLabel.h | 10 - .../Views/Custom Views/BTUIFloatLabel.m | 125 - .../Views/Custom Views/BTUIFormField.h | 46 - .../Views/Custom Views/BTUIFormField.m | 418 - .../Custom Views/BTUIFormField_Protected.h | 26 - .../Views/Custom Views/BTUIScrollView.h | 29 - .../Views/Custom Views/BTUIScrollView.m | 21 - .../Views/Custom Views/BTUITextField.h | 58 - .../Views/Custom Views/BTUITextField.m | 100 - .../Views/Custom Views/BTUIThemedView.m | 30 - .../Views/Custom Views/BTUIVectorArtView.m | 32 - .../Views/Form Fields/BTUICardCvvField.h | 10 - .../Views/Form Fields/BTUICardCvvField.m | 102 - .../Views/Form Fields/BTUICardExpiryField.h | 14 - .../Views/Form Fields/BTUICardExpiryField.m | 188 - .../Views/Form Fields/BTUICardNumberField.h | 9 - .../Views/Form Fields/BTUICardNumberField.m | 105 - .../Form Fields/BTUICardPhoneNumberField.h | 7 - .../Form Fields/BTUICardPhoneNumberField.m | 47 - .../Form Fields/BTUICardPostalCodeField.h | 8 - .../Form Fields/BTUICardPostalCodeField.m | 64 - .../Views/Forms/BTUICardFormView.m | 366 - .../Payments Components/BTUICTAControl.m | 151 - .../Views/Payments Components/BTUICardHint.m | 185 - .../Payments Components/BTUICoinbaseButton.m | 87 - .../Payments Components/BTUIPayPalButton.m | 84 - .../BTUIPayPalCompactButton.h | 5 - .../BTUIPayPalCompactButton.m | 49 - .../BTUIPaymentMethodView.m | 229 - .../Payments Components/BTUISummaryView.m | 130 - .../Payments Components/BTUIVenmoButton.m | 83 - .../Views/Vector Art/BTUIAmExVectorArtView.h | 5 - .../Views/Vector Art/BTUIAmExVectorArtView.m | 343 - .../Vector Art/BTUICVVBackVectorArtView.h | 5 - .../Vector Art/BTUICVVBackVectorArtView.m | 48 - .../Vector Art/BTUICVVFrontVectorArtView.h | 5 - .../Vector Art/BTUICVVFrontVectorArtView.m | 341 - .../Views/Vector Art/BTUICardVectorArtView.h | 7 - .../Views/Vector Art/BTUICardVectorArtView.m | 25 - .../Vector Art/BTUICoinbaseMonogramCardView.h | 5 - .../Vector Art/BTUICoinbaseMonogramCardView.m | 43 - .../BTUICoinbaseWordmarkVectorArtView.h | 7 - .../BTUICoinbaseWordmarkVectorArtView.m | 191 - .../Vector Art/BTUIDinersClubVectorArtView.h | 5 - .../Vector Art/BTUIDinersClubVectorArtView.m | 66 - .../Vector Art/BTUIDiscoverVectorArtView.h | 5 - .../Vector Art/BTUIDiscoverVectorArtView.m | 213 - .../Views/Vector Art/BTUIJCBVectorArtView.h | 5 - .../Views/Vector Art/BTUIJCBVectorArtView.m | 179 - .../Vector Art/BTUIMaestroVectorArtView.h | 5 - .../Vector Art/BTUIMaestroVectorArtView.m | 309 - .../Vector Art/BTUIMasterCardVectorArtView.h | 5 - .../Vector Art/BTUIMasterCardVectorArtView.m | 3247 ------- .../Vector Art/BTUIPayPalMonogramCardView.h | 5 - .../Vector Art/BTUIPayPalMonogramCardView.m | 147 - .../BTUIPayPalWordmarkCompactVectorArtView.h | 5 - .../BTUIPayPalWordmarkCompactVectorArtView.m | 395 - .../BTUIPayPalWordmarkVectorArtView.h | 28 - .../BTUIPayPalWordmarkVectorArtView.m | 375 - .../Vector Art/BTUIUnionPayVectorArtView.h | 5 - .../Vector Art/BTUIUnionPayVectorArtView.m | 481 -- .../Vector Art/BTUIUnknownCardVectorArtView.h | 5 - .../Vector Art/BTUIUnknownCardVectorArtView.m | 306 - .../Vector Art/BTUIVenmoMonogramCardView.h | 5 - .../Vector Art/BTUIVenmoMonogramCardView.m | 36 - .../BTUIVenmoWordmarkVectorArtView.h | 7 - .../BTUIVenmoWordmarkVectorArtView.m | 189 - .../Views/Vector Art/BTUIVisaVectorArtView.h | 5 - .../Views/Vector Art/BTUIVisaVectorArtView.m | 128 - .../BraintreeUnionPay/BTCardCapabilities.m | 9 - .../BraintreeUnionPay/BTCardClient+UnionPay.m | 140 - .../BTConfiguration+UnionPay.m | 9 - .../Public/BTCardCapabilities.h | 10 - .../Public/BTCardClient+UnionPay.h | 42 - .../Public/BTConfiguration+UnionPay.h | 14 - .../Public/BraintreeUnionPay.h | 14 - .../BraintreeVenmo/BTConfiguration+Venmo.m | 15 - .../BraintreeVenmo/BTVenmoAccountNonce.m | 27 - .../BTVenmoAccountNonce_Internal.h | 17 - .../BTVenmoAppSwitchRequestURL.h | 35 - .../BTVenmoAppSwitchRequestURL.m | 78 - .../BTVenmoAppSwitchReturnURL.h | 58 - .../BTVenmoAppSwitchReturnURL.m | 44 - .../Braintree/BraintreeVenmo/BTVenmoDriver.m | 358 - .../BraintreeVenmo/BTVenmoDriver_Internal.h | 38 - .../Public/BTConfiguration+Venmo.h | 26 - .../Public/BTVenmoAccountNonce.h | 15 - .../BraintreeVenmo/Public/BTVenmoDriver.h | 81 - .../BraintreeVenmo/Public/BraintreeVenmo.h | 14 - .../ios/Frameworks/Braintree/CHANGELOG.md | 706 -- .../ios/Frameworks/Braintree/CONTRIBUTING.md | 37 - .../ios/Frameworks/Braintree/DEVELOPMENT.md | 63 - .../Demo/Braintree-Demo.entitlements | 11 - .../CarthageTest.xcodeproj/project.pbxproj | 371 - .../CarthageTest/AppDelegate.swift | 38 - .../CarthageTest/ViewController.swift | 23 - .../BraintreeDemoBaseViewController.h | 12 - .../BraintreeDemoBaseViewController.m | 21 - ...ntreeDemoPaymentButtonBaseViewController.h | 13 - ...ntreeDemoPaymentButtonBaseViewController.m | 40 - .../Demo/Demo Base/BraintreeDemoAppDelegate.h | 7 - .../Demo/Demo Base/BraintreeDemoAppDelegate.m | 119 - ...aintreeDemoDemoContainmentViewController.h | 5 - ...aintreeDemoDemoContainmentViewController.m | 285 - .../BraintreeDemoIntegrationViewController.h | 15 - .../BraintreeDemoIntegrationViewController.m | 63 - .../BraintreeDemoSlideNavigationController.h | 5 - .../BraintreeDemoSlideNavigationController.m | 10 - .../Demo/Demo Base/Launch Screen.storyboard | 48 - .../Settings/BraintreeDemoSettings.h | 32 - .../Settings/BraintreeDemoSettings.m | 69 - .../Settings/Settings.bundle/Root.plist | 228 - ...aintreeDemoApplePayPassKitViewController.h | 6 - ...aintreeDemoApplePayPassKitViewController.m | 183 - ...aintreeDemoBTPaymentButtonViewController.h | 8 - ...aintreeDemoBTPaymentButtonViewController.m | 49 - ...raintreeDemoCustomMultiPayViewController.h | 6 - ...raintreeDemoCustomMultiPayViewController.m | 178 - ...intreeDemoCardTokenizationViewController.h | 6 - ...intreeDemoCardTokenizationViewController.m | 106 - ...treeDemoCardTokenizationViewController.xib | 111 - .../BraintreeDemoThreeDSecureViewController.h | 9 - .../BraintreeDemoThreeDSecureViewController.m | 126 - .../BraintreeDemoDropInLegacyViewController.h | 7 - .../BraintreeDemoDropInLegacyViewController.m | 97 - .../BraintreeDemoDropInViewController.h | 7 - .../BraintreeDemoDropInViewController.m | 328 - ...aintreeDemoBTDataCollectorViewController.h | 7 - ...aintreeDemoBTDataCollectorViewController.m | 117 - ...intreeDemoBTUIPayPalButtonViewController.h | 6 - ...intreeDemoBTUIPayPalButtonViewController.m | 61 - ...DemoPayPalBillingAgreementViewController.h | 5 - ...DemoPayPalBillingAgreementViewController.m | 86 - ...eeDemoPayPalOneTimePaymentViewController.h | 5 - ...eeDemoPayPalOneTimePaymentViewController.m | 76 - ...reeDemoPayPalCreditPaymentViewController.h | 5 - ...reeDemoPayPalCreditPaymentViewController.m | 116 - ...treeDemoCustomPayPalButtonViewController.h | 7 - ...treeDemoCustomPayPalButtonViewController.m | 62 - ...moPayPalForceFuturePaymentViewController.h | 7 - ...moPayPalForceFuturePaymentViewController.m | 63 - .../BraintreeDemoPayPalScopesViewController.h | 6 - .../BraintreeDemoPayPalScopesViewController.m | 70 - .../BraintreeDemoCardHintViewController.h | 5 - .../BraintreeDemoCardHintViewController.m | 40 - ...aintreeDemoCreditCardEntryViewController.h | 7 - ...aintreeDemoCreditCardEntryViewController.m | 94 - ...ntreeDemoCreditCardEntryViewController.xib | 85 - ...eeDemoPaymentsUIComponentsViewController.h | 4 - ...eeDemoPaymentsUIComponentsViewController.m | 35 - .../BraintreeDemoUIWidgetsViewController.h | 7 - .../BraintreeDemoUIWidgetsViewController.m | 32 - .../Demo/Features/UI Components/UI.storyboard | 344 - .../BraintreeDemoUnionPayViewController.h | 5 - .../BraintreeDemoUnionPayViewController.m | 221 - ...aintreeDemoBTUIVenmoButtonViewController.h | 6 - ...aintreeDemoBTUIVenmoButtonViewController.m | 52 - ...ntreeDemoCustomVenmoButtonViewController.h | 7 - ...ntreeDemoCustomVenmoButtonViewController.m | 43 - ...20 - iPhone App Icon-ipad-spotlight@1x.png | Bin 3422 -> 0 bytes ...20 - iPhone App Icon-ipad-spotlight@2x.png | Bin 3991 -> 0 bytes .../120 - iPhone App Icon-ipad@1x.png | Bin 3936 -> 0 bytes .../120 - iPhone App Icon-ipad@2x.png | Bin 5205 -> 0 bytes .../120 - iPhone App Icon-spotlight.png | Bin 3991 -> 0 bytes .../120 - iPhone App Icon@2x.png | Bin 4590 -> 0 bytes .../120 - iPhone Pro App Icon-ipad@2x.png | Bin 5073 -> 0 bytes .../LaunchImage.launchimage/Contents.json | 53 - .../LaunchImage@2x.png | Bin 17570 -> 0 bytes .../LaunchImage.launchimage/LaunchImageR4.png | Bin 15271 -> 0 bytes .../BraintreeDemoMerchantAPI.h | 14 - .../BraintreeDemoMerchantAPI.m | 128 - .../ios/Frameworks/Braintree/Demo/README.md | 43 - .../Braintree-Demo-Info.plist | 110 - .../Braintree-Demo-Prefix.pch | 2 - .../en.lproj/InfoPlist.strings | 2 - .../Supporting Files/en.lproj/Main.strings | 63 - .../Braintree/Demo/Supporting Files/main.m | 10 - .../Docs/Braintree-4.0-Migration-Guide.md | 1 - .../Braintree-Static-Integration-Guide.md | 52 - .../Braintree/Docs/Drop-In-Update.md | 5 - .../Braintree/Docs/Manual Integration.md | 56 - ..._static_screenshot_header_search_paths.png | Bin 11292 -> 0 bytes .../Docs/bt_static_screenshot_link_binary.gif | Bin 77970 -> 0 bytes .../bt_static_screenshot_linker_flags.png | Bin 15891 -> 0 bytes .../Docs/bt_static_screenshot_strings.gif | Bin 162865 -> 0 bytes .../Docs/bt_static_screenshot_sub_project.png | Bin 40818 -> 0 bytes ...bt_static_screenshot_target_dependency.gif | Bin 86417 -> 0 bytes .../Docs/saved-payment-methods-dark.png | Bin 124338 -> 0 bytes .../Braintree/Docs/saved-payment-methods.png | Bin 93848 -> 0 bytes .../Braintree/Docs/saved-paypal-method.png | Bin 9682 -> 0 bytes .../Docs/screenshot_add_apple_pay.png | Bin 14723 -> 0 bytes .../Braintree/Docs/screenshot_add_files.png | Bin 32749 -> 0 bytes .../Docs/screenshot_copy_bundles.png | Bin 28903 -> 0 bytes .../Frameworks/Braintree/Frameworks.markdown | 137 - .../ios/Frameworks/Braintree/Gemfile | 10 - .../ios/Frameworks/Braintree/Gemfile.lock | 128 - .../BTAPIClient_IntegrationTests.m | 53 - .../BTHTTPSSLPinning_IntegrationTests.m | 108 - .../SSL/evil_root_cert.der | Bin 778 -> 0 bytes .../SSL/evil_root_cert.pem | 63 - .../SSL/evil_root_key.pem | 15 - .../SSL/evil_site_cert.pem | 47 - .../SSL/evil_site_key.pem | 15 - .../SSL/evil_site_request.pem | 40 - .../SSL/good_root_cert.pem | 63 - .../SSL/good_root_key.pem | 15 - .../SSL/good_site_cert.pem | 48 - .../SSL/good_site_key.pem | 15 - .../SSL/good_site_request.pem | 41 - .../SSL/https_server.rb | 97 - .../SSL/make_certs.sh | 36 - .../good_root_cert.der | Bin 778 -> 0 bytes .../BraintreeApplePay_IntegrationTests.m | 43 - .../BraintreeCard_IntegrationTests.m | 131 - .../BraintreeDataCollector_IntegrationTests.m | 114 - .../BraintreePayPal_IntegrationTests.m | 649 -- .../BraintreeUnionPay_IntegrationTests.m | 107 - .../Helpers/BTIntegrationTestsConstants.h | 4 - .../Helpers/BTIntegrationTestsHelper.h | 5 - .../Helpers/BTIntegrationTestsHelper.m | 20 - .../IntegrationTests/IntegrationTests.pch | 1 - .../ios/Frameworks/Braintree/LICENSE | 19 - .../ios/Frameworks/Braintree/Podfile | 37 - .../ios/Frameworks/Braintree/Podfile.lock | 91 - .../ios/Frameworks/Braintree/README.md | 69 - .../ios/Frameworks/Braintree/Rakefile | 354 - .../Specs/Braintree-API-Specs/BTLoggerSpec.m | 78 - .../BTThreeDSecureLookupSpec.m | 28 - .../Braintree-API-Specs/BTURLUtilsSpecs.m | 65 - .../Specs/Braintree-API-Specs/BTVersionSpec.m | 9 - .../BTThreeDSecureAcceptanceSpec.m | 199 - ...thenticationViewControllerAcceptanceSpec.m | 543 -- .../KIFSystemTestActor+BTNetworkActivity.h | 7 - .../KIFSystemTestActor+BTNetworkActivity.m | 12 - .../KIFUITestActor+BTWebView.h | 8 - .../KIFUITestActor+BTWebView.m | 66 - .../BTPayPalDriverSpec.m | 917 -- .../BTClient+BTPayPalSpec.m | 155 - .../Braintree-Specs/BTDropInErrorStateSpec.m | 109 - .../Braintree-UI-Specs/BTUICardFormViewSpec.m | 208 - .../Braintree-UI-Specs/BTUITextFieldSpec.m | 131 - .../KIFSystemTestActor+BTViewPresentation.h | 17 - .../KIFSystemTestActor+BTViewPresentation.m | 38 - .../BraintreeDropInLegacy_UITests.swift | 186 - .../UITests/BraintreePayPal_UITests.swift | 160 - .../BraintreeThreeDSecure_UITests.swift | 265 - .../Braintree/UITests/Helpers/BTUITest.swift | 42 - .../Frameworks/Braintree/UITests/Info.plist | 24 - .../UnitTests/BTAPIClient_SwiftTests.swift | 248 - .../Braintree/UnitTests/BTAPIClient_Tests.m | 362 - .../UnitTests/BTAnalyticsMetadataSpec.m | 152 - .../UnitTests/BTAnalyticsService_Tests.m | 278 - .../UnitTests/BTAppSwitch_Tests.swift | 86 - .../UnitTests/BTApplePay_Tests.swift | 329 - .../UnitTests/BTCardClient_Tests.swift | 226 - .../BTCardClient_UnionPayTests.swift | 578 -- .../UnitTests/BTCardNonce_Tests.swift | 104 - .../UnitTests/BTCard_Internal_Tests.m | 61 - .../Braintree/UnitTests/BTCard_Tests.swift | 156 - .../UnitTests/BTCheckoutRequest_Tests.swift | 70 - .../UnitTests/BTClientMetadataSpec.m | 205 - .../Braintree/UnitTests/BTClientTokenSpec.m | 149 - .../UnitTests/BTConfiguration_Tests.swift | 213 - .../UnitTests/BTDataCollector_Tests.swift | 272 - .../UnitTests/BTDropInErrorState_Tests.m | 122 - .../UnitTests/BTDropInUtil_Tests.swift | 17 - .../BTDropInViewController_Tests.swift | 215 - .../Braintree/UnitTests/BTHTTPSpec.m | 1011 --- .../Braintree/UnitTests/BTJSON_Tests.swift | 295 - .../UnitTests/BTLogger_Internal_Tests.m | 57 - .../Braintree/UnitTests/BTMacroTests.m | 18 - .../UnitTests/BTPayPalDriver_Tests.swift | 2088 ----- .../UnitTests/BTPaymentButton_Tests.swift | 70 - .../BTPaymentMethodNonceParser_Tests.swift | 302 - .../BTThreeDSecureDriver_Tests.swift | 236 - .../BTThreeDSecureLookupResult_Tests.swift | 24 - .../BTTokenizationService_Tests.swift | 146 - .../UnitTests/BTURLUtils_Tests.swift | 93 - .../UnitTests/BTVenmoAppSwitchReturnURLSpec.m | 87 - .../UnitTests/BTVenmoAppSwitchURLSpec.m | 69 - .../UnitTests/BTVenmoDriver_Tests.swift | 743 -- .../Braintree/UnitTests/BTVersion_Tests.swift | 11 - .../BTUICardExpirationValidatorSpec.m | 112 - .../BTUICardExpiryFormatterSpec.m | 133 - .../Braintree-UI-Specs/BTUICardTypeSpec.m | 253 - .../UnitTests/Braintree-UI-Specs/BTUISpec.m | 24 - .../Braintree-UI-Specs/BTUI_UIColor.m | 53 - .../EXPMatchers+haveKerning.h | 5 - .../EXPMatchers+haveKerning.m | 51 - .../Braintree/UnitTests/Helpers/BTFakeHTTP.h | 26 - .../Braintree/UnitTests/Helpers/BTFakeHTTP.m | 96 - .../UnitTests/Helpers/BTHTTPTestProtocol.h | 15 - .../UnitTests/Helpers/BTHTTPTestProtocol.m | 73 - .../UnitTests/Helpers/BTSpecDependencies.h | 3 - .../UnitTests/Helpers/BTSpecHelper.h | 22 - .../UnitTests/Helpers/BTSpecHelper.m | 40 - .../Helpers/BTTestClientTokenFactory.h | 9 - .../Helpers/BTTestClientTokenFactory.m | 174 - .../UnitTests/Helpers/FakePayPalClasses.h | 62 - .../UnitTests/Helpers/FakePayPalClasses.m | 193 - .../UnitTests/Helpers/MockAPIClient.swift | 74 - .../UnitTests/Helpers/MockDelegates.swift | 71 - .../Frameworks/Braintree/UnitTests/Info.plist | 24 - .../PayPalOneTouch/PPDataCollectorTest.m | 59 - .../UnitTests/PayPalOneTouch/PPFPTIDataTest.m | 77 - .../PayPalOneTouch/PPFPTITrackerTest.m | 71 - .../PPOTAppSwitchResponseTest.m | 85 - .../PayPalOneTouch/PPOTAppSwitchUtilTest.m | 96 - .../PayPalOneTouch/PPOTConfigurationTest.m | 296 - .../PayPalOneTouch/PPOTEncryptionTest.m | 149 - .../UnitTests/PayPalOneTouch/PPOTErrorTest.m | 34 - .../UnitTests/PayPalOneTouch/PPOTTimeTest.m | 43 - .../UnitTests/UnitTests-Bridging-Header.h | 40 - .../ios/Frameworks/Braintree/screenshot.png | Bin 97150 -> 0 bytes .../Info.plist | 24 - .../AppIcon.appiconset/Contents.json | 38 - lerna.json | 9 + package.json | 33 +- .../.gitignore | 1 + .../.npmignore | 0 .../Cartfile | 1 + .../Cartfile.resolved | 1 + .../README.md | 48 + .../package.json | 23 + .../.gitignore | 1 + .../Cartfile | 1 + .../Cartfile.resolved | 1 + .../README.md | 48 + .../package.json | 23 + packages/react-native-payments-cli/.npmignore | 1 + packages/react-native-payments-cli/README.md | 32 + packages/react-native-payments-cli/index.js | 225 + .../RNPCLIProject.xcodeproj/project.pbxproj | 321 + .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 9495 bytes .../xcschemes/RNPCLIProject.xcscheme | 32 +- .../xcschemes/xcschememanagement.plist | 22 + .../ios/RNPCLIProject/AppDelegate.h | 17 + .../ios/RNPCLIProject/AppDelegate.m | 51 + .../AppIcon.appiconset/Contents.json | 44 +- .../Base.lproj/LaunchScreen.storyboard | 10 +- .../RNPCLIProject}/Base.lproj/Main.storyboard | 11 +- .../ios/RNPCLIProject}/Info.plist | 9 +- .../ios/RNPCLIProject/ViewController.h | 15 + .../ios/RNPCLIProject/ViewController.m | 29 + .../ios/RNPCLIProject/main.m | 16 + .../react-native-payments-cli/lib/commands.js | 79 + .../react-native-payments-cli/lib/helpers.js | 104 + .../react-native-payments-cli/package.json | 29 + packages/react-native-payments-cli/yarn.lock | 526 ++ .../react-native-payments/.babelrc | 0 .../react-native-payments/.flowconfig | 0 packages/react-native-payments/.gitignore | 35 + .../react-native-payments/.npmignore | 0 packages/react-native-payments/bin.js | 1 + .../docs}/NativePayments.md | 0 .../docs}/PaymentRequest.md | 0 .../docs}/PaymentRequestUpdateEvent.md | 0 .../docs}/PaymentResponse.md | 0 .../examples}/braintree/.babelrc | 0 .../examples}/braintree/.buckconfig | 0 .../examples}/braintree/.flowconfig | 0 .../examples}/braintree/.gitattributes | 0 .../examples}/braintree/.gitignore | 0 .../examples}/braintree/.watchmanconfig | 0 .../braintree/__tests__/index.android.js | 0 .../braintree/__tests__/index.ios.js | 0 .../examples}/braintree/android/app/BUCK | 0 .../braintree/android/app/build.gradle | 0 .../braintree/android/app/proguard-rules.pro | 0 .../android/app/src/main/AndroidManifest.xml | 0 .../com/braintreeexample/MainActivity.java | 0 .../com/braintreeexample/MainApplication.java | 0 .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin .../app/src/main/res/values/strings.xml | 0 .../app/src/main/res/values/styles.xml | 0 .../examples}/braintree/android/build.gradle | 0 .../braintree/android/gradle.properties | 0 .../android/gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 .../examples}/braintree/android/gradlew | 0 .../examples}/braintree/android/gradlew.bat | 0 .../braintree/android/keystores/BUCK | 0 .../keystores/debug.keystore.properties | 0 .../braintree/android/settings.gradle | 0 .../examples}/braintree/index.android.js | 4 +- .../examples}/braintree/index.ios.js | 0 .../ios/BraintreeExample-tvOS/Info.plist | 0 .../ios/BraintreeExample-tvOSTests/Info.plist | 0 .../project.pbxproj | 348 +- .../xcschemes/BraintreeExample-tvOS.xcscheme | 0 .../xcschemes/BraintreeExample.xcscheme | 0 .../ios/BraintreeExample/AppDelegate.h | 0 .../ios/BraintreeExample/AppDelegate.m | 0 .../Base.lproj/LaunchScreen.xib | 0 .../BraintreeExample.entitlements | 0 .../AppIcon.appiconset/Contents.json | 0 .../braintree/ios/BraintreeExample/Info.plist | 0 .../braintree/ios/BraintreeExample/main.m | 0 .../BraintreeExampleTests.m | 0 .../ios/BraintreeExampleTests/Info.plist | 0 .../examples}/braintree/package.json | 5 +- .../examples}/braintree/webpack.haul.js | 0 .../examples}/braintree/yarn.lock | 0 .../examples}/common/App.js | 0 .../examples}/common/components/Header.js | 0 .../examples/common/config/index.js | 0 .../examples}/common/handlers/index.js | 0 .../examples}/common/services/shipping.js | 0 .../examples}/common/styles/index.js | 0 .../examples}/native/.babelrc | 0 .../examples}/native/.buckconfig | 0 .../examples}/native/.flowconfig | 0 .../examples}/native/.gitattributes | 0 .../examples}/native/.gitignore | 0 .../examples}/native/.watchmanconfig | 0 .../native/__tests__/index.android.js | 0 .../examples}/native/__tests__/index.ios.js | 0 .../examples}/native/android/app/BUCK | 0 .../examples}/native/android/app/build.gradle | 0 .../native/android/app/proguard-rules.pro | 0 .../android/app/src/main/AndroidManifest.xml | 0 .../MainActivity.java | 0 .../MainApplication.java | 0 .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin .../app/src/main/res/values/strings.xml | 0 .../app/src/main/res/values/styles.xml | 0 .../examples}/native/android/build.gradle | 0 .../native/android/gradle.properties | 0 .../android/gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 .../examples}/native/android/gradlew | 0 .../examples}/native/android/gradlew.bat | 0 .../examples}/native/android/keystores/BUCK | 0 .../keystores/debug.keystore.properties | 0 .../examples}/native/android/settings.gradle | 0 .../examples}/native/index.android.js | 4 +- .../examples}/native/index.ios.js | 0 .../Info.plist | 0 .../Info.plist | 0 .../project.pbxproj | 0 .../ReactNativePaymentsExample-tvOS.xcscheme | 0 .../ReactNativePaymentsExample.xcscheme | 0 .../ReactNativePaymentsExample/AppDelegate.h | 0 .../ReactNativePaymentsExample/AppDelegate.m | 0 .../Base.lproj/LaunchScreen.xib | 0 .../AppIcon.appiconset/Contents.json | 0 .../ios/ReactNativePaymentsExample/Info.plist | 0 .../ReactNativePaymentsExample.entitlements | 0 .../ios/ReactNativePaymentsExample/main.m | 0 .../Info.plist | 0 .../ReactNativePaymentsExampleTests.m | 0 .../examples}/native/ios/main.jsbundle | 0 .../examples}/native/package.json | 0 .../examples}/native/webpack.haul.js | 0 .../examples}/native/yarn.lock | 0 .../examples}/stripe/.babelrc | 0 .../examples}/stripe/.buckconfig | 0 .../examples}/stripe/.flowconfig | 0 .../examples}/stripe/.gitattributes | 0 .../examples}/stripe/.gitignore | 0 .../examples}/stripe/.watchmanconfig | 0 .../stripe/__tests__/index.android.js | 0 .../examples}/stripe/__tests__/index.ios.js | 0 .../examples}/stripe/android/app/BUCK | 0 .../examples}/stripe/android/app/build.gradle | 0 .../stripe/android/app/proguard-rules.pro | 0 .../android/app/src/main/AndroidManifest.xml | 0 .../java/com/stripeexample/MainActivity.java | 0 .../com/stripeexample/MainApplication.java | 0 .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin .../app/src/main/res/values/strings.xml | 0 .../app/src/main/res/values/styles.xml | 0 .../examples}/stripe/android/build.gradle | 0 .../stripe/android/gradle.properties | 0 .../android/gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 .../examples}/stripe/android/gradlew | 0 .../examples}/stripe/android/gradlew.bat | 0 .../examples}/stripe/android/keystores/BUCK | 0 .../keystores/debug.keystore.properties | 0 .../examples}/stripe/android/settings.gradle | 0 .../examples}/stripe/icon.png | Bin .../examples}/stripe/index.android.js | 4 +- .../examples}/stripe/index.ios.js | 0 .../ios/Frameworks/Stripe.framework/Headers | 0 .../Frameworks/Stripe.framework/Info.plist | 0 .../ios/Frameworks/Stripe.framework/Modules | 0 .../ios/Frameworks/Stripe.framework/Stripe | 0 .../Stripe.framework/Stripe.bundle/Info.plist | Bin .../_CodeSignature/CodeDirectory | Bin .../_CodeSignature/CodeRequirements | Bin .../_CodeSignature/CodeRequirements-1 | Bin .../_CodeSignature/CodeResources | 0 .../_CodeSignature/CodeSignature | 0 .../de.lproj/Localizable.strings | Bin .../en.lproj/Localizable.strings | Bin .../es.lproj/Localizable.strings | Bin .../fr.lproj/Localizable.strings | Bin .../it.lproj/Localizable.strings | Bin .../ja.lproj/Localizable.strings | Bin .../nl.lproj/Localizable.strings | Bin .../Stripe.bundle/stp_card_amex.png | Bin .../Stripe.bundle/stp_card_amex@2x.png | Bin .../Stripe.bundle/stp_card_amex@3x.png | Bin .../Stripe.bundle/stp_card_amex_template.png | Bin .../stp_card_amex_template@2x.png | Bin .../stp_card_amex_template@3x.png | Bin .../Stripe.bundle/stp_card_applepay.png | Bin .../Stripe.bundle/stp_card_applepay@2x.png | Bin .../Stripe.bundle/stp_card_applepay@3x.png | Bin .../Stripe.bundle/stp_card_cvc.png | Bin .../Stripe.bundle/stp_card_cvc@2x.png | Bin .../Stripe.bundle/stp_card_cvc@3x.png | Bin .../Stripe.bundle/stp_card_cvc_amex.png | Bin .../Stripe.bundle/stp_card_cvc_amex@2x.png | Bin .../Stripe.bundle/stp_card_cvc_amex@3x.png | Bin .../Stripe.bundle/stp_card_diners.png | Bin .../Stripe.bundle/stp_card_diners@2x.png | Bin .../Stripe.bundle/stp_card_diners@3x.png | Bin .../stp_card_diners_template.png | Bin .../stp_card_diners_template@2x.png | Bin .../stp_card_diners_template@3x.png | Bin .../Stripe.bundle/stp_card_discover.png | Bin .../Stripe.bundle/stp_card_discover@2x.png | Bin .../Stripe.bundle/stp_card_discover@3x.png | Bin .../stp_card_discover_template.png | Bin .../stp_card_discover_template@2x.png | Bin .../stp_card_discover_template@3x.png | Bin .../Stripe.bundle/stp_card_error.png | Bin .../Stripe.bundle/stp_card_error@2x.png | Bin .../Stripe.bundle/stp_card_error@3x.png | Bin .../Stripe.bundle/stp_card_error_amex.png | Bin .../Stripe.bundle/stp_card_error_amex@2x.png | Bin .../Stripe.bundle/stp_card_error_amex@3x.png | Bin .../Stripe.bundle/stp_card_form_back.png | Bin .../Stripe.bundle/stp_card_form_back@2x.png | Bin .../Stripe.bundle/stp_card_form_back@3x.png | Bin .../Stripe.bundle/stp_card_form_front.png | Bin .../Stripe.bundle/stp_card_form_front@2x.png | Bin .../Stripe.bundle/stp_card_form_front@3x.png | Bin .../Stripe.bundle/stp_card_jcb.png | Bin .../Stripe.bundle/stp_card_jcb@2x.png | Bin .../Stripe.bundle/stp_card_jcb@3x.png | Bin .../Stripe.bundle/stp_card_jcb_template.png | Bin .../stp_card_jcb_template@2x.png | Bin .../stp_card_jcb_template@3x.png | Bin .../Stripe.bundle/stp_card_mastercard.png | Bin .../Stripe.bundle/stp_card_mastercard@2x.png | Bin .../Stripe.bundle/stp_card_mastercard@3x.png | Bin .../stp_card_mastercard_template.png | Bin .../stp_card_mastercard_template@2x.png | Bin .../stp_card_mastercard_template@3x.png | Bin .../Stripe.bundle/stp_card_unknown.png | Bin .../Stripe.bundle/stp_card_unknown@2x.png | Bin .../Stripe.bundle/stp_card_unknown@3x.png | Bin .../Stripe.bundle/stp_card_visa.png | Bin .../Stripe.bundle/stp_card_visa@2x.png | Bin .../Stripe.bundle/stp_card_visa@3x.png | Bin .../Stripe.bundle/stp_card_visa_template.png | Bin .../stp_card_visa_template@2x.png | Bin .../stp_card_visa_template@3x.png | Bin .../Stripe.bundle/stp_icon_add.png | Bin .../Stripe.bundle/stp_icon_add@2x.png | Bin .../Stripe.bundle/stp_icon_add@3x.png | Bin .../Stripe.bundle/stp_icon_checkmark.png | Bin .../Stripe.bundle/stp_icon_checkmark@2x.png | Bin .../Stripe.bundle/stp_icon_checkmark@3x.png | Bin .../Stripe.bundle/stp_icon_chevron_left.png | Bin .../stp_icon_chevron_left@2x.png | Bin .../stp_icon_chevron_left@3x.png | Bin .../Stripe.bundle/stp_shipping_form.png | Bin .../Stripe.bundle/stp_shipping_form@2x.png | Bin .../Stripe.bundle/stp_shipping_form@3x.png | Bin .../zh-Hans.lproj/Localizable.strings | Bin .../A/Headers/STPAPIClient+ApplePay.h | 0 .../Versions/A/Headers/STPAPIClient.h | 0 .../A/Headers/STPAPIResponseDecodable.h | 0 .../A/Headers/STPAddCardViewController.h | 0 .../Versions/A/Headers/STPAddress.h | 0 .../A/Headers/STPApplePayPaymentMethod.h | 0 .../Versions/A/Headers/STPBackendAPIAdapter.h | 0 .../Versions/A/Headers/STPBankAccount.h | 0 .../Versions/A/Headers/STPBankAccountParams.h | 0 .../Versions/A/Headers/STPBlocks.h | 0 .../Versions/A/Headers/STPCard.h | 0 .../Versions/A/Headers/STPCardBrand.h | 0 .../Versions/A/Headers/STPCardParams.h | 0 .../A/Headers/STPCardValidationState.h | 0 .../Versions/A/Headers/STPCardValidator.h | 0 .../A/Headers/STPCoreScrollViewController.h | 0 .../A/Headers/STPCoreTableViewController.h | 0 .../A/Headers/STPCoreViewController.h | 0 .../Versions/A/Headers/STPCustomer.h | 0 .../Versions/A/Headers/STPCustomerContext.h | 0 .../A/Headers/STPEphemeralKeyProvider.h | 0 .../Versions/A/Headers/STPFile.h | 0 .../Versions/A/Headers/STPFormEncodable.h | 0 .../Versions/A/Headers/STPImageLibrary.h | 0 .../Headers/STPPaymentActivityIndicatorView.h | 0 .../A/Headers/STPPaymentCardTextField.h | 0 .../A/Headers/STPPaymentConfiguration.h | 0 .../Versions/A/Headers/STPPaymentContext.h | 0 .../Versions/A/Headers/STPPaymentMethod.h | 0 .../Headers/STPPaymentMethodsViewController.h | 0 .../Versions/A/Headers/STPPaymentResult.h | 0 .../Versions/A/Headers/STPRedirectContext.h | 0 .../STPShippingAddressViewController.h | 0 .../Versions/A/Headers/STPSource.h | 0 .../Versions/A/Headers/STPSourceCardDetails.h | 0 .../Versions/A/Headers/STPSourceOwner.h | 0 .../Versions/A/Headers/STPSourceParams.h | 0 .../Versions/A/Headers/STPSourceProtocol.h | 0 .../Versions/A/Headers/STPSourceReceiver.h | 0 .../Versions/A/Headers/STPSourceRedirect.h | 0 .../A/Headers/STPSourceSEPADebitDetails.h | 0 .../A/Headers/STPSourceVerification.h | 0 .../Versions/A/Headers/STPTheme.h | 0 .../Versions/A/Headers/STPToken.h | 0 .../Versions/A/Headers/STPUserInformation.h | 0 .../Versions/A/Headers/Stripe.h | 0 .../Versions/A/Headers/StripeError.h | 0 .../A/Headers/UINavigationBar+Stripe_Theme.h | 0 .../Versions/A/Modules/module.modulemap | 0 .../Stripe.framework/Versions/A/Stripe | Bin .../Stripe.framework/Versions/Current | 0 .../stripe/ios/StripeExample-tvOS/Info.plist | 0 .../ios/StripeExample-tvOSTests/Info.plist | 0 .../StripeExample.xcodeproj/project.pbxproj | 34 +- .../xcschemes/StripeExample-tvOS.xcscheme | 0 .../xcschemes/StripeExample.xcscheme | 0 .../stripe/ios/StripeExample/AppDelegate.h | 0 .../stripe/ios/StripeExample/AppDelegate.m | 0 .../StripeExample/Base.lproj/LaunchScreen.xib | 0 .../AppIcon.appiconset/Contents.json | 0 .../stripe/ios/StripeExample/Info.plist | 0 .../StripeExample/StripeExample.entitlements | 0 .../examples}/stripe/ios/StripeExample/main.m | 0 .../stripe/ios/StripeExampleTests/Info.plist | 0 .../StripeExampleTests/StripeExampleTests.m | 0 .../examples}/stripe/package.json | 5 +- .../examples}/stripe/webpack.haul.js | 0 .../examples}/stripe/yarn.lock | 0 .../examples}/web/.gitignore | 0 .../examples}/web/index.web.js | 0 .../examples}/web/package.json | 0 .../examples}/web/public/index.html | 0 .../examples}/web/webpack.base.config.js | 0 .../web/webpack.development.config.js | 0 .../web/webpack.production.config.js | 0 .../examples}/web/yarn.lock | 0 .../react-native-payments/index.js | 0 .../lib}/android/build.gradle | 0 .../lib}/android/src/main/AndroidManifest.xml | 0 .../ReactNativePaymentsModule.java | 0 .../ReactNativePaymentsPackage.java | 0 .../lib}/ios/GatewayManager.h | 6 +- .../lib}/ios/GatewayManager.m | 14 +- .../lib}/ios/ReactNativePayments.h | 0 .../lib}/ios/ReactNativePayments.m | 0 .../lib}/ios/ReactNativePayments.podspec | 0 .../project.pbxproj | 0 .../contents.xcworkspacedata | 0 .../lib}/js/NativePayments.js | 0 .../lib}/js/PaymentRequest.js | 5 +- .../lib}/js/PaymentRequestUpdateEvent.js | 0 .../lib}/js/PaymentResponse.js | 0 .../lib}/js/__mocks__/index.js | 0 .../lib}/js/__tests__/PaymentRequest-test.js | 0 .../PaymentRequestUpdateEvent-test.js | 0 .../lib}/js/__tests__/PaymentResponse-test.js | 0 .../lib}/js/__tests__/constants-test.js | 0 .../lib}/js/constants.js | 5 +- .../lib}/js/errors/__tests__/index-test.js | 0 .../lib}/js/errors/index.js | 0 .../lib}/js/helpers/__tests__/index-test.js | 0 .../lib}/js/helpers/index.js | 5 +- .../react-native-payments/lib}/js/index.js | 0 .../react-native-payments/lib}/js/types.js | 0 .../react-native-payments/lib/js/utils.js | 0 packages/react-native-payments/package.json | 54 + packages/react-native-payments/yarn.lock | 2728 ++++++ yarn.lock | 2677 ++---- 1050 files changed, 5508 insertions(+), 68499 deletions(-) delete mode 100755 examples/braintree/ios/Frameworks/Braintree/.gitattributes delete mode 100755 examples/braintree/ios/Frameworks/Braintree/.github/issue_template.md delete mode 100755 examples/braintree/ios/Frameworks/Braintree/.gitignore delete mode 100755 examples/braintree/ios/Frameworks/Braintree/.ruby-gemset delete mode 100755 examples/braintree/ios/Frameworks/Braintree/.ruby-version delete mode 100755 examples/braintree/ios/Frameworks/Braintree/.swift-version delete mode 100755 examples/braintree/ios/Frameworks/Braintree/.travis.yml delete mode 100755 examples/braintree/ios/Frameworks/Braintree/ACKNOWLEDGEMENTS.md delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.podspec delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/project.pbxproj delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcbaselines/16CD2E9B1B4077FB00E68495.xcbaseline/0AC71B63-8A4C-42F9-AD7C-1C7EF957B618.plist delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcbaselines/16CD2E9B1B4077FB00E68495.xcbaseline/Info.plist delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/Braintree.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/Braintree3DSecure.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeApplePay.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeCard.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeCore.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeDataCollector.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreePayPal.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeUI.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeUnionPay.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeVenmo.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/IntegrationTests.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalDataCollector-StaticLibrary.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalDataCollector.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalOneTouch-StaticLibrary.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalOneTouch.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalUtils.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/UITests.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/UnitTests.xcscheme delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcworkspace/contents.xcworkspacedata delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree/API/@Public/README.md delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureAuthenticationViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureAuthenticationViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureCardNonce.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureDriver.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureDriver_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureErrors.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureLookupResult.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureLookupResult.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureResponse.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureResponse.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTWebViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTWebViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/BTThreeDSecureLocalizedString.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/BTThreeDSecureLocalizedString.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/da.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/de.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/en.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/en_AU.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/en_CA.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/en_GB.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/es.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/es_ES.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/fr.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/fr_CA.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/fr_FR.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/he.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/it.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/nb.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/nl.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/pl.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/pt.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/ru.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/sv.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/tr.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/zh-Hans.lproj/Three-D-Secure.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Public/BTThreeDSecureCardNonce.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Public/BTThreeDSecureDriver.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Public/BTThreeDSecureErrors.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Public/Braintree3DSecure.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTApplePayCardNonce.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTApplePayClient.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTApplePayClient_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTConfiguration+ApplePay.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BTApplePayCardNonce.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BTApplePayClient.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BTConfiguration+ApplePay.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BraintreeApplePay.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCard.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardClient.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardClient_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardNonce.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardNonce_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardRequest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCard_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCard.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCardClient.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCardNonce.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCardRequest.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BraintreeCard.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIClient.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIClient_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIPinnedCertificates.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIPinnedCertificates.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsMetadata.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsMetadata.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsService.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsService.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAppSwitch.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTClientMetadata.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTClientToken.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTConfiguration.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTErrors.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTHTTP.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTHTTP.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTHTTPErrors.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTJSON.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTKeychain.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTKeychain.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTLogger.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTLogger_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTPaymentMethodNonce.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTPaymentMethodNonceParser.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTPostalAddress.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTTokenizationService.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTURLUtils.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTURLUtils.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Braintree-Version.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Info.plist delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTAPIClient.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTAppSwitch.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTClientMetadata.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTClientToken.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTConfiguration.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTEnums.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTErrors.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTHTTPErrors.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTJSON.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTLogger.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTPaymentMethodNonce.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTPaymentMethodNonceParser.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTPostalAddress.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTTokenizationService.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTViewControllerPresentingDelegate.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BraintreeCore.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/BTDataCollector.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/BTDataCollector_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Kount/KDataCollector.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Kount/libDeviceCollectorLibrary.a delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BTConfiguration+DataCollector.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BTConfiguration+DataCollector.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BTDataCollector.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BraintreeDataCollector.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/README.md delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeDropIn.podspec delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTConfiguration+PayPal.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalAccountNonce.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalAccountNonce_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalCreditFinancing.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalCreditFinancingAmount.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalDriver.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalDriver_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalRequest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalRequestFactory.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalRequestFactory.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Info.plist delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/PPDataCollector.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/PPDataCollector_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Public/PPDataCollector.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Public/PayPalDataCollector.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Risk/PPRCClientMetadataIDProvider.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Risk/libPPRiskComponent.a delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Analytics/PPFPTIData.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Analytics/PPFPTIData.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Analytics/PPFPTITracker.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Analytics/PPFPTITracker.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Analytics/PPOTAnalyticsDefines.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Analytics/PPOTAnalyticsTracker.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Analytics/PPOTAnalyticsTracker.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Configuration/PPDefaultConfigurationJSON.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Configuration/PPOTConfiguration.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Configuration/PPOTConfiguration.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Configuration/otc-config.ios.json delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Info.plist delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTAppSwitchResponse.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTAppSwitchResponse.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTAppSwitchUtil.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTAppSwitchUtil.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTAuthorizationRequest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTAuthorizationRequest_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTBillingAgreementRequest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutAppSwitchRequest.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutAppSwitchRequest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutBrowserSwitchRequest.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutBrowserSwitchRequest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutRequest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutRequest_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutSwitchRequest.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutSwitchRequest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTCore.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTCore_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTError.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTError.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTOAuth2AppSwitchRequest.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTOAuth2AppSwitchRequest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTOAuth2BrowserSwitchRequest.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTOAuth2BrowserSwitchRequest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTOAuth2SwitchRequest.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTOAuth2SwitchRequest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTPersistentRequestData.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTPersistentRequestData.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTRequest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTRequestFactory.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTRequest_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTResult.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTResult_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTSwitchRequest.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Models/PPOTSwitchRequest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Public/PPOTCore.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Public/PPOTRequest.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Public/PPOTRequestFactory.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Public/PPOTResult.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalOneTouch/Public/PayPalOneTouch.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/Info.plist delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/PPOTDevice.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/PPOTEncryptionHelper.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/PPOTJSONHelper.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/PPOTMacros.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/PPOTPinnedCertificates.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/PPOTSimpleKeychain.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/PPOTString.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/PPOTTime.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/PPOTURLSession.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/Public/PPOTDevice.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/Public/PPOTEncryptionHelper.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/Public/PPOTJSONHelper.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/Public/PPOTMacros.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/Public/PPOTPinnedCertificates.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/Public/PPOTSimpleKeychain.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/Public/PPOTString.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/Public/PPOTTime.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/Public/PPOTURLSession.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/Public/PPOTVersion.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalUtils/Public/PayPalUtils.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/Public/BTConfiguration+PayPal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/Public/BTPayPalAccountNonce.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/Public/BTPayPalCreditFinancing.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/Public/BTPayPalDriver.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/Public/BTPayPalRequest.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/Public/BraintreePayPal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/BTDropInContentView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/BTDropInContentView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/BTDropInErrorAlert.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/BTDropInErrorAlert.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/BTDropInErrorState.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/BTDropInErrorState.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/BTDropInSelectPaymentMethodViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/BTDropInSelectPaymentMethodViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/BTDropInUtil.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/BTDropInUtil.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/BTDropInViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/BTDropInViewController_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/BTPaymentButton.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/BTPaymentButton_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/BTDropInLocalizedString.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/BTDropInLocalizedString.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/da.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/de.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/en.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/en_AU.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/en_CA.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/en_GB.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/es.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/es_ES.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/fr.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/fr_CA.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/fr_FR.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/he.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/it.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/nb.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/nl.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/pl.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/pt.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/ru.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/sv.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/tr.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Drop-In/Localization/zh-Hans.lproj/Drop-In.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Icons/BTUICardAmEx.svg delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Icons/BTUICardCVVBack.svg delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Icons/BTUICardCVVFront.svg delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Icons/BTUICardDinersClub.svg delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Icons/BTUICardDiscover.svg delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Icons/BTUICardJCB.svg delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Icons/BTUICardMaestro.svg delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Icons/BTUICardMasterCard.svg delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Icons/BTUICardUnknown.svg delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Icons/BTUICardVisa.svg delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Icons/BTUIPayPalMonogramFullWordmark.svg delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/BTUILocalizedString.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/BTUILocalizedString.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/da.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/de.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/en.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/en_AU.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/en_CA.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/en_GB.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/es.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/es_ES.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/fr.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/fr_CA.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/fr_FR.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/he.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/it.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/nb.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/nl.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/pl.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/pt.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/ru.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/sv.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/tr.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Localization/zh-Hans.lproj/UI.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Models/BTPaymentRequest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Models/BTUICardExpirationValidator.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Models/BTUICardExpirationValidator.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Models/BTUICardExpiryFormat.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Models/BTUICardExpiryFormat.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Models/BTUICardType.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Models/BTUICardType.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Models/BTUIUtil.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Models/BTUIUtil.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTDropInViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTPaymentButton.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTPaymentRequest.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTUI.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTUICTAControl.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTUICardFormView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTUICardHint.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTUICoinbaseButton.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTUIPayPalButton.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTUIPaymentMethodView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTUIPaymentOptionType.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTUISummaryView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTUIThemedView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTUIVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BTUIVenmoButton.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/BraintreeUI.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Public/UIColor+BTUI.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/README.md delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Theme/BTUI.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Theme/UIColor+BTUI.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/BTUIViewUtil.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/BTUIViewUtil.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Collection Views/BTUIHorizontalButtonStackCollectionViewFlowLayout.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Collection Views/BTUIHorizontalButtonStackCollectionViewFlowLayout.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Collection Views/BTUIHorizontalButtonStackSeparatorLineView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Collection Views/BTUIHorizontalButtonStackSeparatorLineView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Collection Views/BTUIPaymentButtonCollectionViewCell.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Collection Views/BTUIPaymentButtonCollectionViewCell.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Custom Views/BTUIFloatLabel.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Custom Views/BTUIFloatLabel.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Custom Views/BTUIFormField.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Custom Views/BTUIFormField.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Custom Views/BTUIFormField_Protected.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Custom Views/BTUIScrollView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Custom Views/BTUIScrollView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Custom Views/BTUITextField.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Custom Views/BTUITextField.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Custom Views/BTUIThemedView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Custom Views/BTUIVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Form Fields/BTUICardCvvField.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Form Fields/BTUICardCvvField.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Form Fields/BTUICardExpiryField.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Form Fields/BTUICardExpiryField.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Form Fields/BTUICardNumberField.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Form Fields/BTUICardNumberField.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Form Fields/BTUICardPhoneNumberField.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Form Fields/BTUICardPhoneNumberField.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Form Fields/BTUICardPostalCodeField.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Form Fields/BTUICardPostalCodeField.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Forms/BTUICardFormView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Payments Components/BTUICTAControl.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Payments Components/BTUICardHint.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Payments Components/BTUICoinbaseButton.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Payments Components/BTUIPayPalButton.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Payments Components/BTUIPayPalCompactButton.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Payments Components/BTUIPayPalCompactButton.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Payments Components/BTUIPaymentMethodView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Payments Components/BTUISummaryView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Payments Components/BTUIVenmoButton.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIAmExVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIAmExVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUICVVBackVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUICVVBackVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUICVVFrontVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUICVVFrontVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUICardVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUICardVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUICoinbaseMonogramCardView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUICoinbaseMonogramCardView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUICoinbaseWordmarkVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUICoinbaseWordmarkVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIDinersClubVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIDinersClubVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIDiscoverVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIDiscoverVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIJCBVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIJCBVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIMaestroVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIMaestroVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIMasterCardVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIMasterCardVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIPayPalMonogramCardView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIPayPalMonogramCardView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIPayPalWordmarkCompactVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIPayPalWordmarkCompactVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIPayPalWordmarkVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIPayPalWordmarkVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIUnionPayVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIUnionPayVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIUnknownCardVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIUnknownCardVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIVenmoMonogramCardView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIVenmoMonogramCardView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIVenmoWordmarkVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIVenmoWordmarkVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIVisaVectorArtView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUI/Views/Vector Art/BTUIVisaVectorArtView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUnionPay/BTCardCapabilities.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUnionPay/BTCardClient+UnionPay.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUnionPay/BTConfiguration+UnionPay.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUnionPay/Public/BTCardCapabilities.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUnionPay/Public/BTCardClient+UnionPay.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUnionPay/Public/BTConfiguration+UnionPay.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeUnionPay/Public/BraintreeUnionPay.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeVenmo/BTConfiguration+Venmo.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeVenmo/BTVenmoAccountNonce.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeVenmo/BTVenmoAccountNonce_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeVenmo/BTVenmoAppSwitchRequestURL.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeVenmo/BTVenmoAppSwitchRequestURL.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeVenmo/BTVenmoAppSwitchReturnURL.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeVenmo/BTVenmoAppSwitchReturnURL.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeVenmo/BTVenmoDriver.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeVenmo/BTVenmoDriver_Internal.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeVenmo/Public/BTConfiguration+Venmo.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeVenmo/Public/BTVenmoAccountNonce.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeVenmo/Public/BTVenmoDriver.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/BraintreeVenmo/Public/BraintreeVenmo.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/CHANGELOG.md delete mode 100755 examples/braintree/ios/Frameworks/Braintree/CONTRIBUTING.md delete mode 100755 examples/braintree/ios/Frameworks/Braintree/DEVELOPMENT.md delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Braintree-Demo.entitlements delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/CarthageTest/CarthageTest.xcodeproj/project.pbxproj delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/CarthageTest/CarthageTest/AppDelegate.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/CarthageTest/CarthageTest/ViewController.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/Base View Controllers/BraintreeDemoBaseViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/Base View Controllers/BraintreeDemoBaseViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/Base View Controllers/BraintreeDemoPaymentButtonBaseViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/Base View Controllers/BraintreeDemoPaymentButtonBaseViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/BraintreeDemoAppDelegate.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/BraintreeDemoAppDelegate.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/BraintreeDemoDemoContainmentViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/BraintreeDemoDemoContainmentViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/BraintreeDemoIntegrationViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/BraintreeDemoIntegrationViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/BraintreeDemoSlideNavigationController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/BraintreeDemoSlideNavigationController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/Launch Screen.storyboard delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/Settings/BraintreeDemoSettings.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/Settings/BraintreeDemoSettings.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Demo Base/Settings/Settings.bundle/Root.plist delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Apple Pay - PassKit/BraintreeDemoApplePayPassKitViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Apple Pay - PassKit/BraintreeDemoApplePayPassKitViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Combined Button - BTPaymentButton/BraintreeDemoBTPaymentButtonViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Combined Button - BTPaymentButton/BraintreeDemoBTPaymentButtonViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Combined Button - Custom Multi-Pay Button/BraintreeDemoCustomMultiPayViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Combined Button - Custom Multi-Pay Button/BraintreeDemoCustomMultiPayViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Credit Card Tokenization/BraintreeDemoCardTokenizationViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Credit Card Tokenization/BraintreeDemoCardTokenizationViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Credit Card Tokenization/BraintreeDemoCardTokenizationViewController.xib delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Credit Cards - 3D Secure/BraintreeDemoThreeDSecureViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Credit Cards - 3D Secure/BraintreeDemoThreeDSecureViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Drop In Old/BraintreeDemoDropInLegacyViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Drop In Old/BraintreeDemoDropInLegacyViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Drop In/BraintreeDemoDropInViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Drop In/BraintreeDemoDropInViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Fraud Protection - BTDataCollector/BraintreeDemoBTDataCollectorViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Fraud Protection - BTDataCollector/BraintreeDemoBTDataCollectorViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/PayPal - BTUIPayPalButton/BraintreeDemoBTUIPayPalButtonViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/PayPal - BTUIPayPalButton/BraintreeDemoBTUIPayPalButtonViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/PayPal - Billing Agreement/BraintreeDemoPayPalBillingAgreementViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/PayPal - Billing Agreement/BraintreeDemoPayPalBillingAgreementViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/PayPal - Checkout/BraintreeDemoPayPalOneTimePaymentViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/PayPal - Checkout/BraintreeDemoPayPalOneTimePaymentViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/PayPal - Credit/BraintreeDemoPayPalCreditPaymentViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/PayPal - Credit/BraintreeDemoPayPalCreditPaymentViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/PayPal - Custom Button/BraintreeDemoCustomPayPalButtonViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/PayPal - Custom Button/BraintreeDemoCustomPayPalButtonViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/PayPal - Force Future Payment/BraintreeDemoPayPalForceFuturePaymentViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/PayPal - Force Future Payment/BraintreeDemoPayPalForceFuturePaymentViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/PayPal - Scopes/BraintreeDemoPayPalScopesViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/PayPal - Scopes/BraintreeDemoPayPalScopesViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/UI Components/BraintreeDemoCardHintViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/UI Components/BraintreeDemoCardHintViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/UI Components/BraintreeDemoCreditCardEntryViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/UI Components/BraintreeDemoCreditCardEntryViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/UI Components/BraintreeDemoCreditCardEntryViewController.xib delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/UI Components/BraintreeDemoPaymentsUIComponentsViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/UI Components/BraintreeDemoPaymentsUIComponentsViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/UI Components/BraintreeDemoUIWidgetsViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/UI Components/BraintreeDemoUIWidgetsViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/UI Components/UI.storyboard delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/UnionPay/BraintreeDemoUnionPayViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/UnionPay/BraintreeDemoUnionPayViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Venmo - BTUIVenmoButton/BraintreeDemoBTUIVenmoButtonViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Venmo - BTUIVenmoButton/BraintreeDemoBTUIVenmoButtonViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Venmo - Custom Button/BraintreeDemoCustomVenmoButtonViewController.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Features/Venmo - Custom Button/BraintreeDemoCustomVenmoButtonViewController.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Images.xcassets/AppIcon.appiconset/120 - iPhone App Icon-ipad-spotlight@1x.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Images.xcassets/AppIcon.appiconset/120 - iPhone App Icon-ipad-spotlight@2x.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Images.xcassets/AppIcon.appiconset/120 - iPhone App Icon-ipad@1x.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Images.xcassets/AppIcon.appiconset/120 - iPhone App Icon-ipad@2x.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Images.xcassets/AppIcon.appiconset/120 - iPhone App Icon-spotlight.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Images.xcassets/AppIcon.appiconset/120 - iPhone App Icon@2x.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Images.xcassets/AppIcon.appiconset/120 - iPhone Pro App Icon-ipad@2x.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Images.xcassets/LaunchImage.launchimage/Contents.json delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Images.xcassets/LaunchImage.launchimage/LaunchImage@2x.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Images.xcassets/LaunchImage.launchimage/LaunchImageR4.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Merchant API Client/BraintreeDemoMerchantAPI.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Merchant API Client/BraintreeDemoMerchantAPI.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/README.md delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Supporting Files/Braintree-Demo-Info.plist delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Supporting Files/Braintree-Demo-Prefix.pch delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Supporting Files/en.lproj/InfoPlist.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Supporting Files/en.lproj/Main.strings delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Demo/Supporting Files/main.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/Braintree-4.0-Migration-Guide.md delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/Braintree-Static-Integration-Guide.md delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/Drop-In-Update.md delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/Manual Integration.md delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/bt_static_screenshot_header_search_paths.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/bt_static_screenshot_link_binary.gif delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/bt_static_screenshot_linker_flags.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/bt_static_screenshot_strings.gif delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/bt_static_screenshot_sub_project.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/bt_static_screenshot_target_dependency.gif delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/saved-payment-methods-dark.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/saved-payment-methods.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/saved-paypal-method.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/screenshot_add_apple_pay.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/screenshot_add_files.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Docs/screenshot_copy_bundles.png delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Frameworks.markdown delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Gemfile delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Gemfile.lock delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/BTAPIClient_IntegrationTests.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/BTHTTPSSLPinning_IntegrationTests.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/SSL/evil_root_cert.der delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/SSL/evil_root_cert.pem delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/SSL/evil_root_key.pem delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/SSL/evil_site_cert.pem delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/SSL/evil_site_key.pem delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/SSL/evil_site_request.pem delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/SSL/good_root_cert.pem delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/SSL/good_root_key.pem delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/SSL/good_site_cert.pem delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/SSL/good_site_key.pem delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/SSL/good_site_request.pem delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/SSL/https_server.rb delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/SSL/make_certs.sh delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Braintree-API-Integration-Specs/good_root_cert.der delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/BraintreeApplePay_IntegrationTests.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/BraintreeCard_IntegrationTests.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/BraintreeDataCollector_IntegrationTests.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/BraintreePayPal_IntegrationTests.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/BraintreeUnionPay_IntegrationTests.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Helpers/BTIntegrationTestsConstants.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Helpers/BTIntegrationTestsHelper.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/Helpers/BTIntegrationTestsHelper.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/IntegrationTests/IntegrationTests.pch delete mode 100755 examples/braintree/ios/Frameworks/Braintree/LICENSE delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Podfile delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Podfile.lock delete mode 100755 examples/braintree/ios/Frameworks/Braintree/README.md delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Rakefile delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-API-Specs/BTLoggerSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-API-Specs/BTThreeDSecureLookupSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-API-Specs/BTURLUtilsSpecs.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-API-Specs/BTVersionSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-Acceptance-Specs/BTThreeDSecureAcceptanceSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-Acceptance-Specs/BTThreeDSecureAuthenticationViewControllerAcceptanceSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-Acceptance-Specs/KIFSystemTestActor+BTNetworkActivity.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-Acceptance-Specs/KIFSystemTestActor+BTNetworkActivity.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-Acceptance-Specs/KIFUITestActor+BTWebView.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-Acceptance-Specs/KIFUITestActor+BTWebView.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-PayPal-Integration-Specs/BTPayPalDriverSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-PayPal-Specs/BTClient+BTPayPalSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-Specs/BTDropInErrorStateSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-UI-Specs/BTUICardFormViewSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Braintree-UI-Specs/BTUITextFieldSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Shared Spec Utilities/KIFSystemTestActor+BTViewPresentation.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/Specs/Shared Spec Utilities/KIFSystemTestActor+BTViewPresentation.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UITests/BraintreeDropInLegacy_UITests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UITests/BraintreePayPal_UITests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UITests/BraintreeThreeDSecure_UITests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UITests/Helpers/BTUITest.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UITests/Info.plist delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTAPIClient_SwiftTests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTAPIClient_Tests.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTAnalyticsMetadataSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTAnalyticsService_Tests.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTAppSwitch_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTApplePay_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTCardClient_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTCardClient_UnionPayTests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTCardNonce_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTCard_Internal_Tests.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTCard_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTCheckoutRequest_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTClientMetadataSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTClientTokenSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTConfiguration_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTDataCollector_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTDropInErrorState_Tests.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTDropInUtil_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTDropInViewController_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTHTTPSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTJSON_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTLogger_Internal_Tests.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTMacroTests.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTPayPalDriver_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTPaymentButton_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTPaymentMethodNonceParser_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTThreeDSecureDriver_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTThreeDSecureLookupResult_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTTokenizationService_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTURLUtils_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTVenmoAppSwitchReturnURLSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTVenmoAppSwitchURLSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTVenmoDriver_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/BTVersion_Tests.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Braintree-UI-Specs/BTUICardExpirationValidatorSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Braintree-UI-Specs/BTUICardExpiryFormatterSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Braintree-UI-Specs/BTUICardTypeSpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Braintree-UI-Specs/BTUISpec.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Braintree-UI-Specs/BTUI_UIColor.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Braintree-UI-Specs/EXPMatchers+haveKerning.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Braintree-UI-Specs/EXPMatchers+haveKerning.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Helpers/BTFakeHTTP.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Helpers/BTFakeHTTP.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Helpers/BTHTTPTestProtocol.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Helpers/BTHTTPTestProtocol.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Helpers/BTSpecDependencies.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Helpers/BTSpecHelper.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Helpers/BTSpecHelper.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Helpers/BTTestClientTokenFactory.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Helpers/BTTestClientTokenFactory.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Helpers/FakePayPalClasses.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Helpers/FakePayPalClasses.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Helpers/MockAPIClient.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Helpers/MockDelegates.swift delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/Info.plist delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/PayPalOneTouch/PPDataCollectorTest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/PayPalOneTouch/PPFPTIDataTest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/PayPalOneTouch/PPFPTITrackerTest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/PayPalOneTouch/PPOTAppSwitchResponseTest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/PayPalOneTouch/PPOTAppSwitchUtilTest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/PayPalOneTouch/PPOTConfigurationTest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/PayPalOneTouch/PPOTEncryptionTest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/PayPalOneTouch/PPOTErrorTest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/PayPalOneTouch/PPOTTimeTest.m delete mode 100755 examples/braintree/ios/Frameworks/Braintree/UnitTests/UnitTests-Bridging-Header.h delete mode 100755 examples/braintree/ios/Frameworks/Braintree/screenshot.png delete mode 100644 examples/native/ios/ReactNativePaymentsExampleTests/Info.plist delete mode 100644 examples/stripe/ios/StripeExample/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 lerna.json create mode 100644 packages/react-native-payments-addon-braintree/.gitignore rename examples/common/config/index.js => packages/react-native-payments-addon-braintree/.npmignore (100%) create mode 100644 packages/react-native-payments-addon-braintree/Cartfile create mode 100644 packages/react-native-payments-addon-braintree/Cartfile.resolved create mode 100644 packages/react-native-payments-addon-braintree/README.md create mode 100644 packages/react-native-payments-addon-braintree/package.json create mode 100644 packages/react-native-payments-addon-stripe/.gitignore create mode 100644 packages/react-native-payments-addon-stripe/Cartfile create mode 100644 packages/react-native-payments-addon-stripe/Cartfile.resolved create mode 100644 packages/react-native-payments-addon-stripe/README.md create mode 100644 packages/react-native-payments-addon-stripe/package.json create mode 100644 packages/react-native-payments-cli/.npmignore create mode 100644 packages/react-native-payments-cli/README.md create mode 100755 packages/react-native-payments-cli/index.js create mode 100644 packages/react-native-payments-cli/ios/RNPCLIProject.xcodeproj/project.pbxproj create mode 100644 packages/react-native-payments-cli/ios/RNPCLIProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 packages/react-native-payments-cli/ios/RNPCLIProject.xcodeproj/project.xcworkspace/xcuserdata/naoufal.xcuserdatad/UserInterfaceState.xcuserstate rename examples/braintree/ios/Frameworks/Braintree/Demo/CarthageTest/CarthageTest.xcodeproj/xcshareddata/xcschemes/CarthageTest.xcscheme => packages/react-native-payments-cli/ios/RNPCLIProject.xcodeproj/xcuserdata/naoufal.xcuserdatad/xcschemes/RNPCLIProject.xcscheme (73%) mode change 100755 => 100644 create mode 100644 packages/react-native-payments-cli/ios/RNPCLIProject.xcodeproj/xcuserdata/naoufal.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 packages/react-native-payments-cli/ios/RNPCLIProject/AppDelegate.h create mode 100644 packages/react-native-payments-cli/ios/RNPCLIProject/AppDelegate.m rename {examples/braintree/ios/Frameworks/Braintree/Demo/Images.xcassets => packages/react-native-payments-cli/ios/RNPCLIProject/Assets.xcassets}/AppIcon.appiconset/Contents.json (56%) mode change 100755 => 100644 rename {examples/braintree/ios/Frameworks/Braintree/Demo/CarthageTest/CarthageTest => packages/react-native-payments-cli/ios/RNPCLIProject}/Base.lproj/LaunchScreen.storyboard (70%) mode change 100755 => 100644 rename {examples/braintree/ios/Frameworks/Braintree/Demo/CarthageTest/CarthageTest => packages/react-native-payments-cli/ios/RNPCLIProject}/Base.lproj/Main.storyboard (66%) mode change 100755 => 100644 rename {examples/braintree/ios/Frameworks/Braintree/Demo/CarthageTest/CarthageTest => packages/react-native-payments-cli/ios/RNPCLIProject}/Info.plist (79%) mode change 100755 => 100644 create mode 100644 packages/react-native-payments-cli/ios/RNPCLIProject/ViewController.h create mode 100644 packages/react-native-payments-cli/ios/RNPCLIProject/ViewController.m create mode 100644 packages/react-native-payments-cli/ios/RNPCLIProject/main.m create mode 100644 packages/react-native-payments-cli/lib/commands.js create mode 100644 packages/react-native-payments-cli/lib/helpers.js create mode 100644 packages/react-native-payments-cli/package.json create mode 100644 packages/react-native-payments-cli/yarn.lock rename .babelrc => packages/react-native-payments/.babelrc (100%) rename .flowconfig => packages/react-native-payments/.flowconfig (100%) create mode 100644 packages/react-native-payments/.gitignore rename .npmignore => packages/react-native-payments/.npmignore (100%) create mode 100644 packages/react-native-payments/bin.js rename {docs => packages/react-native-payments/docs}/NativePayments.md (100%) rename {docs => packages/react-native-payments/docs}/PaymentRequest.md (100%) rename {docs => packages/react-native-payments/docs}/PaymentRequestUpdateEvent.md (100%) rename {docs => packages/react-native-payments/docs}/PaymentResponse.md (100%) rename {examples => packages/react-native-payments/examples}/braintree/.babelrc (100%) rename {examples => packages/react-native-payments/examples}/braintree/.buckconfig (100%) rename {examples => packages/react-native-payments/examples}/braintree/.flowconfig (100%) rename {examples => packages/react-native-payments/examples}/braintree/.gitattributes (100%) rename {examples => packages/react-native-payments/examples}/braintree/.gitignore (100%) rename {examples => packages/react-native-payments/examples}/braintree/.watchmanconfig (100%) rename {examples => packages/react-native-payments/examples}/braintree/__tests__/index.android.js (100%) rename {examples => packages/react-native-payments/examples}/braintree/__tests__/index.ios.js (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/app/BUCK (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/app/build.gradle (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/app/proguard-rules.pro (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/app/src/main/AndroidManifest.xml (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/app/src/main/java/com/braintreeexample/MainActivity.java (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/app/src/main/java/com/braintreeexample/MainApplication.java (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/app/src/main/res/mipmap-hdpi/ic_launcher.png (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/app/src/main/res/mipmap-mdpi/ic_launcher.png (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/app/src/main/res/values/strings.xml (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/app/src/main/res/values/styles.xml (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/build.gradle (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/gradle.properties (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/gradle/wrapper/gradle-wrapper.jar (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/gradle/wrapper/gradle-wrapper.properties (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/gradlew (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/gradlew.bat (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/keystores/BUCK (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/keystores/debug.keystore.properties (100%) rename {examples => packages/react-native-payments/examples}/braintree/android/settings.gradle (100%) rename {examples => packages/react-native-payments/examples}/braintree/index.android.js (91%) rename {examples => packages/react-native-payments/examples}/braintree/index.ios.js (100%) rename {examples => packages/react-native-payments/examples}/braintree/ios/BraintreeExample-tvOS/Info.plist (100%) rename {examples => packages/react-native-payments/examples}/braintree/ios/BraintreeExample-tvOSTests/Info.plist (100%) rename {examples => packages/react-native-payments/examples}/braintree/ios/BraintreeExample.xcodeproj/project.pbxproj (81%) rename {examples => packages/react-native-payments/examples}/braintree/ios/BraintreeExample.xcodeproj/xcshareddata/xcschemes/BraintreeExample-tvOS.xcscheme (100%) rename {examples => packages/react-native-payments/examples}/braintree/ios/BraintreeExample.xcodeproj/xcshareddata/xcschemes/BraintreeExample.xcscheme (100%) rename {examples => packages/react-native-payments/examples}/braintree/ios/BraintreeExample/AppDelegate.h (100%) rename {examples => packages/react-native-payments/examples}/braintree/ios/BraintreeExample/AppDelegate.m (100%) rename {examples => packages/react-native-payments/examples}/braintree/ios/BraintreeExample/Base.lproj/LaunchScreen.xib (100%) rename {examples => packages/react-native-payments/examples}/braintree/ios/BraintreeExample/BraintreeExample.entitlements (100%) rename {examples => packages/react-native-payments/examples}/braintree/ios/BraintreeExample/Images.xcassets/AppIcon.appiconset/Contents.json (100%) rename {examples => packages/react-native-payments/examples}/braintree/ios/BraintreeExample/Info.plist (100%) rename {examples => packages/react-native-payments/examples}/braintree/ios/BraintreeExample/main.m (100%) rename {examples => packages/react-native-payments/examples}/braintree/ios/BraintreeExampleTests/BraintreeExampleTests.m (100%) rename {examples => packages/react-native-payments/examples}/braintree/ios/BraintreeExampleTests/Info.plist (100%) rename {examples => packages/react-native-payments/examples}/braintree/package.json (86%) rename {examples => packages/react-native-payments/examples}/braintree/webpack.haul.js (100%) rename {examples => packages/react-native-payments/examples}/braintree/yarn.lock (100%) rename {examples => packages/react-native-payments/examples}/common/App.js (100%) rename {examples => packages/react-native-payments/examples}/common/components/Header.js (100%) rename examples/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/_CodeSignature/CodeSignature => packages/react-native-payments/examples/common/config/index.js (100%) rename {examples => packages/react-native-payments/examples}/common/handlers/index.js (100%) rename {examples => packages/react-native-payments/examples}/common/services/shipping.js (100%) rename {examples => packages/react-native-payments/examples}/common/styles/index.js (100%) rename {examples => packages/react-native-payments/examples}/native/.babelrc (100%) rename {examples => packages/react-native-payments/examples}/native/.buckconfig (100%) rename {examples => packages/react-native-payments/examples}/native/.flowconfig (100%) rename {examples => packages/react-native-payments/examples}/native/.gitattributes (100%) rename {examples => packages/react-native-payments/examples}/native/.gitignore (100%) rename {examples => packages/react-native-payments/examples}/native/.watchmanconfig (100%) rename {examples => packages/react-native-payments/examples}/native/__tests__/index.android.js (100%) rename {examples => packages/react-native-payments/examples}/native/__tests__/index.ios.js (100%) rename {examples => packages/react-native-payments/examples}/native/android/app/BUCK (100%) rename {examples => packages/react-native-payments/examples}/native/android/app/build.gradle (100%) rename {examples => packages/react-native-payments/examples}/native/android/app/proguard-rules.pro (100%) rename {examples => packages/react-native-payments/examples}/native/android/app/src/main/AndroidManifest.xml (100%) rename {examples => packages/react-native-payments/examples}/native/android/app/src/main/java/com/reactnativepaymentsexample/MainActivity.java (100%) rename {examples => packages/react-native-payments/examples}/native/android/app/src/main/java/com/reactnativepaymentsexample/MainApplication.java (100%) rename {examples => packages/react-native-payments/examples}/native/android/app/src/main/res/mipmap-hdpi/ic_launcher.png (100%) rename {examples => packages/react-native-payments/examples}/native/android/app/src/main/res/mipmap-mdpi/ic_launcher.png (100%) rename {examples => packages/react-native-payments/examples}/native/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png (100%) rename {examples => packages/react-native-payments/examples}/native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png (100%) rename {examples => packages/react-native-payments/examples}/native/android/app/src/main/res/values/strings.xml (100%) rename {examples => packages/react-native-payments/examples}/native/android/app/src/main/res/values/styles.xml (100%) rename {examples => packages/react-native-payments/examples}/native/android/build.gradle (100%) rename {examples => packages/react-native-payments/examples}/native/android/gradle.properties (100%) rename {examples => packages/react-native-payments/examples}/native/android/gradle/wrapper/gradle-wrapper.jar (100%) rename {examples => packages/react-native-payments/examples}/native/android/gradle/wrapper/gradle-wrapper.properties (100%) rename {examples => packages/react-native-payments/examples}/native/android/gradlew (100%) rename {examples => packages/react-native-payments/examples}/native/android/gradlew.bat (100%) rename {examples => packages/react-native-payments/examples}/native/android/keystores/BUCK (100%) rename {examples => packages/react-native-payments/examples}/native/android/keystores/debug.keystore.properties (100%) rename {examples => packages/react-native-payments/examples}/native/android/settings.gradle (100%) rename {examples => packages/react-native-payments/examples}/native/index.android.js (92%) rename {examples => packages/react-native-payments/examples}/native/index.ios.js (100%) rename {examples => packages/react-native-payments/examples}/native/ios/ReactNativePaymentsExample-tvOS/Info.plist (100%) rename {examples => packages/react-native-payments/examples}/native/ios/ReactNativePaymentsExample-tvOSTests/Info.plist (100%) rename {examples => packages/react-native-payments/examples}/native/ios/ReactNativePaymentsExample.xcodeproj/project.pbxproj (100%) rename {examples => packages/react-native-payments/examples}/native/ios/ReactNativePaymentsExample.xcodeproj/xcshareddata/xcschemes/ReactNativePaymentsExample-tvOS.xcscheme (100%) rename {examples => packages/react-native-payments/examples}/native/ios/ReactNativePaymentsExample.xcodeproj/xcshareddata/xcschemes/ReactNativePaymentsExample.xcscheme (100%) rename {examples => packages/react-native-payments/examples}/native/ios/ReactNativePaymentsExample/AppDelegate.h (100%) rename {examples => packages/react-native-payments/examples}/native/ios/ReactNativePaymentsExample/AppDelegate.m (100%) rename {examples => packages/react-native-payments/examples}/native/ios/ReactNativePaymentsExample/Base.lproj/LaunchScreen.xib (100%) rename {examples => packages/react-native-payments/examples}/native/ios/ReactNativePaymentsExample/Images.xcassets/AppIcon.appiconset/Contents.json (100%) rename {examples => packages/react-native-payments/examples}/native/ios/ReactNativePaymentsExample/Info.plist (100%) rename {examples => packages/react-native-payments/examples}/native/ios/ReactNativePaymentsExample/ReactNativePaymentsExample.entitlements (100%) rename {examples => packages/react-native-payments/examples}/native/ios/ReactNativePaymentsExample/main.m (100%) rename {examples/braintree/ios/Frameworks/Braintree/IntegrationTests => packages/react-native-payments/examples/native/ios/ReactNativePaymentsExampleTests}/Info.plist (100%) mode change 100755 => 100644 rename {examples => packages/react-native-payments/examples}/native/ios/ReactNativePaymentsExampleTests/ReactNativePaymentsExampleTests.m (100%) rename {examples => packages/react-native-payments/examples}/native/ios/main.jsbundle (100%) rename {examples => packages/react-native-payments/examples}/native/package.json (100%) rename {examples => packages/react-native-payments/examples}/native/webpack.haul.js (100%) rename {examples => packages/react-native-payments/examples}/native/yarn.lock (100%) rename {examples => packages/react-native-payments/examples}/stripe/.babelrc (100%) rename {examples => packages/react-native-payments/examples}/stripe/.buckconfig (100%) rename {examples => packages/react-native-payments/examples}/stripe/.flowconfig (100%) rename {examples => packages/react-native-payments/examples}/stripe/.gitattributes (100%) rename {examples => packages/react-native-payments/examples}/stripe/.gitignore (100%) rename {examples => packages/react-native-payments/examples}/stripe/.watchmanconfig (100%) rename {examples => packages/react-native-payments/examples}/stripe/__tests__/index.android.js (100%) rename {examples => packages/react-native-payments/examples}/stripe/__tests__/index.ios.js (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/app/BUCK (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/app/build.gradle (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/app/proguard-rules.pro (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/app/src/main/AndroidManifest.xml (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/app/src/main/java/com/stripeexample/MainActivity.java (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/app/src/main/java/com/stripeexample/MainApplication.java (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/app/src/main/res/mipmap-hdpi/ic_launcher.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/app/src/main/res/mipmap-mdpi/ic_launcher.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/app/src/main/res/values/strings.xml (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/app/src/main/res/values/styles.xml (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/build.gradle (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/gradle.properties (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/gradle/wrapper/gradle-wrapper.jar (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/gradle/wrapper/gradle-wrapper.properties (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/gradlew (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/gradlew.bat (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/keystores/BUCK (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/keystores/debug.keystore.properties (100%) rename {examples => packages/react-native-payments/examples}/stripe/android/settings.gradle (100%) rename {examples => packages/react-native-payments/examples}/stripe/icon.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/index.android.js (91%) rename {examples => packages/react-native-payments/examples}/stripe/index.ios.js (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Headers (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Info.plist (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Modules (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/Info.plist (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/_CodeSignature/CodeDirectory (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/_CodeSignature/CodeRequirements (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/_CodeSignature/CodeRequirements-1 (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/_CodeSignature/CodeResources (100%) rename lib/js/utils.js => packages/react-native-payments/examples/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/_CodeSignature/CodeSignature (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/de.lproj/Localizable.strings (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/en.lproj/Localizable.strings (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/es.lproj/Localizable.strings (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/fr.lproj/Localizable.strings (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/it.lproj/Localizable.strings (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/ja.lproj/Localizable.strings (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/nl.lproj/Localizable.strings (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_amex.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_amex@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_amex@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_amex_template.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_amex_template@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_amex_template@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_applepay.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_applepay@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_applepay@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_cvc.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_cvc@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_cvc@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_cvc_amex.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_cvc_amex@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_cvc_amex@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_diners.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_diners@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_diners@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_diners_template.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_diners_template@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_diners_template@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_discover.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_discover@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_discover@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_discover_template.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_discover_template@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_discover_template@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_error.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_error@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_error@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_error_amex.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_error_amex@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_error_amex@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_form_back.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_form_back@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_form_back@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_form_front.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_form_front@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_form_front@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_jcb.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_jcb@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_jcb@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_jcb_template.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_jcb_template@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_jcb_template@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_mastercard.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_mastercard@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_mastercard@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_mastercard_template.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_mastercard_template@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_mastercard_template@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_unknown.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_unknown@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_unknown@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_visa.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_visa@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_visa@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_visa_template.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_visa_template@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_card_visa_template@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_icon_add.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_icon_add@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_icon_add@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_icon_checkmark.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_icon_checkmark@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_icon_checkmark@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_icon_chevron_left.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_icon_chevron_left@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_icon_chevron_left@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_shipping_form.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_shipping_form@2x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/stp_shipping_form@3x.png (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Stripe.bundle/zh-Hans.lproj/Localizable.strings (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPAPIClient+ApplePay.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPAPIClient.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPAPIResponseDecodable.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPAddCardViewController.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPAddress.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPApplePayPaymentMethod.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPBackendAPIAdapter.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPBankAccount.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPBankAccountParams.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPBlocks.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPCard.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPCardBrand.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPCardParams.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPCardValidationState.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPCardValidator.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPCoreScrollViewController.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPCoreTableViewController.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPCoreViewController.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPCustomer.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPCustomerContext.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPEphemeralKeyProvider.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPFile.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPFormEncodable.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPImageLibrary.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPPaymentActivityIndicatorView.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPPaymentCardTextField.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPPaymentConfiguration.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPPaymentContext.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPPaymentMethod.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPPaymentMethodsViewController.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPPaymentResult.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPRedirectContext.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPShippingAddressViewController.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPSource.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPSourceCardDetails.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPSourceOwner.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPSourceParams.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPSourceProtocol.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPSourceReceiver.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPSourceRedirect.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPSourceSEPADebitDetails.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPSourceVerification.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPTheme.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPToken.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/STPUserInformation.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/Stripe.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/StripeError.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Headers/UINavigationBar+Stripe_Theme.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Modules/module.modulemap (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/A/Stripe (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/Frameworks/Stripe.framework/Versions/Current (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/StripeExample-tvOS/Info.plist (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/StripeExample-tvOSTests/Info.plist (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/StripeExample.xcodeproj/project.pbxproj (97%) rename {examples => packages/react-native-payments/examples}/stripe/ios/StripeExample.xcodeproj/xcshareddata/xcschemes/StripeExample-tvOS.xcscheme (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/StripeExample.xcodeproj/xcshareddata/xcschemes/StripeExample.xcscheme (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/StripeExample/AppDelegate.h (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/StripeExample/AppDelegate.m (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/StripeExample/Base.lproj/LaunchScreen.xib (100%) rename {examples/braintree/ios/Frameworks/Braintree/Demo/CarthageTest/CarthageTest/Assets.xcassets => packages/react-native-payments/examples/stripe/ios/StripeExample/Images.xcassets}/AppIcon.appiconset/Contents.json (100%) mode change 100755 => 100644 rename {examples => packages/react-native-payments/examples}/stripe/ios/StripeExample/Info.plist (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/StripeExample/StripeExample.entitlements (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/StripeExample/main.m (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/StripeExampleTests/Info.plist (100%) rename {examples => packages/react-native-payments/examples}/stripe/ios/StripeExampleTests/StripeExampleTests.m (100%) rename {examples => packages/react-native-payments/examples}/stripe/package.json (86%) rename {examples => packages/react-native-payments/examples}/stripe/webpack.haul.js (100%) rename {examples => packages/react-native-payments/examples}/stripe/yarn.lock (100%) rename {examples => packages/react-native-payments/examples}/web/.gitignore (100%) rename {examples => packages/react-native-payments/examples}/web/index.web.js (100%) rename {examples => packages/react-native-payments/examples}/web/package.json (100%) rename {examples => packages/react-native-payments/examples}/web/public/index.html (100%) rename {examples => packages/react-native-payments/examples}/web/webpack.base.config.js (100%) rename {examples => packages/react-native-payments/examples}/web/webpack.development.config.js (100%) rename {examples => packages/react-native-payments/examples}/web/webpack.production.config.js (100%) rename {examples => packages/react-native-payments/examples}/web/yarn.lock (100%) rename index.js => packages/react-native-payments/index.js (100%) rename {lib => packages/react-native-payments/lib}/android/build.gradle (100%) rename {lib => packages/react-native-payments/lib}/android/src/main/AndroidManifest.xml (100%) rename {lib => packages/react-native-payments/lib}/android/src/main/java/com/reactlibrary/ReactNativePaymentsModule.java (100%) rename {lib => packages/react-native-payments/lib}/android/src/main/java/com/reactlibrary/ReactNativePaymentsPackage.java (100%) rename {lib => packages/react-native-payments/lib}/ios/GatewayManager.h (87%) rename {lib => packages/react-native-payments/lib}/ios/GatewayManager.m (88%) rename {lib => packages/react-native-payments/lib}/ios/ReactNativePayments.h (100%) rename {lib => packages/react-native-payments/lib}/ios/ReactNativePayments.m (100%) rename {lib => packages/react-native-payments/lib}/ios/ReactNativePayments.podspec (100%) rename {lib => packages/react-native-payments/lib}/ios/ReactNativePayments.xcodeproj/project.pbxproj (100%) rename {lib => packages/react-native-payments/lib}/ios/ReactNativePayments.xcodeproj/project.xcworkspace/contents.xcworkspacedata (100%) rename {lib => packages/react-native-payments/lib}/js/NativePayments.js (100%) rename {lib => packages/react-native-payments/lib}/js/PaymentRequest.js (99%) rename {lib => packages/react-native-payments/lib}/js/PaymentRequestUpdateEvent.js (100%) rename {lib => packages/react-native-payments/lib}/js/PaymentResponse.js (100%) rename {lib => packages/react-native-payments/lib}/js/__mocks__/index.js (100%) rename {lib => packages/react-native-payments/lib}/js/__tests__/PaymentRequest-test.js (100%) rename {lib => packages/react-native-payments/lib}/js/__tests__/PaymentRequestUpdateEvent-test.js (100%) rename {lib => packages/react-native-payments/lib}/js/__tests__/PaymentResponse-test.js (100%) rename {lib => packages/react-native-payments/lib}/js/__tests__/constants-test.js (100%) rename {lib => packages/react-native-payments/lib}/js/constants.js (87%) rename {lib => packages/react-native-payments/lib}/js/errors/__tests__/index-test.js (100%) rename {lib => packages/react-native-payments/lib}/js/errors/index.js (100%) rename {lib => packages/react-native-payments/lib}/js/helpers/__tests__/index-test.js (100%) rename {lib => packages/react-native-payments/lib}/js/helpers/index.js (98%) rename {lib => packages/react-native-payments/lib}/js/index.js (100%) rename {lib => packages/react-native-payments/lib}/js/types.js (100%) create mode 100644 packages/react-native-payments/lib/js/utils.js create mode 100644 packages/react-native-payments/package.json create mode 100644 packages/react-native-payments/yarn.lock diff --git a/.gitignore b/.gitignore index 67847ad5..be75b6e8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,35 +1,3 @@ -# System -# -.DS_Store - -# Xcode -# -build/ -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata -*.xccheckout -*.moved-aside -DerivedData -*.hmap -*.ipa -*.xcuserstate - -# npm -# node_modules/ - -# editors -# -jsconfig.json -.vscode/* - -# project -# -coverage +npm-debug.log +lerna-debug.log diff --git a/.travis.yml b/.travis.yml index dbd585f2..def138b2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ language: node_js node_js: - "node" -script: - - yarn test -- --verbose --coverage \ No newline at end of file +env: + - TEST_DIR=packages/react-native-payments +script: cd $TEST_DIR && yarn && yarn test -- --verbose --coverage \ No newline at end of file diff --git a/README.md b/README.md index 1cd56a6e..13fbeba7 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,8 @@ __Features__ - __Simple.__ No more checkout forms. - __Effective__. Faster checkouts that increase conversion. - __Future-proof__. Use a W3C Standards API, supported by companies like Google, Firefox and others. -- __Cross-platform.__ Share payments code between your iOS and web apps. -- __Payment Processor Support__. Process payments with payment processors like Braintree and Stripe. - +- __Cross-platform__. Share payments code between your iOS and web apps. +- __Add-ons__. Easily enable support for Stripe or Braintree via add-ons. @@ -24,7 +23,7 @@ __Features__ - [Demo](#demo) - [Installation](#installation) - [Usage](#usage) -- [Payment Processors](#payment-processors) +- [Add-ons](#add-ons) - [API](#api) - [Resources](#resources) - [License](#license) @@ -59,6 +58,8 @@ $ react-native link react-native-payments - [Requesting Contact Information](#requesting-contact-information) - [Requesting a Shipping Address](#requesting-a-shipping-address) - [Processing Payments](#processing-payments) +- [Dismissing the Payment Request](#dismissing-the-payment-request) + ### Registering as a Merchant Before you can start accepting payments with Apple Pay, there are a few steps you'll need to go through: @@ -301,14 +302,6 @@ paymentRequest.show() You can learn more about server-side decrypting of Payment Tokens on Apple's [Payment Token Format Reference](https://developer.apple.com/library/content/documentation/PassKit/Reference/PaymentTokenJSON/PaymentTokenJSON.html) documentation. #### Processing Payments with a Payment Processor -React Native Payments also supports processing payments with payment processors. There are three parts to setting up a payment processor: - -1. Creating an Apple Pay certificate -2. Adding and Linking the Payment Processor's SDK -3. Adding your Payment Processor's Tokens - -_NOTE: For payment processor specific documentation, see the [Payment Processors](#payment-processors) section._ - When using a payment processor, you'll receive a `paymentToken` field within the `details` of the `PaymentResponse`. Use this token to charge customers with your payment processor. ```es6 @@ -328,97 +321,24 @@ paymentRequest.show() }); ``` -## Payment Processors -- [Stripe](#stripe) -- [Braintree](#braintree) - -### Stripe -#### Creating an Apple Pay certificate -Follow Stripe's [documentation](https://stripe.com/docs/apple-pay/apps#csr) on how to create and upload the Apple Pay certificate back to Stripe. - -#### Adding and Linking the Stripe SDK -Next, you'll need to add Stripe's SDK to your project. You can install it by following one of the methods [listed in Stripe's documentation](https://stripe.com/docs/mobile/ios#getting-started). - -Finally, in Xcode: -1. Select the `ReactNativePayments` project from the left sidebar (under Libraries) -2. Select `Build Settings` and search for `Framework Search Paths` -3. Then add the path to where you added the Framework (remember, it's relative to `/node_modules/react-native-payments/lib/ios`) +For a list of supported payment processors and how to enable them, see the [Add-ons](#add-ons) section. -xcode-stripe - -#### Adding your Stripe Config -Now that you've added Stripe's SDK to your app, you're setup to use Stripe as a payment processor. - -In order to do so, you'll need to define a `paymentMethodTokenizationParameters` on your `PaymentMethodData` with Stripe specific parameters. Here's an example of what Stripe `paramaters` look like: - -```diff - const supportedMethods = [ - { - supportedMethods: ['apple-pay'], - data: { - merchantIdentifier: 'merchant.com.your-app.namespace', - supportedNetworks: ['visa', 'mastercard'], - countryCode: 'US', - currencyCode: 'USD', -+ paymentMethodTokenizationParameters: { -+ parameters: { -+ 'gateway': 'stripe', -+ 'stripe:publishableKey': 'your-publishable-key' -+ } -+ } - } - } - ]; -``` - -Now you're all set to receive Stripe payment tokens in your `PaymentResponse`. - -### Braintree -#### Creating an Apple Pay certificate -Follow Braintree's [documentation](https://developers.braintreepayments.com/guides/apple-pay/configuration/ios/v4#apple-pay-certificate-request-and-provisioning) on how to create and upload the Apple Pay certificate back to Braintree. - -#### Adding and Linking the Braintree SDK -Next, you'll need to add Braintree's SDK to your project. You can install it by following one of the methods [listed in Braintree's documentation](https://github.com/braintree/braintree_ios#installation). - -Finally, in Xcode: -1. Select the `ReactNativePayments` project from the left sidebar (under Libraries) -2. Select `Build Settings` and search for `Header Search Paths` -3. Then add the path to where you added the Library (remember, it's relative to `/node_modules/react-native-payments/lib/ios`) - -xcode-braintree - - -#### Adding your Braintree Config -Now that you've added Braintree's SDK to your app, you're setup to use Braintree as a payment processor. - -In order to do so, you'll need to define a `paymentMethodTokenizationParameters` on your `PaymentMethodData` with Braintree specific parameters. Here's an example of what Braintree `paramaters` look like: +### Dismissing the Payment Request +Dismissing the Payment Request is as simple as calling the `complete` method on of the `PaymentResponse`. -```diff - const supportedMethods = [ - { - supportedMethods: ['apple-pay'], - data: { - merchantIdentifier: 'merchant.com.your-app.namespace', - supportedNetworks: ['visa', 'mastercard'], - countryCode: 'US', - currencyCode: 'USD', -+ paymentMethodTokenizationParameters: { -+ parameters: { -+ 'gateway': 'braintree', -+ 'braintree:tokenizationKey': 'your-tokenization-key' -+ } -+ } - } - } - ]; +```es6 +paymentResponse.complete('success'); // Alternatively, you can call it with `fail` or `unknown` ``` -Now you're all set to receive Braintree payment tokens in your `PaymentResponse`. +## Add-ons +Here's a list of Payment Processors that you can enable via add-ons: +- [Stripe](https://github.com/naoufal/react-native-payments/blob/master/cli/packages/react-native-payments-addon-stripe) +- [Braintree](https://github.com/naoufal/react-native-payments/blob/master/cli/packages/react-native-payments-addon-braintree) ## API -### [PaymentRequest](https://github.com/naoufal/react-native-payments/tree/master/docs/PaymentRequest.md) -### [PaymentRequestUpdateEvent](https://github.com/naoufal/react-native-payments/tree/master/docs/PaymentRequestUpdateEvent.md) -### [PaymentResponse](https://github.com/naoufal/react-native-payments/tree/master/docs/PaymentResponse.md) +### [PaymentRequest](https://github.com/naoufal/react-native-payments/blob/master/cli/packages/react-native-payments/docs/PaymentRequest.md) +### [PaymentRequestUpdateEvent](https://github.com/naoufal/react-native-payments/blob/master/cli/packages/react-native-payments/docs/PaymentRequestUpdateEvent.md) +### [PaymentResponse](https://github.com/naoufal/react-native-payments/blob/master/cli/packages/react-native-payments/docs/PaymentResponse.md) ## Resources ### Payment Request @@ -434,15 +354,6 @@ Now you're all set to receive Braintree payment tokens in your `PaymentResponse` - [Processing Payments](https://developer.apple.com/library/content/ApplePay_Guide/ProcessPayment.html#//apple_ref/doc/uid/TP40014764-CH5-SW4) - [Payment Token Format Reference](https://developer.apple.com/library/content/documentation/PassKit/Reference/PaymentTokenJSON/PaymentTokenJSON.html#//apple_ref/doc/uid/TP40014929) -### Gateways -#### Stripe -- [Creating a new Apple Pay certificate](https://stripe.com/docs/apple-pay/apps#csr) -- [Installing the Stripe SDK](https://stripe.com/docs/mobile/ios#getting-started) - -#### Braintree -- [Creating a new Apple Pay certificate](https://developers.braintreepayments.com/guides/apple-pay/configuration/ios/v4#apple-pay-certificate-request-and-provisioning) -- [Installing the Braintree SDK](https://github.com/braintree/braintree_ios#installation) - # License Licensed under the MIT License, Copyright © 2017, [Naoufal Kadhom](https://twitter.com/naoufal). diff --git a/examples/braintree/ios/Frameworks/Braintree/.gitattributes b/examples/braintree/ios/Frameworks/Braintree/.gitattributes deleted file mode 100755 index 12b3bcba..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.strings text diff --git a/examples/braintree/ios/Frameworks/Braintree/.github/issue_template.md b/examples/braintree/ios/Frameworks/Braintree/.github/issue_template.md deleted file mode 100755 index 6099fc16..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/.github/issue_template.md +++ /dev/null @@ -1,10 +0,0 @@ -### General information - -* SDK/Library version: -* Environment: -* iOS Version and Device: -* Integration type and version: - -### Issue description - - diff --git a/examples/braintree/ios/Frameworks/Braintree/.gitignore b/examples/braintree/ios/Frameworks/Braintree/.gitignore deleted file mode 100755 index aec21916..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# OS X -.DS_Store - -# Xcode -build/ -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata -*.xccheckout -profile -*.moved-aside -DerivedData -*.hmap -*.ipa -*.xcscmblueprint - -# CocoaPods -Pods - -appledocs - -# This file is needed for signing the ipa with our enterprise cert; -# you can get it from the iOS Developer Center. -EverybodyVenmo.mobileprovision - -# This file should contain your HockeyApp auth -# token from https://rink.hockeyapp.net/manage/auth_tokens -.hockeyapp - -*.pid diff --git a/examples/braintree/ios/Frameworks/Braintree/.ruby-gemset b/examples/braintree/ios/Frameworks/Braintree/.ruby-gemset deleted file mode 100755 index 01d61f70..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/.ruby-gemset +++ /dev/null @@ -1 +0,0 @@ -braintree-ios diff --git a/examples/braintree/ios/Frameworks/Braintree/.ruby-version b/examples/braintree/ios/Frameworks/Braintree/.ruby-version deleted file mode 100755 index b1b25a5f..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -2.2.2 diff --git a/examples/braintree/ios/Frameworks/Braintree/.swift-version b/examples/braintree/ios/Frameworks/Braintree/.swift-version deleted file mode 100755 index bb576dbd..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/.swift-version +++ /dev/null @@ -1 +0,0 @@ -2.3 diff --git a/examples/braintree/ios/Frameworks/Braintree/.travis.yml b/examples/braintree/ios/Frameworks/Braintree/.travis.yml deleted file mode 100755 index cccad4cb..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/.travis.yml +++ /dev/null @@ -1,27 +0,0 @@ -sudo: true -language: objective-c -cache: - - bundler - #- cocoapods -osx_image: xcode8.3 - -before_install: - - brew update || brew update - - brew outdated xctool || brew upgrade xctool - - SIMULATOR_ID=$(xcrun instruments -s | grep -o "iPhone 6 (10.1) \[.*\]" | grep -o "\[.*\]" | sed "s/^\[\(.*\)\]$/\1/") - -install: - - bundle install - #- bundle exec pod repo update --silent - - bundle exec pod install || { rm -rf ./Pods; bundle exec pod install; } - -script: - - echo $SIMULATOR_ID - - open -a "simulator" --args -CurrentDeviceUDID $SIMULATOR_ID - - travis_wait 30 set -o pipefail && xcodebuild test -workspace Braintree.xcworkspace -scheme "UnitTests" -configuration Debug -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6,OS=10.1' | xcpretty -c - - travis_wait set -o pipefail && xcodebuild test -workspace Braintree.xcworkspace -scheme "IntegrationTests" -configuration Debug -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6,OS=10.1' | xcpretty -c - #- travis_wait bundle exec rake spec:unit - #- bundle exec rake spec:api:integration -notifications: - email: - - team-ios@getbraintree.com diff --git a/examples/braintree/ios/Frameworks/Braintree/ACKNOWLEDGEMENTS.md b/examples/braintree/ios/Frameworks/Braintree/ACKNOWLEDGEMENTS.md deleted file mode 100755 index 4fa54142..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/ACKNOWLEDGEMENTS.md +++ /dev/null @@ -1,17 +0,0 @@ -Acknowledgements ----------------- - -The Braintree SDK uses code from the following libraries: - -* [NSURL+QueryDictionary](https://github.com/itsthejb/NSURL-QueryDictionary), MIT License -* [AFNetworking](https://github.com/AFNetworking/AFNetworking), MIT License -* [CardIO](https://github.com/card-io/card.io-iOS-SDK), MIT License -* [FLEX](https://github.com/Flipboard/FLEX), BSD License -* [HockeySDK](https://github.com/bitstadium/HockeySDK-iOS), MIT License -* [InAppSettingsKit](https://github.com/futuretap/InAppSettingsKit), BSD License -* [PureLayout](https://github.com/PureLayout/PureLayout), MIT License -* [iOS-Slide-Menu](https://github.com/aryaxt/iOS-Slide-Menu), MIT License -* [Specta](https://github.com/specta/specta), MIT License -* [Expecta](https://github.com/specta/expecta), MIT License -* [OCMock](https://github.com/erikdoe/ocmock), Apache License 2.0 -* [OHHTTPStubs](https://github.com/AliSoftware/OHHTTPStubs), MIT License diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.podspec b/examples/braintree/ios/Frameworks/Braintree/Braintree.podspec deleted file mode 100755 index fdfd7f2d..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.podspec +++ /dev/null @@ -1,121 +0,0 @@ -Pod::Spec.new do |s| - s.name = "Braintree" - s.version = "4.8.4" - s.summary = "Braintree v.zero: A modern foundation for accepting payments" - s.description = <<-DESC - Braintree is a full-stack payments platform for developers - - This CocoaPod will help you accept payments in your iOS app. - - Check out our development portal at https://developers.braintreepayments.com. - DESC - s.homepage = "https://www.braintreepayments.com/how-braintree-works" - s.documentation_url = "https://developers.braintreepayments.com/ios/start/hello-client" - s.screenshots = "https://raw.githubusercontent.com/braintree/braintree_ios/master/screenshot.png" - s.license = "MIT" - s.author = { "Braintree" => "code@getbraintree.com" } - s.source = { :git => "https://github.com/braintree/braintree_ios.git", :tag => s.version.to_s } - s.social_media_url = "https://twitter.com/braintree" - - s.platform = :ios, "7.0" - s.requires_arc = true - s.compiler_flags = "-Wall -Werror -Wextra" - - s.default_subspecs = %w[Core Card PayPal UI] - - s.subspec "Core" do |s| - s.source_files = "BraintreeCore/**/*.{h,m}" - s.public_header_files = "BraintreeCore/Public/*.h" - s.frameworks = "AddressBook" - s.weak_frameworks = "Contacts" - end - - s.subspec "Apple-Pay" do |s| - s.source_files = "BraintreeApplePay/**/*.{h,m}" - s.public_header_files = "BraintreeApplePay/Public/*.h" - s.dependency "Braintree/Core" - s.frameworks = "PassKit" - end - - s.subspec "Card" do |s| - s.source_files = "BraintreeCard/**/*.{h,m}" - s.public_header_files = "BraintreeCard/Public/*.h" - s.dependency "Braintree/Core" - end - - s.subspec "DataCollector" do |s| - s.source_files = "BraintreeDataCollector/**/*.{h,m}" - s.public_header_files = "BraintreeDataCollector/Public/*.h" - s.vendored_library = "BraintreeDataCollector/Kount/libDeviceCollectorLibrary.a" - s.dependency "Braintree/Core" - end - - s.subspec "PayPal" do |s| - s.source_files = "BraintreePayPal/*.{h,m}", "BraintreePayPal/Public/*.h" - s.public_header_files = "BraintreePayPal/Public/*.h" - s.dependency "Braintree/Core" - s.dependency "Braintree/PayPalOneTouch" - end - - s.subspec "Venmo" do |s| - s.source_files = "BraintreeVenmo/**/*.{h,m}" - s.public_header_files = "BraintreeVenmo/Public/*.h" - s.dependency "Braintree/Core" - s.dependency "Braintree/PayPalDataCollector" - end - - s.subspec "UI" do |s| - s.source_files = "BraintreeUI/**/*.{h,m}" - s.public_header_files = "BraintreeUI/Public/*.h" - s.frameworks = "UIKit" - s.resource_bundles = { - "Braintree-UI-Localization" => ["BraintreeUI/Localization/*.lproj"], - "Braintree-Drop-In-Localization" => ["BraintreeUI/Drop-In/Localization/*.lproj"] } - s.dependency "Braintree/Card" - s.dependency "Braintree/Core" - end - - s.subspec "UnionPay" do |s| - s.source_files = "BraintreeUnionPay/**/*.{h,m}" - s.public_header_files = "BraintreeUnionPay/Public/*.h" - s.frameworks = "UIKit" - s.dependency "Braintree/Card" - s.dependency "Braintree/Core" - end - - s.subspec "3D-Secure" do |s| - s.source_files = "Braintree3DSecure/**/*.{h,m}" - s.public_header_files = "Braintree3DSecure/Public/*.h" - s.frameworks = "UIKit" - s.dependency "Braintree/Card" - s.dependency "Braintree/Core" - s.resource_bundle = { "Braintree-3D-Secure-Localization" => "Braintree3DSecure/Localization/*.lproj" } - end - - s.subspec "PayPalOneTouch" do |s| - s.source_files = "BraintreePayPal/PayPalOneTouch/**/*.{h,m}" - s.public_header_files = "BraintreePayPal/PayPalOneTouch/Public/*.h" - s.frameworks = "UIKit" - s.weak_frameworks = "SafariServices" - s.xcconfig = { "OTHER_LDFLAGS" => "-ObjC -lc++" } - s.dependency "Braintree/Core" - s.dependency "Braintree/PayPalDataCollector" - s.dependency "Braintree/PayPalUtils" - end - - s.subspec "PayPalDataCollector" do |s| - s.source_files = "BraintreePayPal/PayPalDataCollector/**/*.{h,m}" - s.public_header_files = "BraintreePayPal/PayPalDataCollector/Public/*.h", "BraintreePayPal/PayPalDataCollector/Risk/*.h" - s.frameworks = "MessageUI", "SystemConfiguration", "CoreLocation", "UIKit" - s.vendored_library = "BraintreePayPal/PayPalDataCollector/Risk/libPPRiskComponent.a" - s.dependency "Braintree/Core" - s.dependency "Braintree/PayPalUtils" - end - - s.subspec "PayPalUtils" do |s| - s.source_files = "BraintreePayPal/PayPalUtils/**/*.{h,m}" - s.public_header_files = "BraintreePayPal/PayPalUtils/Public/*.h" - s.frameworks = "MessageUI", "SystemConfiguration", "CoreLocation", "UIKit" - end -end - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/project.pbxproj b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/project.pbxproj deleted file mode 100755 index a5cfc1fa..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/project.pbxproj +++ /dev/null @@ -1,7492 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 031B94C41C34822800F136C8 /* BTUI_UIColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 031B94BB1C34822800F136C8 /* BTUI_UIColor.m */; }; - 031B94CC1C3482CC00F136C8 /* BTUICardExpirationValidatorSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 031B94BC1C34822800F136C8 /* BTUICardExpirationValidatorSpec.m */; }; - 031B94CD1C3483E600F136C8 /* BTUICardExpiryFormatterSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 031B94BD1C34822800F136C8 /* BTUICardExpiryFormatterSpec.m */; }; - 031B94CF1C34844700F136C8 /* BTUICardTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 031B94BF1C34822800F136C8 /* BTUICardTypeSpec.m */; }; - 031B94D01C3485ED00F136C8 /* EXPMatchers+haveKerning.m in Sources */ = {isa = PBXBuildFile; fileRef = 031B94C31C34822800F136C8 /* EXPMatchers+haveKerning.m */; }; - 031B94D11C34863200F136C8 /* BTUISpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 031B94C01C34822800F136C8 /* BTUISpec.m */; }; - 0325AC241C289B5F00E90999 /* BraintreeThreeDSecure_UITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0325AC231C289B5F00E90999 /* BraintreeThreeDSecure_UITests.swift */; }; - 032C26881DDEEB5000BBC1C2 /* BTDropInUtil_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 032C26871DDEEB5000BBC1C2 /* BTDropInUtil_Tests.swift */; }; - 032D3A721C580B09000E5F6B /* PPDataCollectorTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 032D3A711C580B09000E5F6B /* PPDataCollectorTest.m */; }; - 033800101C248B9C00CFF1D9 /* BraintreeDropInLegacy_UITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0338000F1C248B9C00CFF1D9 /* BraintreeDropInLegacy_UITests.swift */; }; - 035945571BE96345002116BB /* BTUIVenmoMonogramCardView.h in Headers */ = {isa = PBXBuildFile; fileRef = 035945551BE96345002116BB /* BTUIVenmoMonogramCardView.h */; }; - 035945581BE96345002116BB /* BTUIVenmoMonogramCardView.m in Sources */ = {isa = PBXBuildFile; fileRef = 035945561BE96345002116BB /* BTUIVenmoMonogramCardView.m */; }; - 0371D13C1CBECACD006A0B5D /* BTUIPayPalWordmarkVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A70241B81C598BA200875DB8 /* BTUIPayPalWordmarkVectorArtView.m */; }; - 0371D13D1CBECAEE006A0B5D /* BTUIPayPalCompactButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A70241BC1C5A9A2F00875DB8 /* BTUIPayPalCompactButton.m */; }; - 0384E94D1C23BAFF001A3380 /* BraintreePayPal_UITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0384E94C1C23BAFF001A3380 /* BraintreePayPal_UITests.swift */; }; - 0384E94F1C23C108001A3380 /* BTUITest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0384E94E1C23C108001A3380 /* BTUITest.swift */; }; - 03B368B31CAD95D300CDFC9C /* BraintreeDemoDropInLegacyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 03B368B21CAD95D300CDFC9C /* BraintreeDemoDropInLegacyViewController.m */; }; - 03CFEF301CD30B15006D2DA5 /* PPOTDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CFEF261CD30B15006D2DA5 /* PPOTDevice.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03CFEF311CD30B15006D2DA5 /* PPOTEncryptionHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CFEF271CD30B15006D2DA5 /* PPOTEncryptionHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03CFEF321CD30B15006D2DA5 /* PPOTJSONHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CFEF281CD30B15006D2DA5 /* PPOTJSONHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03CFEF331CD30B15006D2DA5 /* PPOTMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CFEF291CD30B15006D2DA5 /* PPOTMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03CFEF341CD30B15006D2DA5 /* PPOTPinnedCertificates.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CFEF2A1CD30B15006D2DA5 /* PPOTPinnedCertificates.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03CFEF351CD30B15006D2DA5 /* PPOTSimpleKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CFEF2B1CD30B15006D2DA5 /* PPOTSimpleKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03CFEF361CD30B15006D2DA5 /* PPOTString.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CFEF2C1CD30B15006D2DA5 /* PPOTString.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03CFEF371CD30B15006D2DA5 /* PPOTTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CFEF2D1CD30B15006D2DA5 /* PPOTTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03CFEF381CD30B15006D2DA5 /* PPOTURLSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CFEF2E1CD30B15006D2DA5 /* PPOTURLSession.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03CFEF391CD30B15006D2DA5 /* PPOTVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CFEF2F1CD30B15006D2DA5 /* PPOTVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03CFEF3B1CD30C28006D2DA5 /* PayPalUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 03CFEF3A1CD30C28006D2DA5 /* PayPalUtils.h */; }; - 03CFEF3E1CD3124F006D2DA5 /* PayPalUtils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7EDE47701CD2C3D00005E22B /* PayPalUtils.framework */; }; - 03D294FF1BE835C8004F90DA /* BTVenmoAccountNonce_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 03D294FE1BE835C8004F90DA /* BTVenmoAccountNonce_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 03EF62061DB4A90C004F4090 /* BraintreeCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */; }; - 03EF62071DB4A90C004F4090 /* BraintreeCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 03EF620A1DB4A90C004F4090 /* BraintreePayPal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D941D381B59C76A0016EFB4 /* BraintreePayPal.framework */; }; - 03EF620B1DB4A90C004F4090 /* BraintreePayPal.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2D941D381B59C76A0016EFB4 /* BraintreePayPal.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 03EF620E1DB4A90C004F4090 /* Braintree3DSecure.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D941D881B5D9E8C0016EFB4 /* Braintree3DSecure.framework */; }; - 03EF620F1DB4A90C004F4090 /* Braintree3DSecure.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2D941D881B5D9E8C0016EFB4 /* Braintree3DSecure.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 03EF62121DB4A90C004F4090 /* BraintreeApplePay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7C889741B5EF5DE007A0E9C /* BraintreeApplePay.framework */; }; - 03EF62131DB4A90C004F4090 /* BraintreeApplePay.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A7C889741B5EF5DE007A0E9C /* BraintreeApplePay.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 03EF62161DB4A90C004F4090 /* BraintreeCard.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7C889901B5F043B007A0E9C /* BraintreeCard.framework */; }; - 03EF62171DB4A90C004F4090 /* BraintreeCard.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A7C889901B5F043B007A0E9C /* BraintreeCard.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 03EF621A1DB4A90C004F4090 /* BraintreeVenmo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A77AA29C1B618C7700217B73 /* BraintreeVenmo.framework */; }; - 03EF621B1DB4A90C004F4090 /* BraintreeVenmo.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A77AA29C1B618C7700217B73 /* BraintreeVenmo.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 03EF621E1DB4A90C004F4090 /* BraintreeUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A77344F71B7A93A10083EC8D /* BraintreeUI.framework */; }; - 03EF621F1DB4A90C004F4090 /* BraintreeUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A77344F71B7A93A10083EC8D /* BraintreeUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 03EF62221DB4A90C004F4090 /* BraintreeDataCollector.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A76D7C001BB1CAB00000FA6A /* BraintreeDataCollector.framework */; }; - 03EF62231DB4A90C004F4090 /* BraintreeDataCollector.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A76D7C001BB1CAB00000FA6A /* BraintreeDataCollector.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 03EF62261DB4A90C004F4090 /* PayPalOneTouch.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A50C3B6F1C1A29C500612D90 /* PayPalOneTouch.framework */; }; - 03EF62271DB4A90C004F4090 /* PayPalOneTouch.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A50C3B6F1C1A29C500612D90 /* PayPalOneTouch.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 03EF622A1DB4A90D004F4090 /* PayPalDataCollector.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7B463051C3D9C2200048423 /* PayPalDataCollector.framework */; }; - 03EF622B1DB4A90D004F4090 /* PayPalDataCollector.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A7B463051C3D9C2200048423 /* PayPalDataCollector.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 03EF622E1DB4A90D004F4090 /* PayPalUtils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7EDE47701CD2C3D00005E22B /* PayPalUtils.framework */; }; - 03EF622F1DB4A90D004F4090 /* PayPalUtils.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7EDE47701CD2C3D00005E22B /* PayPalUtils.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 03EF62321DB4A90D004F4090 /* BraintreeUnionPay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4164B9AC1C9B658E006AE861 /* BraintreeUnionPay.framework */; }; - 03EF62331DB4A90D004F4090 /* BraintreeUnionPay.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4164B9AC1C9B658E006AE861 /* BraintreeUnionPay.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 03F54E121C499E1200F11033 /* BraintreeDemoPayPalForceFuturePaymentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 03F54E111C499E1200F11033 /* BraintreeDemoPayPalForceFuturePaymentViewController.m */; }; - 16CD2E9F1B4077FC00E68495 /* BTJSON_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 16CD2E9E1B4077FC00E68495 /* BTJSON_Tests.swift */; }; - 2D941D3B1B59C76A0016EFB4 /* BraintreePayPal.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D941D3A1B59C76A0016EFB4 /* BraintreePayPal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D941D411B59C8E60016EFB4 /* BTPayPalRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 16E17D261B3DFA0F0024F9AB /* BTPayPalRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D941D421B59C8E60016EFB4 /* BTPayPalRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 16E17D271B3DFA0F0024F9AB /* BTPayPalRequest.m */; }; - 2D941D431B59C8E60016EFB4 /* BTPayPalDriver_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A734D95E1B4C4C0700FE0E1B /* BTPayPalDriver_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 2D941D441B59C8E60016EFB4 /* BTPayPalDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C42B6C1B3DE0550028A3B4 /* BTPayPalDriver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D941D451B59C8E60016EFB4 /* BTPayPalDriver.m in Sources */ = {isa = PBXBuildFile; fileRef = 16C42B6D1B3DE0550028A3B4 /* BTPayPalDriver.m */; }; - 2D941D461B59C8E60016EFB4 /* BTPayPalRequestFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = A734D95A1B4C4B1000FE0E1B /* BTPayPalRequestFactory.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 2D941D471B59C8E60016EFB4 /* BTPayPalRequestFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = A734D95B1B4C4B1000FE0E1B /* BTPayPalRequestFactory.m */; }; - 2D941D4B1B59C8E60016EFB4 /* BTPayPalAccountNonce_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7102E191B5085BB0007D40A /* BTPayPalAccountNonce_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 2D941D4C1B59C8E60016EFB4 /* BTPayPalAccountNonce.h in Headers */ = {isa = PBXBuildFile; fileRef = 16E17D1A1B3DE4570024F9AB /* BTPayPalAccountNonce.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D941D4D1B59C8E60016EFB4 /* BTPayPalAccountNonce.m in Sources */ = {isa = PBXBuildFile; fileRef = 16E17D1B1B3DE4580024F9AB /* BTPayPalAccountNonce.m */; }; - 2D941D5B1B5D5F170016EFB4 /* BraintreeCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */; }; - 2D941D8B1B5D9E8C0016EFB4 /* Braintree3DSecure.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D941D8A1B5D9E8C0016EFB4 /* Braintree3DSecure.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D941D901B5D9EB40016EFB4 /* Three-D-Secure.strings in Resources */ = {isa = PBXBuildFile; fileRef = A79AFA4A1B56F822007B1DF1 /* Three-D-Secure.strings */; }; - 2D941D911B5D9F200016EFB4 /* BTThreeDSecureAuthenticationViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = A79AFA401B56F822007B1DF1 /* BTThreeDSecureAuthenticationViewController.h */; }; - 2D941D921B5D9F200016EFB4 /* BTThreeDSecureAuthenticationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA411B56F822007B1DF1 /* BTThreeDSecureAuthenticationViewController.m */; }; - 2D941D931B5D9F200016EFB4 /* BTThreeDSecureDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = A79AFA7E1B56FEE4007B1DF1 /* BTThreeDSecureDriver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D941D941B5D9F200016EFB4 /* BTThreeDSecureDriver.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA7F1B56FEE4007B1DF1 /* BTThreeDSecureDriver.m */; }; - 2D941D951B5D9F200016EFB4 /* BTThreeDSecureErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = A79AFA3B1B56F822007B1DF1 /* BTThreeDSecureErrors.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D941D961B5D9F200016EFB4 /* BTThreeDSecureErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA421B56F822007B1DF1 /* BTThreeDSecureErrors.m */; }; - 2D941D971B5D9F200016EFB4 /* BTThreeDSecureLookupResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A79AFA7A1B56FBD1007B1DF1 /* BTThreeDSecureLookupResult.h */; }; - 2D941D981B5D9F200016EFB4 /* BTThreeDSecureLookupResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA7B1B56FBD1007B1DF1 /* BTThreeDSecureLookupResult.m */; }; - 2D941D991B5D9F200016EFB4 /* BTThreeDSecureResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = A79AFA3D1B56F822007B1DF1 /* BTThreeDSecureResponse.h */; }; - 2D941D9A1B5D9F200016EFB4 /* BTThreeDSecureResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA441B56F822007B1DF1 /* BTThreeDSecureResponse.m */; }; - 2D941D9B1B5D9F200016EFB4 /* BTThreeDSecureCardNonce.h in Headers */ = {isa = PBXBuildFile; fileRef = A79AFA761B56F8C3007B1DF1 /* BTThreeDSecureCardNonce.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D941D9C1B5D9F200016EFB4 /* BTThreeDSecureCardNonce.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA771B56F8C3007B1DF1 /* BTThreeDSecureCardNonce.m */; }; - 2D941D9D1B5D9F200016EFB4 /* BTWebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = A79AFA451B56F822007B1DF1 /* BTWebViewController.h */; }; - 2D941D9E1B5D9F200016EFB4 /* BTWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA461B56F822007B1DF1 /* BTWebViewController.m */; }; - 2D941D9F1B5D9F200016EFB4 /* BTThreeDSecureLocalizedString.h in Headers */ = {isa = PBXBuildFile; fileRef = A79AFA481B56F822007B1DF1 /* BTThreeDSecureLocalizedString.h */; }; - 2D941DA01B5D9F200016EFB4 /* BTThreeDSecureLocalizedString.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA491B56F822007B1DF1 /* BTThreeDSecureLocalizedString.m */; }; - 2D941DA61B5D9F7F0016EFB4 /* BraintreeCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */; }; - 2DE12F421B59C36900EA1BCF /* BraintreeCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DE12F0B1B59BE0100EA1BCF /* BraintreeCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DE12F431B59C36900EA1BCF /* BTAnalyticsMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A6DD3E1B445550008857E1 /* BTAnalyticsMetadata.h */; }; - 2DE12F441B59C36900EA1BCF /* BTAnalyticsMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A6DD3F1B445550008857E1 /* BTAnalyticsMetadata.m */; }; - 2DE12F451B59C36900EA1BCF /* BTAPIClient_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A6DD2C1B431B75008857E1 /* BTAPIClient_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 2DE12F461B59C36900EA1BCF /* BTAPIClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 16C42B681B3DDFE00028A3B4 /* BTAPIClient.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DE12F471B59C36900EA1BCF /* BTAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 16C42B691B3DDFE00028A3B4 /* BTAPIClient.m */; }; - 2DE12F481B59C36900EA1BCF /* BTAPIPinnedCertificates.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A6DD4A1B445A29008857E1 /* BTAPIPinnedCertificates.h */; }; - 2DE12F491B59C36900EA1BCF /* BTAPIPinnedCertificates.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A6DD4B1B445A29008857E1 /* BTAPIPinnedCertificates.m */; }; - 2DE12F4A1B59C36900EA1BCF /* BTClientMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = A72E134F1B446DED002703DD /* BTClientMetadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DE12F4B1B59C36900EA1BCF /* BTClientMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = A72E13501B446DED002703DD /* BTClientMetadata.m */; }; - 2DE12F4C1B59C36900EA1BCF /* BTHTTP.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A6DD401B445550008857E1 /* BTHTTP.h */; }; - 2DE12F4D1B59C36900EA1BCF /* BTHTTP.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A6DD411B445550008857E1 /* BTHTTP.m */; }; - 2DE12F4E1B59C36900EA1BCF /* BTHTTPErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = A79AFA841B5721A2007B1DF1 /* BTHTTPErrors.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DE12F4F1B59C36900EA1BCF /* BTHTTPErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA861B5721F6007B1DF1 /* BTHTTPErrors.m */; }; - 2DE12F501B59C36900EA1BCF /* BTJSON.h in Headers */ = {isa = PBXBuildFile; fileRef = A79033A51B4AF360004C8234 /* BTJSON.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DE12F511B59C36900EA1BCF /* BTJSON.m in Sources */ = {isa = PBXBuildFile; fileRef = A79033A61B4AF360004C8234 /* BTJSON.m */; }; - 2DE12F521B59C36900EA1BCF /* BTKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A6DD4C1B445A29008857E1 /* BTKeychain.h */; }; - 2DE12F531B59C36900EA1BCF /* BTKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A6DD4D1B445A29008857E1 /* BTKeychain.m */; }; - 2DE12F541B59C36900EA1BCF /* BTLogger_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A6DD131B4312DC008857E1 /* BTLogger_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 2DE12F551B59C36900EA1BCF /* BTLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A6DD141B4312DC008857E1 /* BTLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DE12F561B59C36900EA1BCF /* BTLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A6DD151B4312DC008857E1 /* BTLogger.m */; }; - 2DE12F581B59C36900EA1BCF /* BTPostalAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = A72E134B1B44630C002703DD /* BTPostalAddress.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DE12F591B59C36900EA1BCF /* BTPostalAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = A72E134C1B44630C002703DD /* BTPostalAddress.m */; }; - 2DE12F5A1B59C36900EA1BCF /* BTPaymentMethodNonce.h in Headers */ = {isa = PBXBuildFile; fileRef = 16E17D061B3DE3B40024F9AB /* BTPaymentMethodNonce.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2DE12F5C1B59C36900EA1BCF /* BTURLUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A6DD511B445A29008857E1 /* BTURLUtils.m */; }; - 3E8581A0B6B678AFED359FA5 /* libPods-Tests-UnitTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FD5B458BFE02563982017D5E /* libPods-Tests-UnitTests.a */; }; - 4107EB231C88C75000F32D81 /* BTUICardPhoneNumberField.h in Headers */ = {isa = PBXBuildFile; fileRef = 4107EB211C88C75000F32D81 /* BTUICardPhoneNumberField.h */; }; - 4107EB241C88C75000F32D81 /* BTUICardPhoneNumberField.m in Sources */ = {isa = PBXBuildFile; fileRef = 4107EB221C88C75000F32D81 /* BTUICardPhoneNumberField.m */; }; - 411D1C001BB0B528000E7D8C /* Braintree3DSecure.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D941D881B5D9E8C0016EFB4 /* Braintree3DSecure.framework */; }; - 411D1C011BB0B528000E7D8C /* BraintreeApplePay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7C889741B5EF5DE007A0E9C /* BraintreeApplePay.framework */; }; - 411D1C021BB0B528000E7D8C /* BraintreeCard.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7C889901B5F043B007A0E9C /* BraintreeCard.framework */; }; - 411D1C031BB0B528000E7D8C /* BraintreeCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */; }; - 411D1C041BB0B528000E7D8C /* BraintreePayPal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D941D381B59C76A0016EFB4 /* BraintreePayPal.framework */; }; - 411D1C051BB0B528000E7D8C /* BraintreeUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A77344F71B7A93A10083EC8D /* BraintreeUI.framework */; }; - 411D1C061BB0B528000E7D8C /* BraintreeVenmo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A77AA29C1B618C7700217B73 /* BraintreeVenmo.framework */; }; - 411D1C071BB0B56E000E7D8C /* Braintree3DSecure.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D941D881B5D9E8C0016EFB4 /* Braintree3DSecure.framework */; }; - 411D1C081BB0B56E000E7D8C /* BraintreeApplePay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7C889741B5EF5DE007A0E9C /* BraintreeApplePay.framework */; }; - 411D1C091BB0B56E000E7D8C /* BraintreeCard.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7C889901B5F043B007A0E9C /* BraintreeCard.framework */; }; - 411D1C0A1BB0B56E000E7D8C /* BraintreeCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */; }; - 411D1C0B1BB0B56E000E7D8C /* BraintreePayPal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D941D381B59C76A0016EFB4 /* BraintreePayPal.framework */; }; - 411D1C0D1BB0B56E000E7D8C /* BraintreeVenmo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A77AA29C1B618C7700217B73 /* BraintreeVenmo.framework */; }; - 41211EF81BA0E45300DB1705 /* BTPaymentMethodNonce.m in Sources */ = {isa = PBXBuildFile; fileRef = 41211EF61BA0E45300DB1705 /* BTPaymentMethodNonce.m */; }; - 412FE0571B9799EE008AAABE /* BTApplePayClient_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 412FE0561B9799EE008AAABE /* BTApplePayClient_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 412FE05B1B97B03B008AAABE /* BraintreeCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */; }; - 413616EB1C1217F000D4C4A5 /* BTUIVenmoMonogramCardView.m in Sources */ = {isa = PBXBuildFile; fileRef = 035945561BE96345002116BB /* BTUIVenmoMonogramCardView.m */; }; - 413CDF4F1C779ED400B89FCA /* BTDataCollector_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 413CDF4E1C779ED400B89FCA /* BTDataCollector_Internal.h */; }; - 41472F941CB6D52200AFA75C /* BTConfiguration+UnionPay.m in Sources */ = {isa = PBXBuildFile; fileRef = 41472F921CB6D52200AFA75C /* BTConfiguration+UnionPay.m */; }; - 41472F951CB6D52200AFA75C /* BTConfiguration+UnionPay.m in Sources */ = {isa = PBXBuildFile; fileRef = 41472F921CB6D52200AFA75C /* BTConfiguration+UnionPay.m */; }; - 41472F971CB6D53400AFA75C /* BTConfiguration+UnionPay.h in Headers */ = {isa = PBXBuildFile; fileRef = 41472F961CB6D53400AFA75C /* BTConfiguration+UnionPay.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4149C91D1BA218830090665E /* BTPaymentMethodNonceParser_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4149C91C1BA218830090665E /* BTPaymentMethodNonceParser_Tests.swift */; }; - 415924B21BA0F2A900C095F6 /* BTPaymentMethodNonceParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 415924B01BA0F2A900C095F6 /* BTPaymentMethodNonceParser.m */; }; - 415924B41BA0F2D800C095F6 /* BTPaymentMethodNonceParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 415924B31BA0F2D800C095F6 /* BTPaymentMethodNonceParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4164B99E1C9B658E006AE861 /* BraintreeCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */; }; - 4164B9B01C9B6690006AE861 /* BraintreeUnionPay.h in Headers */ = {isa = PBXBuildFile; fileRef = 4164B9AF1C9B6690006AE861 /* BraintreeUnionPay.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4164B9B11C9B68CC006AE861 /* BraintreeCard.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7C889901B5F043B007A0E9C /* BraintreeCard.framework */; }; - 4164B9BA1C9B6988006AE861 /* BTCardClient+UnionPay.h in Headers */ = {isa = PBXBuildFile; fileRef = 4164B9B81C9B6988006AE861 /* BTCardClient+UnionPay.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4164B9BB1C9B6988006AE861 /* BTCardClient+UnionPay.m in Sources */ = {isa = PBXBuildFile; fileRef = 4164B9B91C9B6988006AE861 /* BTCardClient+UnionPay.m */; }; - 4164B9C01C9B74D4006AE861 /* BTCardClient+UnionPay.m in Sources */ = {isa = PBXBuildFile; fileRef = 4164B9B91C9B6988006AE861 /* BTCardClient+UnionPay.m */; }; - 4169A8F11CAB10680051DDAF /* BraintreeUnionPay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4164B9AC1C9B658E006AE861 /* BraintreeUnionPay.framework */; }; - 4169A8F81CAB11300051DDAF /* BraintreeUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A77344F71B7A93A10083EC8D /* BraintreeUI.framework */; }; - 4169A8F91CAB11300051DDAF /* BraintreeUnionPay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4164B9AC1C9B658E006AE861 /* BraintreeUnionPay.framework */; }; - 4169A8FA1CAB11300051DDAF /* PayPalOneTouch.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A50C3B6F1C1A29C500612D90 /* PayPalOneTouch.framework */; }; - 417404531BB08526008A5DEA /* BTThreeDSecureLocalizedString.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA491B56F822007B1DF1 /* BTThreeDSecureLocalizedString.m */; }; - 417404591BB08526008A5DEA /* BTThreeDSecureAuthenticationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA411B56F822007B1DF1 /* BTThreeDSecureAuthenticationViewController.m */; }; - 4174045A1BB08526008A5DEA /* BTThreeDSecureDriver.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA7F1B56FEE4007B1DF1 /* BTThreeDSecureDriver.m */; }; - 4174045B1BB08526008A5DEA /* BTThreeDSecureErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA421B56F822007B1DF1 /* BTThreeDSecureErrors.m */; }; - 4174045D1BB08526008A5DEA /* BTThreeDSecureLookupResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA7B1B56FBD1007B1DF1 /* BTThreeDSecureLookupResult.m */; }; - 4174045F1BB08526008A5DEA /* BTThreeDSecureResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA441B56F822007B1DF1 /* BTThreeDSecureResponse.m */; }; - 417404601BB08526008A5DEA /* BTThreeDSecureCardNonce.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA771B56F8C3007B1DF1 /* BTThreeDSecureCardNonce.m */; }; - 417404641BB08526008A5DEA /* BTWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA461B56F822007B1DF1 /* BTWebViewController.m */; }; - 4174046A1BB08530008A5DEA /* BTApplePayClient.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C8897D1B5EF62C007A0E9C /* BTApplePayClient.m */; }; - 4174046C1BB08530008A5DEA /* BTConfiguration+ApplePay.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B1C14E1B66E46900ED063C /* BTConfiguration+ApplePay.m */; }; - 4174046D1BB08530008A5DEA /* BTApplePayCardNonce.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C8897F1B5EF62C007A0E9C /* BTApplePayCardNonce.m */; }; - 417404741BB085F1008A5DEA /* BTCardClient.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C8899D1B5F0471007A0E9C /* BTCardClient.m */; }; - 417404751BB085F1008A5DEA /* BTCard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C889A01B5F0471007A0E9C /* BTCard.m */; }; - 417404771BB085F1008A5DEA /* BTCardNonce.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C889A21B5F0471007A0E9C /* BTCardNonce.m */; }; - 4174047D1BB08629008A5DEA /* BTAnalyticsMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A6DD3F1B445550008857E1 /* BTAnalyticsMetadata.m */; }; - 4174047F1BB08629008A5DEA /* BTAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 16C42B691B3DDFE00028A3B4 /* BTAPIClient.m */; }; - 417404811BB08629008A5DEA /* BTAPIPinnedCertificates.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A6DD4B1B445A29008857E1 /* BTAPIPinnedCertificates.m */; }; - 417404821BB08629008A5DEA /* BTAppSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B1C1521B66F79900ED063C /* BTAppSwitch.m */; }; - 417404831BB08629008A5DEA /* BTClientMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = A72E13501B446DED002703DD /* BTClientMetadata.m */; }; - 417404841BB08629008A5DEA /* BTClientToken.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D674721B84FDB400ED6C00 /* BTClientToken.m */; }; - 417404851BB08629008A5DEA /* BTConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B1C1421B66B3D000ED063C /* BTConfiguration.m */; }; - 417404871BB08629008A5DEA /* BTErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = A77346231B7AA4D50083EC8D /* BTErrors.m */; }; - 4174048A1BB08629008A5DEA /* BTHTTP.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A6DD411B445550008857E1 /* BTHTTP.m */; }; - 4174048B1BB08629008A5DEA /* BTHTTPErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AFA861B5721F6007B1DF1 /* BTHTTPErrors.m */; }; - 4174048C1BB08629008A5DEA /* BTJSON.m in Sources */ = {isa = PBXBuildFile; fileRef = A79033A61B4AF360004C8234 /* BTJSON.m */; }; - 4174048E1BB08629008A5DEA /* BTKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A6DD4D1B445A29008857E1 /* BTKeychain.m */; }; - 417404901BB08629008A5DEA /* BTLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A6DD151B4312DC008857E1 /* BTLogger.m */; }; - 417404911BB08629008A5DEA /* BTPostalAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = A72E134C1B44630C002703DD /* BTPostalAddress.m */; }; - 417404941BB08629008A5DEA /* BTPaymentMethodNonce.m in Sources */ = {isa = PBXBuildFile; fileRef = 41211EF61BA0E45300DB1705 /* BTPaymentMethodNonce.m */; }; - 417404951BB08629008A5DEA /* BTTokenizationService.m in Sources */ = {isa = PBXBuildFile; fileRef = A773462F1B7BB1A70083EC8D /* BTTokenizationService.m */; }; - 417404961BB08629008A5DEA /* BTPaymentMethodNonceParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 415924B01BA0F2A900C095F6 /* BTPaymentMethodNonceParser.m */; }; - 417404971BB08629008A5DEA /* BTURLUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A6DD511B445A29008857E1 /* BTURLUtils.m */; }; - 417404B71BB0864F008A5DEA /* BTConfiguration+PayPal.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B1C14A1B66E11C00ED063C /* BTConfiguration+PayPal.m */; }; - 417404B81BB0864F008A5DEA /* BTPayPalRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 16E17D271B3DFA0F0024F9AB /* BTPayPalRequest.m */; }; - 417404B91BB0864F008A5DEA /* BTPayPalDriver.m in Sources */ = {isa = PBXBuildFile; fileRef = 16C42B6D1B3DE0550028A3B4 /* BTPayPalDriver.m */; }; - 417404BC1BB0864F008A5DEA /* BTPayPalRequestFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = A734D95B1B4C4B1000FE0E1B /* BTPayPalRequestFactory.m */; }; - 417404BF1BB0864F008A5DEA /* BTPayPalAccountNonce.m in Sources */ = {isa = PBXBuildFile; fileRef = 16E17D1B1B3DE4580024F9AB /* BTPayPalAccountNonce.m */; }; - 417404C71BB08658008A5DEA /* BTConfiguration+Venmo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B1C1461B66D94600ED063C /* BTConfiguration+Venmo.m */; }; - 417404C91BB08658008A5DEA /* BTVenmoAppSwitchRequestURL.m in Sources */ = {isa = PBXBuildFile; fileRef = A7F96D0B1B604C1C005A4A09 /* BTVenmoAppSwitchRequestURL.m */; }; - 417404CB1BB08658008A5DEA /* BTVenmoAppSwitchReturnURL.m in Sources */ = {isa = PBXBuildFile; fileRef = A7F96D0D1B604C1C005A4A09 /* BTVenmoAppSwitchReturnURL.m */; }; - 417404CC1BB08658008A5DEA /* BTVenmoDriver.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C889FB1B5F0C00007A0E9C /* BTVenmoDriver.m */; }; - 417404CE1BB08658008A5DEA /* BTVenmoAccountNonce.m in Sources */ = {isa = PBXBuildFile; fileRef = A7F96D071B6043B7005A4A09 /* BTVenmoAccountNonce.m */; }; - 417404D31BB0869C008A5DEA /* BTDropInLocalizedString.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345FB1B7A9E340083EC8D /* BTDropInLocalizedString.m */; }; - 417404D51BB0869C008A5DEA /* BTDropInContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345EC1B7A9E340083EC8D /* BTDropInContentView.m */; }; - 417404D71BB0869C008A5DEA /* BTDropInErrorAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345EE1B7A9E340083EC8D /* BTDropInErrorAlert.m */; }; - 417404D91BB0869C008A5DEA /* BTDropInErrorState.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345F01B7A9E340083EC8D /* BTDropInErrorState.m */; }; - 417404DB1BB0869C008A5DEA /* BTDropInSelectPaymentMethodViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345F21B7A9E340083EC8D /* BTDropInSelectPaymentMethodViewController.m */; }; - 417404DD1BB0869C008A5DEA /* BTDropInUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345F41B7A9E340083EC8D /* BTDropInUtil.m */; }; - 417404DE1BB0869C008A5DEA /* BTDropInViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345F61B7A9E340083EC8D /* BTDropInViewController.m */; }; - 417404DF1BB0869C008A5DEA /* BTPaymentButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345F81B7A9E340083EC8D /* BTPaymentButton.m */; }; - 417404E11BB0869C008A5DEA /* BTUILocalizedString.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345081B7A93D00083EC8D /* BTUILocalizedString.m */; }; - 417404E31BB0869C008A5DEA /* BTUICardExpirationValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345211B7A93D00083EC8D /* BTUICardExpirationValidator.m */; }; - 417404E51BB0869C008A5DEA /* BTUICardExpiryFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345231B7A93D00083EC8D /* BTUICardExpiryFormat.m */; }; - 417404E71BB0869C008A5DEA /* BTUICardType.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345251B7A93D00083EC8D /* BTUICardType.m */; }; - 417404E91BB0869C008A5DEA /* BTUIUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345271B7A93D00083EC8D /* BTUIUtil.m */; }; - 417404F81BB0869C008A5DEA /* BTUI.m in Sources */ = {isa = PBXBuildFile; fileRef = A773452B1B7A93D00083EC8D /* BTUI.m */; }; - 417404F91BB0869C008A5DEA /* UIColor+BTUI.m in Sources */ = {isa = PBXBuildFile; fileRef = A773452D1B7A93D00083EC8D /* UIColor+BTUI.m */; }; - 417404FB1BB0869C008A5DEA /* BTUIHorizontalButtonStackCollectionViewFlowLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345381B7A93D00083EC8D /* BTUIHorizontalButtonStackCollectionViewFlowLayout.m */; }; - 417404FD1BB0869C008A5DEA /* BTUIHorizontalButtonStackSeparatorLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773453A1B7A93D00083EC8D /* BTUIHorizontalButtonStackSeparatorLineView.m */; }; - 417404FF1BB0869C008A5DEA /* BTUIPaymentButtonCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A773453C1B7A93D00083EC8D /* BTUIPaymentButtonCollectionViewCell.m */; }; - 417405011BB0869C008A5DEA /* BTUIFloatLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = A773453F1B7A93D00083EC8D /* BTUIFloatLabel.m */; }; - 417405031BB0869C008A5DEA /* BTUIFormField.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345411B7A93D00083EC8D /* BTUIFormField.m */; }; - 417405061BB0869C008A5DEA /* BTUIScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345441B7A93D00083EC8D /* BTUIScrollView.m */; }; - 417405081BB0869C008A5DEA /* BTUITextField.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345461B7A93D00083EC8D /* BTUITextField.m */; }; - 4174050A1BB0869C008A5DEA /* BTUIThemedView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345481B7A93D00083EC8D /* BTUIThemedView.m */; }; - 4174050C1BB0869C008A5DEA /* BTUIVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773454A1B7A93D00083EC8D /* BTUIVectorArtView.m */; }; - 4174050E1BB0869C008A5DEA /* BTUICardCvvField.m in Sources */ = {isa = PBXBuildFile; fileRef = A773454D1B7A93D00083EC8D /* BTUICardCvvField.m */; }; - 417405101BB0869C008A5DEA /* BTUICardExpiryField.m in Sources */ = {isa = PBXBuildFile; fileRef = A773454F1B7A93D00083EC8D /* BTUICardExpiryField.m */; }; - 417405121BB0869D008A5DEA /* BTUICardNumberField.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345511B7A93D00083EC8D /* BTUICardNumberField.m */; }; - 417405141BB0869D008A5DEA /* BTUICardPostalCodeField.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345531B7A93D00083EC8D /* BTUICardPostalCodeField.m */; }; - 417405151BB0869D008A5DEA /* BTUICardFormView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345561B7A93D00083EC8D /* BTUICardFormView.m */; }; - 417405161BB0869D008A5DEA /* BTUICTAControl.m in Sources */ = {isa = PBXBuildFile; fileRef = A773455D1B7A93D00083EC8D /* BTUICTAControl.m */; }; - 417405171BB0869D008A5DEA /* BTUICardHint.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345591B7A93D00083EC8D /* BTUICardHint.m */; }; - 417405181BB0869D008A5DEA /* BTUICoinbaseButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A773455B1B7A93D00083EC8D /* BTUICoinbaseButton.m */; }; - 417405191BB0869D008A5DEA /* BTUIPayPalButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345611B7A93D00083EC8D /* BTUIPayPalButton.m */; }; - 4174051A1BB0869D008A5DEA /* BTUIPaymentMethodView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773455F1B7A93D00083EC8D /* BTUIPaymentMethodView.m */; }; - 4174051B1BB0869D008A5DEA /* BTUISummaryView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345631B7A93D00083EC8D /* BTUISummaryView.m */; }; - 4174051C1BB0869D008A5DEA /* BTUIVenmoButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345651B7A93D00083EC8D /* BTUIVenmoButton.m */; }; - 4174051E1BB0869D008A5DEA /* BTUIAmExVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345681B7A93D00083EC8D /* BTUIAmExVectorArtView.m */; }; - 417405201BB0869D008A5DEA /* BTUICVVBackVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345701B7A93D00083EC8D /* BTUICVVBackVectorArtView.m */; }; - 417405221BB0869D008A5DEA /* BTUICVVFrontVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345721B7A93D00083EC8D /* BTUICVVFrontVectorArtView.m */; }; - 417405241BB0869D008A5DEA /* BTUICardVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773456A1B7A93D00083EC8D /* BTUICardVectorArtView.m */; }; - 417405261BB0869D008A5DEA /* BTUICoinbaseMonogramCardView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773456C1B7A93D00083EC8D /* BTUICoinbaseMonogramCardView.m */; }; - 417405281BB0869D008A5DEA /* BTUICoinbaseWordmarkVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773456E1B7A93D00083EC8D /* BTUICoinbaseWordmarkVectorArtView.m */; }; - 4174052A1BB0869D008A5DEA /* BTUIDinersClubVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345741B7A93D00083EC8D /* BTUIDinersClubVectorArtView.m */; }; - 4174052C1BB086B3008A5DEA /* BTUIDiscoverVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345761B7A93D00083EC8D /* BTUIDiscoverVectorArtView.m */; }; - 4174052E1BB086B3008A5DEA /* BTUIJCBVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345781B7A93D00083EC8D /* BTUIJCBVectorArtView.m */; }; - 417405301BB086B3008A5DEA /* BTUIMaestroVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773457A1B7A93D00083EC8D /* BTUIMaestroVectorArtView.m */; }; - 417405321BB086B3008A5DEA /* BTUIMasterCardVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773457C1B7A93D00083EC8D /* BTUIMasterCardVectorArtView.m */; }; - 417405341BB086B3008A5DEA /* BTUIPayPalMonogramCardView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773457E1B7A93D00083EC8D /* BTUIPayPalMonogramCardView.m */; }; - 417405361BB086B3008A5DEA /* BTUIPayPalWordmarkCompactVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345801B7A93D00083EC8D /* BTUIPayPalWordmarkCompactVectorArtView.m */; }; - 417405381BB086B3008A5DEA /* BTUIUnknownCardVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345821B7A93D00083EC8D /* BTUIUnknownCardVectorArtView.m */; }; - 4174053A1BB086B3008A5DEA /* BTUIVenmoWordmarkVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345841B7A93D00083EC8D /* BTUIVenmoWordmarkVectorArtView.m */; }; - 4174053C1BB086B3008A5DEA /* BTUIVisaVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345861B7A93D00083EC8D /* BTUIVisaVectorArtView.m */; }; - 4174053E1BB086B3008A5DEA /* BTUIViewUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345351B7A93D00083EC8D /* BTUIViewUtil.m */; }; - 418456E81BE42F1600C32391 /* BTViewControllerPresentingDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 418456E71BE42F0B00C32391 /* BTViewControllerPresentingDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 41913D9F1BB9D504004EF1BB /* BTUIPaymentOptionType.h in Headers */ = {isa = PBXBuildFile; fileRef = 41913D9D1BB9D503004EF1BB /* BTUIPaymentOptionType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 41913DA01BB9D504004EF1BB /* BTUIThemedView.h in Headers */ = {isa = PBXBuildFile; fileRef = 41913D9E1BB9D503004EF1BB /* BTUIThemedView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 41935DE61D528B25008D48FB /* BraintreeCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */; }; - 41B787BD1BAA20DB001AD351 /* BTDropInViewController_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41B787BC1BAA20DB001AD351 /* BTDropInViewController_Tests.swift */; }; - 41BC340D1BF695FC00161106 /* BTPaymentRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A7F179FD1BE98E0E00E91646 /* BTPaymentRequest.m */; }; - 41D54D301C7F97750051C96B /* BraintreeCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */; }; - 41D6E2A71B8D12CD00A3C2AE /* FakePayPalClasses.m in Sources */ = {isa = PBXBuildFile; fileRef = 41D6E2A61B8D12CD00A3C2AE /* FakePayPalClasses.m */; }; - 41F1D1FB1CAA005500DA34CB /* BTCardClient_UnionPayTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41F1D1FA1CAA005500DA34CB /* BTCardClient_UnionPayTests.swift */; }; - 46E2F09F1CF47CF700A5789D /* BTUICardPhoneNumberField.m in Sources */ = {isa = PBXBuildFile; fileRef = 4107EB221C88C75000F32D81 /* BTUICardPhoneNumberField.m */; }; - 46E2F0A01CF47D3300A5789D /* BTUIUnionPayVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A78422721C98920500D3EBFF /* BTUIUnionPayVectorArtView.m */; }; - 68178D54CF930DF9D5BC76FB /* libPods-Demo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D9C499891AB1363F3E1290 /* libPods-Demo.a */; }; - 7EDE474E1CD2C3D00005E22B /* PPOTSimpleKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B4632A1C3DA73300048423 /* PPOTSimpleKeychain.m */; }; - 7EDE474F1CD2C3D00005E22B /* PPOTDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463201C3DA73300048423 /* PPOTDevice.m */; }; - 7EDE47501CD2C3D00005E22B /* PPOTString.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B4632C1C3DA73300048423 /* PPOTString.m */; }; - 7EDE47511CD2C3D00005E22B /* PPOTEncryptionHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463221C3DA73300048423 /* PPOTEncryptionHelper.m */; }; - 7EDE47521CD2C3D00005E22B /* PPOTJSONHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463241C3DA73300048423 /* PPOTJSONHelper.m */; }; - 7EDE47531CD2C3D00005E22B /* PPOTURLSession.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463301C3DA73300048423 /* PPOTURLSession.m */; }; - 7EDE47541CD2C3D00005E22B /* PPOTPinnedCertificates.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463281C3DA73300048423 /* PPOTPinnedCertificates.m */; }; - 7EDE47561CD2C3D00005E22B /* PPOTMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463261C3DA73300048423 /* PPOTMacros.m */; }; - 7EDE47571CD2C3D00005E22B /* PPOTTime.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B4632E1C3DA73300048423 /* PPOTTime.m */; }; - 7EDE47591CD2C3D00005E22B /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7A6DD281B43145D008857E1 /* SystemConfiguration.framework */; }; - 7EDE475A1CD2C3D00005E22B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A50C3BC41C1B3F1500612D90 /* UIKit.framework */; }; - 7EDE475B1CD2C3D00005E22B /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7A6DD261B431453008857E1 /* CoreLocation.framework */; }; - 7EDE475C1CD2C3D00005E22B /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7A6DD241B43144D008857E1 /* MessageUI.framework */; }; - 7EDE47721CD2C51C0005E22B /* PayPalUtils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7EDE47701CD2C3D00005E22B /* PayPalUtils.framework */; }; - 7EDE47731CD2C5270005E22B /* PayPalUtils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7EDE47701CD2C3D00005E22B /* PayPalUtils.framework */; }; - 841CDCC21BCDBC1500A06B21 /* BraintreeDataCollector.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A76D7C001BB1CAB00000FA6A /* BraintreeDataCollector.framework */; }; - 842B68F11BCF083E0039634F /* BTAPIClient_SwiftTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842B68F01BCF083E0039634F /* BTAPIClient_SwiftTests.swift */; }; - 844ED5E71BCC3F0B002B590C /* BTDataCollector_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844ED5E61BCC3F0B002B590C /* BTDataCollector_Tests.swift */; }; - 848470E21BE81893009B12AE /* BTFakeHTTP.m in Sources */ = {isa = PBXBuildFile; fileRef = 848470E11BE81893009B12AE /* BTFakeHTTP.m */; }; - 8498EC1B1BB46D4B007FFDEC /* BTCardClient_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8498EC1A1BB46D4B007FFDEC /* BTCardClient_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A50C3AF31C19F07B00612D90 /* PPOTCore.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = A50C3AA01C19E6A200612D90 /* PPOTCore.h */; }; - A50C3AF41C19F07B00612D90 /* PPOTResult.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = A50C3AA11C19E6A200612D90 /* PPOTResult.h */; }; - A50C3AF51C19F07B00612D90 /* PPOTRequest.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = A50C3AA21C19E6A200612D90 /* PPOTRequest.h */; }; - A50C3AF61C19F07B00612D90 /* PPOTRequestFactory.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = A50C3AA31C19E6A200612D90 /* PPOTRequestFactory.h */; }; - A50C3B111C19F6C200612D90 /* libPayPalDataCollector-StaticLibrary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A50C3B051C19F55C00612D90 /* libPayPalDataCollector-StaticLibrary.a */; }; - A50C3B3A1C1A1CDD00612D90 /* PPOTConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3AD01C19E7F500612D90 /* PPOTConfiguration.m */; }; - A50C3B3B1C1A1CDD00612D90 /* PPOTAppSwitchResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B131C19F7FC00612D90 /* PPOTAppSwitchResponse.m */; }; - A50C3B3C1C1A1CDD00612D90 /* PPOTAppSwitchUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B151C19F7FC00612D90 /* PPOTAppSwitchUtil.m */; }; - A50C3B3D1C1A1CDD00612D90 /* PPOTCheckoutAppSwitchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B171C19F7FC00612D90 /* PPOTCheckoutAppSwitchRequest.m */; }; - A50C3B3E1C1A1CDD00612D90 /* PPOTCheckoutBrowserSwitchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B191C19F7FC00612D90 /* PPOTCheckoutBrowserSwitchRequest.m */; }; - A50C3B3F1C1A1CDD00612D90 /* PPOTCheckoutSwitchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B1B1C19F7FC00612D90 /* PPOTCheckoutSwitchRequest.m */; }; - A50C3B401C1A1CDD00612D90 /* PPOTError.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B1D1C19F7FC00612D90 /* PPOTError.m */; }; - A50C3B411C1A1CDD00612D90 /* PPOTOAuth2AppSwitchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B1F1C19F7FC00612D90 /* PPOTOAuth2AppSwitchRequest.m */; }; - A50C3B421C1A1CDD00612D90 /* PPOTOAuth2BrowserSwitchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B211C19F7FC00612D90 /* PPOTOAuth2BrowserSwitchRequest.m */; }; - A50C3B431C1A1CDD00612D90 /* PPOTOAuth2SwitchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B231C19F7FC00612D90 /* PPOTOAuth2SwitchRequest.m */; }; - A50C3B441C1A1CDD00612D90 /* PPOTPersistentRequestData.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B251C19F7FC00612D90 /* PPOTPersistentRequestData.m */; }; - A50C3B451C1A1CDD00612D90 /* PPOTSwitchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B271C19F7FC00612D90 /* PPOTSwitchRequest.m */; }; - A50C3B461C1A1CDD00612D90 /* PPOTAuthorizationRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3ABA1C19E6EE00612D90 /* PPOTAuthorizationRequest.m */; }; - A50C3B471C1A1CDD00612D90 /* PPOTBillingAgreementRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3ABB1C19E6EE00612D90 /* PPOTBillingAgreementRequest.m */; }; - A50C3B481C1A1CDD00612D90 /* PPOTCheckoutRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3ABD1C19E6EE00612D90 /* PPOTCheckoutRequest.m */; }; - A50C3B491C1A1CDD00612D90 /* PPOTCore.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3ABF1C19E6EE00612D90 /* PPOTCore.m */; }; - A50C3B4A1C1A1CDD00612D90 /* PPOTResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3AC11C19E6EE00612D90 /* PPOTResult.m */; }; - A50C3B4B1C1A1CDD00612D90 /* PPOTRequestFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3AC41C19E6EE00612D90 /* PPOTRequestFactory.m */; }; - A50C3B4C1C1A1CFC00612D90 /* PPOTRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3AC31C19E6EE00612D90 /* PPOTRequest.m */; }; - A50C3B571C1A1CFC00612D90 /* PPOTAnalyticsTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3A981C19E65700612D90 /* PPOTAnalyticsTracker.m */; }; - A50C3B581C1A1D1A00612D90 /* PPFPTIData.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3A931C19E65700612D90 /* PPFPTIData.m */; }; - A50C3B591C1A1D1A00612D90 /* PPFPTITracker.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3A951C19E65700612D90 /* PPFPTITracker.m */; }; - A50C3B771C1A2A3E00612D90 /* PPOTConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3AD01C19E7F500612D90 /* PPOTConfiguration.m */; }; - A50C3B781C1A2A3E00612D90 /* PPOTAppSwitchResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B131C19F7FC00612D90 /* PPOTAppSwitchResponse.m */; }; - A50C3B791C1A2A3E00612D90 /* PPOTAppSwitchUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B151C19F7FC00612D90 /* PPOTAppSwitchUtil.m */; }; - A50C3B7A1C1A2A3E00612D90 /* PPOTCheckoutAppSwitchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B171C19F7FC00612D90 /* PPOTCheckoutAppSwitchRequest.m */; }; - A50C3B7B1C1A2A3E00612D90 /* PPOTCheckoutBrowserSwitchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B191C19F7FC00612D90 /* PPOTCheckoutBrowserSwitchRequest.m */; }; - A50C3B7C1C1A2A3E00612D90 /* PPOTCheckoutSwitchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B1B1C19F7FC00612D90 /* PPOTCheckoutSwitchRequest.m */; }; - A50C3B7D1C1A2A3E00612D90 /* PPOTError.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B1D1C19F7FC00612D90 /* PPOTError.m */; }; - A50C3B7E1C1A2A3E00612D90 /* PPOTOAuth2AppSwitchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B1F1C19F7FC00612D90 /* PPOTOAuth2AppSwitchRequest.m */; }; - A50C3B7F1C1A2A3E00612D90 /* PPOTOAuth2BrowserSwitchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B211C19F7FC00612D90 /* PPOTOAuth2BrowserSwitchRequest.m */; }; - A50C3B801C1A2A3E00612D90 /* PPOTOAuth2SwitchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B231C19F7FC00612D90 /* PPOTOAuth2SwitchRequest.m */; }; - A50C3B811C1A2A3E00612D90 /* PPOTPersistentRequestData.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B251C19F7FC00612D90 /* PPOTPersistentRequestData.m */; }; - A50C3B821C1A2A3E00612D90 /* PPOTSwitchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3B271C19F7FC00612D90 /* PPOTSwitchRequest.m */; }; - A50C3B831C1A2A3E00612D90 /* PPOTAuthorizationRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3ABA1C19E6EE00612D90 /* PPOTAuthorizationRequest.m */; }; - A50C3B841C1A2A3E00612D90 /* PPOTBillingAgreementRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3ABB1C19E6EE00612D90 /* PPOTBillingAgreementRequest.m */; }; - A50C3B851C1A2A3E00612D90 /* PPOTCheckoutRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3ABD1C19E6EE00612D90 /* PPOTCheckoutRequest.m */; }; - A50C3B861C1A2A3E00612D90 /* PPOTCore.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3ABF1C19E6EE00612D90 /* PPOTCore.m */; }; - A50C3B871C1A2A3E00612D90 /* PPOTResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3AC11C19E6EE00612D90 /* PPOTResult.m */; }; - A50C3B881C1A2A3E00612D90 /* PPOTRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3AC31C19E6EE00612D90 /* PPOTRequest.m */; }; - A50C3B931C1A2A3E00612D90 /* PPFPTIData.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3A931C19E65700612D90 /* PPFPTIData.m */; }; - A50C3B941C1A2A3E00612D90 /* PPFPTITracker.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3A951C19E65700612D90 /* PPFPTITracker.m */; }; - A50C3B951C1A2A3E00612D90 /* PPOTAnalyticsTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3A981C19E65700612D90 /* PPOTAnalyticsTracker.m */; }; - A50C3B961C1A2AB000612D90 /* PPOTRequestFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = A50C3AC41C19E6EE00612D90 /* PPOTRequestFactory.m */; }; - A50C3B981C1A2AD700612D90 /* PPOTCore.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3AA01C19E6A200612D90 /* PPOTCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A50C3B991C1A2AD700612D90 /* PPOTResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3AA11C19E6A200612D90 /* PPOTResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A50C3B9A1C1A2AD700612D90 /* PPOTRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3AA21C19E6A200612D90 /* PPOTRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A50C3B9B1C1A2AD700612D90 /* PPOTRequestFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3AA31C19E6A200612D90 /* PPOTRequestFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A50C3BCF1C1B453500612D90 /* PayPalOneTouch.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A50C3B6F1C1A29C500612D90 /* PayPalOneTouch.framework */; }; - A51527331D9C3DC600FF3F77 /* KDataCollector.h in Headers */ = {isa = PBXBuildFile; fileRef = A51527321D9C3DC600FF3F77 /* KDataCollector.h */; }; - A51527381D9EEFE800FF3F77 /* BraintreeDemoDropInViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A51527371D9EEFE800FF3F77 /* BraintreeDemoDropInViewController.m */; }; - A5CEBBB11D8890A20064FD29 /* BTConfiguration+DataCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = B61F677F1CE4C20F0051A3BD /* BTConfiguration+DataCollector.m */; }; - A5D3A5761C20975F003A25A1 /* PPFPTIDataTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5D3A56E1C20975F003A25A1 /* PPFPTIDataTest.m */; }; - A5D3A5771C20975F003A25A1 /* PPFPTITrackerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5D3A56F1C20975F003A25A1 /* PPFPTITrackerTest.m */; }; - A5D3A5A41C20BEE1003A25A1 /* PayPalOneTouch.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A50C3B6F1C1A29C500612D90 /* PayPalOneTouch.framework */; }; - A5F444AE1E89906700B2B4F7 /* BTPayPalCreditFinancing.h in Headers */ = {isa = PBXBuildFile; fileRef = A5F444AD1E89903E00B2B4F7 /* BTPayPalCreditFinancing.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5FE18311E799EDF00CBE9C7 /* BTPayPalCreditFinancing.m in Sources */ = {isa = PBXBuildFile; fileRef = A5FE18301E799EDF00CBE9C7 /* BTPayPalCreditFinancing.m */; }; - A5FE18331E79A05D00CBE9C7 /* BTPayPalCreditFinancing.m in Sources */ = {isa = PBXBuildFile; fileRef = A5FE18301E799EDF00CBE9C7 /* BTPayPalCreditFinancing.m */; }; - A5FE18351E79B75500CBE9C7 /* BTPayPalCreditFinancingAmount.m in Sources */ = {isa = PBXBuildFile; fileRef = A5FE18341E79B75500CBE9C7 /* BTPayPalCreditFinancingAmount.m */; }; - A5FE18361E79B75500CBE9C7 /* BTPayPalCreditFinancingAmount.m in Sources */ = {isa = PBXBuildFile; fileRef = A5FE18341E79B75500CBE9C7 /* BTPayPalCreditFinancingAmount.m */; }; - A5FE183D1E79D5E700CBE9C7 /* BraintreeDemoPayPalCreditPaymentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A5FE183C1E79D5E700CBE9C7 /* BraintreeDemoPayPalCreditPaymentViewController.m */; }; - A70241B91C598BA200875DB8 /* BTUIPayPalWordmarkVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A70241B71C598BA200875DB8 /* BTUIPayPalWordmarkVectorArtView.h */; }; - A70241BA1C598BA200875DB8 /* BTUIPayPalWordmarkVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A70241B81C598BA200875DB8 /* BTUIPayPalWordmarkVectorArtView.m */; }; - A70241BD1C5A9A2F00875DB8 /* BTUIPayPalCompactButton.h in Headers */ = {isa = PBXBuildFile; fileRef = A70241BB1C5A9A2F00875DB8 /* BTUIPayPalCompactButton.h */; }; - A70241BE1C5A9A2F00875DB8 /* BTUIPayPalCompactButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A70241BC1C5A9A2F00875DB8 /* BTUIPayPalCompactButton.m */; }; - A71559421B729297007DE6F0 /* BTIntegrationTestsHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = A71559411B729297007DE6F0 /* BTIntegrationTestsHelper.m */; }; - A71559481B72B085007DE6F0 /* BraintreeApplePay_IntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A71559471B72B085007DE6F0 /* BraintreeApplePay_IntegrationTests.m */; }; - A71754301BDEF1EC00002676 /* BTURLUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = A717542F1BDEF1EC00002676 /* BTURLUtils.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A71F7DE41B616BA0005DA1B0 /* BTVenmoAppSwitchReturnURLSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = A71F7DDF1B616BA0005DA1B0 /* BTVenmoAppSwitchReturnURLSpec.m */; }; - A71F7DE51B616BA0005DA1B0 /* BTVenmoAppSwitchURLSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = A71F7DE01B616BA0005DA1B0 /* BTVenmoAppSwitchURLSpec.m */; }; - A71F7DE71B6180A3005DA1B0 /* BTVenmoDriver_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A71F7DE61B6180A3005DA1B0 /* BTVenmoDriver_Tests.swift */; }; - A726BFE21B56D5E900B5C8F0 /* BTAnalyticsMetadataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = A726BFE11B56D5E900B5C8F0 /* BTAnalyticsMetadataSpec.m */; }; - A73012831BEBE0C50074C118 /* BTPaymentButton_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A73012821BEBE0C50074C118 /* BTPaymentButton_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A73088361B86872C009487BA /* BraintreeDemoThreeDSecureViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19D71B79708900452CFA /* BraintreeDemoThreeDSecureViewController.m */; }; - A7334F251BA38B0C0083C411 /* BraintreeDemoPayPalBillingAgreementViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A7334F241BA38B0C0083C411 /* BraintreeDemoPayPalBillingAgreementViewController.m */; }; - A734A98E1B8797FD00D2461B /* BTClientTokenSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = A734A98D1B8797FD00D2461B /* BTClientTokenSpec.m */; }; - A734A9911B87989400D2461B /* BTTestClientTokenFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = A734A9901B87989400D2461B /* BTTestClientTokenFactory.m */; }; - A743CD211B449D8400757C9B /* BTAPIClient_Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = A743CD201B449D8400757C9B /* BTAPIClient_Tests.m */; }; - A74BCF031BE14C7000DC1CAE /* BTThreeDSecureDriver_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A74BCF021BE14C7000DC1CAE /* BTThreeDSecureDriver_Tests.swift */; }; - A74BEE3F1C58005300DDAB52 /* BTAnalyticsService.m in Sources */ = {isa = PBXBuildFile; fileRef = A74BF1C41C57F25F0049E149 /* BTAnalyticsService.m */; }; - A74BF1C51C57F25F0049E149 /* BTAnalyticsService.h in Headers */ = {isa = PBXBuildFile; fileRef = A74BF1C31C57F25F0049E149 /* BTAnalyticsService.h */; }; - A74BF1C61C57F25F0049E149 /* BTAnalyticsService.m in Sources */ = {isa = PBXBuildFile; fileRef = A74BF1C41C57F25F0049E149 /* BTAnalyticsService.m */; }; - A74BF1C81C57FBED0049E149 /* BTAnalyticsService_Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = A74BF1C71C57FBED0049E149 /* BTAnalyticsService_Tests.m */; }; - A75147E11B4217A00005BBBA /* BTCardClient_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A75147E01B4217A00005BBBA /* BTCardClient_Tests.swift */; }; - A751CAAC1CAC464C008603E5 /* BTCardRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A751CAAA1CAC464C008603E5 /* BTCardRequest.m */; }; - A751CAAD1CAC464C008603E5 /* BTCardRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A751CAAA1CAC464C008603E5 /* BTCardRequest.m */; }; - A751CAAF1CAC4667008603E5 /* BTCardRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A751CAAE1CAC4667008603E5 /* BTCardRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A76B1A0B1B79708A00452CFA /* Braintree-Demo.entitlements in Resources */ = {isa = PBXBuildFile; fileRef = A76B19A31B79708900452CFA /* Braintree-Demo.entitlements */; }; - A76B1A0C1B79708A00452CFA /* BraintreeDemoBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19A71B79708900452CFA /* BraintreeDemoBaseViewController.m */; }; - A76B1A0F1B79708A00452CFA /* BraintreeDemoAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19AD1B79708900452CFA /* BraintreeDemoAppDelegate.m */; }; - A76B1A101B79708A00452CFA /* BraintreeDemoDemoContainmentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19AF1B79708900452CFA /* BraintreeDemoDemoContainmentViewController.m */; }; - A76B1A111B79708A00452CFA /* BraintreeDemoIntegrationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19B11B79708900452CFA /* BraintreeDemoIntegrationViewController.m */; }; - A76B1A121B79708A00452CFA /* BraintreeDemoSlideNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19B31B79708900452CFA /* BraintreeDemoSlideNavigationController.m */; }; - A76B1A131B79708A00452CFA /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A76B19B51B79708900452CFA /* Launch Screen.storyboard */; }; - A76B1A141B79708A00452CFA /* BraintreeDemoSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19B81B79708900452CFA /* BraintreeDemoSettings.m */; }; - A76B1A151B79708A00452CFA /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = A76B19B91B79708900452CFA /* Settings.bundle */; }; - A76B1A1E1B79708A00452CFA /* BraintreeDemoCardTokenizationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A76B19D41B79708900452CFA /* BraintreeDemoCardTokenizationViewController.xib */; }; - A76B1A291B79708A00452CFA /* BraintreeDemoCreditCardEntryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A76B19F21B79708900452CFA /* BraintreeDemoCreditCardEntryViewController.xib */; }; - A76B1A2C1B79708A00452CFA /* UI.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A76B19F71B79708900452CFA /* UI.storyboard */; }; - A76B1A2F1B79708A00452CFA /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A76B19FE1B79708A00452CFA /* Images.xcassets */; }; - A76B1A301B79708A00452CFA /* BraintreeDemoMerchantAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B1A011B79708A00452CFA /* BraintreeDemoMerchantAPI.m */; }; - A76B1A331B79708A00452CFA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A76B1A061B79708A00452CFA /* InfoPlist.strings */; }; - A76B1A341B79708A00452CFA /* Main.strings in Resources */ = {isa = PBXBuildFile; fileRef = A76B1A081B79708A00452CFA /* Main.strings */; }; - A76B1A351B79708A00452CFA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B1A0A1B79708A00452CFA /* main.m */; }; - A76B99191C3EF48600A584F6 /* PPDataCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B4635F1C3DBEFE00048423 /* PPDataCollector.m */; }; - A76B991A1C3EF48E00A584F6 /* libPPRiskComponent.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A50C3AFB1C19F52C00612D90 /* libPPRiskComponent.a */; }; - A76B991B1C3EF49600A584F6 /* PPRCClientMetadataIDProvider.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = A50C3AFC1C19F52C00612D90 /* PPRCClientMetadataIDProvider.h */; }; - A76B991C1C3EF4A000A584F6 /* PayPalDataCollector.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = A7B463631C3DBF5E00048423 /* PayPalDataCollector.h */; }; - A76B991D1C3EF4A400A584F6 /* PPDataCollector.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = A7B463641C3DBF5E00048423 /* PPDataCollector.h */; }; - A76B99301C3EF8DB00A584F6 /* PPOTDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463201C3DA73300048423 /* PPOTDevice.m */; }; - A76B99311C3EF8DC00A584F6 /* PPOTDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463201C3DA73300048423 /* PPOTDevice.m */; }; - A76B99321C3EF8DF00A584F6 /* PPOTEncryptionHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463221C3DA73300048423 /* PPOTEncryptionHelper.m */; }; - A76B99331C3EF8E000A584F6 /* PPOTEncryptionHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463221C3DA73300048423 /* PPOTEncryptionHelper.m */; }; - A76B99341C3EF8E300A584F6 /* PPOTJSONHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463241C3DA73300048423 /* PPOTJSONHelper.m */; }; - A76B99351C3EF8E400A584F6 /* PPOTJSONHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463241C3DA73300048423 /* PPOTJSONHelper.m */; }; - A76B99361C3EF8E800A584F6 /* PPOTMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463261C3DA73300048423 /* PPOTMacros.m */; }; - A76B99371C3EF8E900A584F6 /* PPOTMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463261C3DA73300048423 /* PPOTMacros.m */; }; - A76B99381C3EF8EF00A584F6 /* PPOTPinnedCertificates.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463281C3DA73300048423 /* PPOTPinnedCertificates.m */; }; - A76B99391C3EF8EF00A584F6 /* PPOTSimpleKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B4632A1C3DA73300048423 /* PPOTSimpleKeychain.m */; }; - A76B993A1C3EF8EF00A584F6 /* PPOTString.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B4632C1C3DA73300048423 /* PPOTString.m */; }; - A76B993B1C3EF8EF00A584F6 /* PPOTTime.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B4632E1C3DA73300048423 /* PPOTTime.m */; }; - A76B993C1C3EF8EF00A584F6 /* PPOTURLSession.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463301C3DA73300048423 /* PPOTURLSession.m */; }; - A76B993D1C3EF8F000A584F6 /* PPOTPinnedCertificates.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463281C3DA73300048423 /* PPOTPinnedCertificates.m */; }; - A76B993E1C3EF8F000A584F6 /* PPOTSimpleKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B4632A1C3DA73300048423 /* PPOTSimpleKeychain.m */; }; - A76B993F1C3EF8F000A584F6 /* PPOTString.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B4632C1C3DA73300048423 /* PPOTString.m */; }; - A76B99401C3EF8F000A584F6 /* PPOTTime.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B4632E1C3DA73300048423 /* PPOTTime.m */; }; - A76B99411C3EF8F000A584F6 /* PPOTURLSession.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B463301C3DA73300048423 /* PPOTURLSession.m */; }; - A76B99421C3F00AC00A584F6 /* PPDefaultConfigurationJSON.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3ACE1C19E7F500612D90 /* PPDefaultConfigurationJSON.h */; }; - A76B99431C3F00AC00A584F6 /* PPFPTIData.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3A921C19E65700612D90 /* PPFPTIData.h */; }; - A76B99441C3F00AC00A584F6 /* PPFPTITracker.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3A941C19E65700612D90 /* PPFPTITracker.h */; }; - A76B99451C3F00AC00A584F6 /* PPOTAnalyticsDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3A961C19E65700612D90 /* PPOTAnalyticsDefines.h */; }; - A76B99461C3F00AC00A584F6 /* PPOTAnalyticsTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3A971C19E65700612D90 /* PPOTAnalyticsTracker.h */; }; - A76D7C201BB1CBD50000FA6A /* BraintreeDataCollector.h in Headers */ = {isa = PBXBuildFile; fileRef = A76D7C1E1BB1CBD50000FA6A /* BraintreeDataCollector.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A76D7C211BB1CBD50000FA6A /* BTDataCollector.h in Headers */ = {isa = PBXBuildFile; fileRef = A76D7C1F1BB1CBD50000FA6A /* BTDataCollector.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A76D7C231BB1CBDC0000FA6A /* BTDataCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = A76D7C221BB1CBDC0000FA6A /* BTDataCollector.m */; }; - A76D7C2A1BB1D31A0000FA6A /* libDeviceCollectorLibrary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A76D7C271BB1D31A0000FA6A /* libDeviceCollectorLibrary.a */; }; - A76D7C2F1BB217EE0000FA6A /* BraintreeDemoBTDataCollectorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19DD1B79708900452CFA /* BraintreeDemoBTDataCollectorViewController.m */; }; - A76D7C341BB21CE90000FA6A /* BraintreeDataCollector_IntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A76D7C331BB21CE90000FA6A /* BraintreeDataCollector_IntegrationTests.m */; }; - A76D7C391BB318CF0000FA6A /* BraintreeDataCollector.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A76D7C001BB1CAB00000FA6A /* BraintreeDataCollector.framework */; }; - A76D7C3A1BB31A2B0000FA6A /* BTDataCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = A76D7C221BB1CBDC0000FA6A /* BTDataCollector.m */; }; - A76D7C3B1BB31A4B0000FA6A /* libDeviceCollectorLibrary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A76D7C271BB1D31A0000FA6A /* libDeviceCollectorLibrary.a */; }; - A77120521CD95DD50004FFD3 /* BraintreeCard.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7C889901B5F043B007A0E9C /* BraintreeCard.framework */; }; - A77344FA1B7A93A10083EC8D /* BraintreeUI.h in Headers */ = {isa = PBXBuildFile; fileRef = A77344F91B7A93A10083EC8D /* BraintreeUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77345891B7A93D00083EC8D /* BTUILocalizedString.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345071B7A93D00083EC8D /* BTUILocalizedString.h */; }; - A773458A1B7A93D00083EC8D /* BTUILocalizedString.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345081B7A93D00083EC8D /* BTUILocalizedString.m */; }; - A773458B1B7A93D00083EC8D /* UI.strings in Resources */ = {isa = PBXBuildFile; fileRef = A77345091B7A93D00083EC8D /* UI.strings */; }; - A773458C1B7A93D00083EC8D /* BTUICardExpirationValidator.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345201B7A93D00083EC8D /* BTUICardExpirationValidator.h */; }; - A773458D1B7A93D00083EC8D /* BTUICardExpirationValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345211B7A93D00083EC8D /* BTUICardExpirationValidator.m */; }; - A773458E1B7A93D00083EC8D /* BTUICardExpiryFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345221B7A93D00083EC8D /* BTUICardExpiryFormat.h */; }; - A773458F1B7A93D00083EC8D /* BTUICardExpiryFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345231B7A93D00083EC8D /* BTUICardExpiryFormat.m */; }; - A77345901B7A93D00083EC8D /* BTUICardType.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345241B7A93D00083EC8D /* BTUICardType.h */; }; - A77345911B7A93D00083EC8D /* BTUICardType.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345251B7A93D00083EC8D /* BTUICardType.m */; }; - A77345921B7A93D00083EC8D /* BTUIUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345261B7A93D00083EC8D /* BTUIUtil.h */; }; - A77345931B7A93D00083EC8D /* BTUIUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345271B7A93D00083EC8D /* BTUIUtil.m */; }; - A77345951B7A93D00083EC8D /* BTUI.h in Headers */ = {isa = PBXBuildFile; fileRef = A773452A1B7A93D00083EC8D /* BTUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77345961B7A93D00083EC8D /* BTUI.m in Sources */ = {isa = PBXBuildFile; fileRef = A773452B1B7A93D00083EC8D /* BTUI.m */; }; - A77345971B7A93D00083EC8D /* UIColor+BTUI.h in Headers */ = {isa = PBXBuildFile; fileRef = A773452C1B7A93D00083EC8D /* UIColor+BTUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77345981B7A93D00083EC8D /* UIColor+BTUI.m in Sources */ = {isa = PBXBuildFile; fileRef = A773452D1B7A93D00083EC8D /* UIColor+BTUI.m */; }; - A77345991B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345301B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationView.h */; }; - A773459A1B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345311B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationView.m */; }; - A773459B1B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345321B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationViewController.h */; }; - A773459C1B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345331B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationViewController.m */; }; - A773459D1B7A93D00083EC8D /* BTUIViewUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345341B7A93D00083EC8D /* BTUIViewUtil.h */; }; - A773459E1B7A93D00083EC8D /* BTUIViewUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345351B7A93D00083EC8D /* BTUIViewUtil.m */; }; - A773459F1B7A93D00083EC8D /* BTUIHorizontalButtonStackCollectionViewFlowLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345371B7A93D00083EC8D /* BTUIHorizontalButtonStackCollectionViewFlowLayout.h */; }; - A77345A01B7A93D00083EC8D /* BTUIHorizontalButtonStackCollectionViewFlowLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345381B7A93D00083EC8D /* BTUIHorizontalButtonStackCollectionViewFlowLayout.m */; }; - A77345A11B7A93D00083EC8D /* BTUIHorizontalButtonStackSeparatorLineView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345391B7A93D00083EC8D /* BTUIHorizontalButtonStackSeparatorLineView.h */; }; - A77345A21B7A93D00083EC8D /* BTUIHorizontalButtonStackSeparatorLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773453A1B7A93D00083EC8D /* BTUIHorizontalButtonStackSeparatorLineView.m */; }; - A77345A31B7A93D00083EC8D /* BTUIPaymentButtonCollectionViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = A773453B1B7A93D00083EC8D /* BTUIPaymentButtonCollectionViewCell.h */; }; - A77345A41B7A93D00083EC8D /* BTUIPaymentButtonCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A773453C1B7A93D00083EC8D /* BTUIPaymentButtonCollectionViewCell.m */; }; - A77345A51B7A93D00083EC8D /* BTUIFloatLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = A773453E1B7A93D00083EC8D /* BTUIFloatLabel.h */; }; - A77345A61B7A93D00083EC8D /* BTUIFloatLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = A773453F1B7A93D00083EC8D /* BTUIFloatLabel.m */; }; - A77345A71B7A93D00083EC8D /* BTUIFormField.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345401B7A93D00083EC8D /* BTUIFormField.h */; }; - A77345A81B7A93D00083EC8D /* BTUIFormField.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345411B7A93D00083EC8D /* BTUIFormField.m */; }; - A77345A91B7A93D00083EC8D /* BTUIFormField_Protected.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345421B7A93D00083EC8D /* BTUIFormField_Protected.h */; }; - A77345AA1B7A93D00083EC8D /* BTUIScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345431B7A93D00083EC8D /* BTUIScrollView.h */; }; - A77345AB1B7A93D00083EC8D /* BTUIScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345441B7A93D00083EC8D /* BTUIScrollView.m */; }; - A77345AC1B7A93D00083EC8D /* BTUITextField.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345451B7A93D00083EC8D /* BTUITextField.h */; }; - A77345AD1B7A93D00083EC8D /* BTUITextField.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345461B7A93D00083EC8D /* BTUITextField.m */; }; - A77345AF1B7A93D00083EC8D /* BTUIThemedView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345481B7A93D00083EC8D /* BTUIThemedView.m */; }; - A77345B01B7A93D00083EC8D /* BTUIVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345491B7A93D00083EC8D /* BTUIVectorArtView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77345B11B7A93D00083EC8D /* BTUIVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773454A1B7A93D00083EC8D /* BTUIVectorArtView.m */; }; - A77345B21B7A93D00083EC8D /* BTUICardCvvField.h in Headers */ = {isa = PBXBuildFile; fileRef = A773454C1B7A93D00083EC8D /* BTUICardCvvField.h */; }; - A77345B31B7A93D00083EC8D /* BTUICardCvvField.m in Sources */ = {isa = PBXBuildFile; fileRef = A773454D1B7A93D00083EC8D /* BTUICardCvvField.m */; }; - A77345B41B7A93D00083EC8D /* BTUICardExpiryField.h in Headers */ = {isa = PBXBuildFile; fileRef = A773454E1B7A93D00083EC8D /* BTUICardExpiryField.h */; }; - A77345B51B7A93D00083EC8D /* BTUICardExpiryField.m in Sources */ = {isa = PBXBuildFile; fileRef = A773454F1B7A93D00083EC8D /* BTUICardExpiryField.m */; }; - A77345B61B7A93D00083EC8D /* BTUICardNumberField.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345501B7A93D00083EC8D /* BTUICardNumberField.h */; }; - A77345B71B7A93D00083EC8D /* BTUICardNumberField.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345511B7A93D00083EC8D /* BTUICardNumberField.m */; }; - A77345B81B7A93D00083EC8D /* BTUICardPostalCodeField.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345521B7A93D00083EC8D /* BTUICardPostalCodeField.h */; }; - A77345B91B7A93D00083EC8D /* BTUICardPostalCodeField.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345531B7A93D00083EC8D /* BTUICardPostalCodeField.m */; }; - A77345BA1B7A93D00083EC8D /* BTUICardFormView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345551B7A93D00083EC8D /* BTUICardFormView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77345BB1B7A93D00083EC8D /* BTUICardFormView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345561B7A93D00083EC8D /* BTUICardFormView.m */; }; - A77345BC1B7A93D00083EC8D /* BTUICardHint.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345581B7A93D00083EC8D /* BTUICardHint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77345BD1B7A93D00083EC8D /* BTUICardHint.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345591B7A93D00083EC8D /* BTUICardHint.m */; }; - A77345BE1B7A93D00083EC8D /* BTUICoinbaseButton.h in Headers */ = {isa = PBXBuildFile; fileRef = A773455A1B7A93D00083EC8D /* BTUICoinbaseButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77345BF1B7A93D00083EC8D /* BTUICoinbaseButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A773455B1B7A93D00083EC8D /* BTUICoinbaseButton.m */; }; - A77345C01B7A93D00083EC8D /* BTUICTAControl.h in Headers */ = {isa = PBXBuildFile; fileRef = A773455C1B7A93D00083EC8D /* BTUICTAControl.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77345C11B7A93D00083EC8D /* BTUICTAControl.m in Sources */ = {isa = PBXBuildFile; fileRef = A773455D1B7A93D00083EC8D /* BTUICTAControl.m */; }; - A77345C21B7A93D00083EC8D /* BTUIPaymentMethodView.h in Headers */ = {isa = PBXBuildFile; fileRef = A773455E1B7A93D00083EC8D /* BTUIPaymentMethodView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77345C31B7A93D00083EC8D /* BTUIPaymentMethodView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773455F1B7A93D00083EC8D /* BTUIPaymentMethodView.m */; }; - A77345C41B7A93D00083EC8D /* BTUIPayPalButton.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345601B7A93D00083EC8D /* BTUIPayPalButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77345C51B7A93D00083EC8D /* BTUIPayPalButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345611B7A93D00083EC8D /* BTUIPayPalButton.m */; }; - A77345C61B7A93D00083EC8D /* BTUISummaryView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345621B7A93D00083EC8D /* BTUISummaryView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77345C71B7A93D00083EC8D /* BTUISummaryView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345631B7A93D00083EC8D /* BTUISummaryView.m */; }; - A77345C81B7A93D00083EC8D /* BTUIVenmoButton.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345641B7A93D00083EC8D /* BTUIVenmoButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77345C91B7A93D00083EC8D /* BTUIVenmoButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345651B7A93D00083EC8D /* BTUIVenmoButton.m */; }; - A77345CA1B7A93D00083EC8D /* BTUIAmExVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345671B7A93D00083EC8D /* BTUIAmExVectorArtView.h */; }; - A77345CB1B7A93D00083EC8D /* BTUIAmExVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345681B7A93D00083EC8D /* BTUIAmExVectorArtView.m */; }; - A77345CC1B7A93D00083EC8D /* BTUICardVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345691B7A93D00083EC8D /* BTUICardVectorArtView.h */; }; - A77345CD1B7A93D00083EC8D /* BTUICardVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773456A1B7A93D00083EC8D /* BTUICardVectorArtView.m */; }; - A77345CE1B7A93D00083EC8D /* BTUICoinbaseMonogramCardView.h in Headers */ = {isa = PBXBuildFile; fileRef = A773456B1B7A93D00083EC8D /* BTUICoinbaseMonogramCardView.h */; }; - A77345CF1B7A93D00083EC8D /* BTUICoinbaseMonogramCardView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773456C1B7A93D00083EC8D /* BTUICoinbaseMonogramCardView.m */; }; - A77345D01B7A93D00083EC8D /* BTUICoinbaseWordmarkVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A773456D1B7A93D00083EC8D /* BTUICoinbaseWordmarkVectorArtView.h */; }; - A77345D11B7A93D00083EC8D /* BTUICoinbaseWordmarkVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773456E1B7A93D00083EC8D /* BTUICoinbaseWordmarkVectorArtView.m */; }; - A77345D21B7A93D00083EC8D /* BTUICVVBackVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A773456F1B7A93D00083EC8D /* BTUICVVBackVectorArtView.h */; }; - A77345D31B7A93D00083EC8D /* BTUICVVBackVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345701B7A93D00083EC8D /* BTUICVVBackVectorArtView.m */; }; - A77345D41B7A93D00083EC8D /* BTUICVVFrontVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345711B7A93D00083EC8D /* BTUICVVFrontVectorArtView.h */; }; - A77345D51B7A93D00083EC8D /* BTUICVVFrontVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345721B7A93D00083EC8D /* BTUICVVFrontVectorArtView.m */; }; - A77345D61B7A93D00083EC8D /* BTUIDinersClubVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345731B7A93D00083EC8D /* BTUIDinersClubVectorArtView.h */; }; - A77345D71B7A93D00083EC8D /* BTUIDinersClubVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345741B7A93D00083EC8D /* BTUIDinersClubVectorArtView.m */; }; - A77345D81B7A93D00083EC8D /* BTUIDiscoverVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345751B7A93D00083EC8D /* BTUIDiscoverVectorArtView.h */; }; - A77345D91B7A93D00083EC8D /* BTUIDiscoverVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345761B7A93D00083EC8D /* BTUIDiscoverVectorArtView.m */; }; - A77345DA1B7A93D00083EC8D /* BTUIJCBVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345771B7A93D00083EC8D /* BTUIJCBVectorArtView.h */; }; - A77345DB1B7A93D00083EC8D /* BTUIJCBVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345781B7A93D00083EC8D /* BTUIJCBVectorArtView.m */; }; - A77345DC1B7A93D00083EC8D /* BTUIMaestroVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345791B7A93D00083EC8D /* BTUIMaestroVectorArtView.h */; }; - A77345DD1B7A93D00083EC8D /* BTUIMaestroVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773457A1B7A93D00083EC8D /* BTUIMaestroVectorArtView.m */; }; - A77345DE1B7A93D00083EC8D /* BTUIMasterCardVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A773457B1B7A93D00083EC8D /* BTUIMasterCardVectorArtView.h */; }; - A77345DF1B7A93D00083EC8D /* BTUIMasterCardVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773457C1B7A93D00083EC8D /* BTUIMasterCardVectorArtView.m */; }; - A77345E01B7A93D00083EC8D /* BTUIPayPalMonogramCardView.h in Headers */ = {isa = PBXBuildFile; fileRef = A773457D1B7A93D00083EC8D /* BTUIPayPalMonogramCardView.h */; }; - A77345E11B7A93D00083EC8D /* BTUIPayPalMonogramCardView.m in Sources */ = {isa = PBXBuildFile; fileRef = A773457E1B7A93D00083EC8D /* BTUIPayPalMonogramCardView.m */; }; - A77345E21B7A93D00083EC8D /* BTUIPayPalWordmarkCompactVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A773457F1B7A93D00083EC8D /* BTUIPayPalWordmarkCompactVectorArtView.h */; }; - A77345E31B7A93D00083EC8D /* BTUIPayPalWordmarkCompactVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345801B7A93D00083EC8D /* BTUIPayPalWordmarkCompactVectorArtView.m */; }; - A77345E41B7A93D00083EC8D /* BTUIUnknownCardVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345811B7A93D00083EC8D /* BTUIUnknownCardVectorArtView.h */; }; - A77345E51B7A93D00083EC8D /* BTUIUnknownCardVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345821B7A93D00083EC8D /* BTUIUnknownCardVectorArtView.m */; }; - A77345E61B7A93D00083EC8D /* BTUIVenmoWordmarkVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345831B7A93D00083EC8D /* BTUIVenmoWordmarkVectorArtView.h */; }; - A77345E71B7A93D00083EC8D /* BTUIVenmoWordmarkVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345841B7A93D00083EC8D /* BTUIVenmoWordmarkVectorArtView.m */; }; - A77345E81B7A93D00083EC8D /* BTUIVisaVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345851B7A93D00083EC8D /* BTUIVisaVectorArtView.h */; }; - A77345E91B7A93D00083EC8D /* BTUIVisaVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345861B7A93D00083EC8D /* BTUIVisaVectorArtView.m */; }; - A77346121B7A9E340083EC8D /* BTDropInContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345EB1B7A9E340083EC8D /* BTDropInContentView.h */; }; - A77346131B7A9E340083EC8D /* BTDropInContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345EC1B7A9E340083EC8D /* BTDropInContentView.m */; }; - A77346141B7A9E340083EC8D /* BTDropInErrorAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345ED1B7A9E340083EC8D /* BTDropInErrorAlert.h */; }; - A77346151B7A9E340083EC8D /* BTDropInErrorAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345EE1B7A9E340083EC8D /* BTDropInErrorAlert.m */; }; - A77346161B7A9E340083EC8D /* BTDropInErrorState.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345EF1B7A9E340083EC8D /* BTDropInErrorState.h */; }; - A77346171B7A9E340083EC8D /* BTDropInErrorState.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345F01B7A9E340083EC8D /* BTDropInErrorState.m */; }; - A77346181B7A9E340083EC8D /* BTDropInSelectPaymentMethodViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345F11B7A9E340083EC8D /* BTDropInSelectPaymentMethodViewController.h */; }; - A77346191B7A9E340083EC8D /* BTDropInSelectPaymentMethodViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345F21B7A9E340083EC8D /* BTDropInSelectPaymentMethodViewController.m */; }; - A773461A1B7A9E340083EC8D /* BTDropInUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345F31B7A9E340083EC8D /* BTDropInUtil.h */; }; - A773461B1B7A9E340083EC8D /* BTDropInUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345F41B7A9E340083EC8D /* BTDropInUtil.m */; }; - A773461C1B7A9E340083EC8D /* BTDropInViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345F51B7A9E340083EC8D /* BTDropInViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A773461D1B7A9E340083EC8D /* BTDropInViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345F61B7A9E340083EC8D /* BTDropInViewController.m */; }; - A773461E1B7A9E340083EC8D /* BTPaymentButton.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345F71B7A9E340083EC8D /* BTPaymentButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A773461F1B7A9E340083EC8D /* BTPaymentButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345F81B7A9E340083EC8D /* BTPaymentButton.m */; }; - A77346201B7A9E340083EC8D /* BTDropInLocalizedString.h in Headers */ = {isa = PBXBuildFile; fileRef = A77345FA1B7A9E340083EC8D /* BTDropInLocalizedString.h */; }; - A77346211B7A9E340083EC8D /* BTDropInLocalizedString.m in Sources */ = {isa = PBXBuildFile; fileRef = A77345FB1B7A9E340083EC8D /* BTDropInLocalizedString.m */; }; - A77346221B7A9E340083EC8D /* Drop-In.strings in Resources */ = {isa = PBXBuildFile; fileRef = A77345FC1B7A9E340083EC8D /* Drop-In.strings */; }; - A77346241B7AA4D50083EC8D /* BTErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = A77346231B7AA4D50083EC8D /* BTErrors.m */; }; - A77346261B7AA4F10083EC8D /* BTErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = A77346251B7AA4F10083EC8D /* BTErrors.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77346301B7BB1A70083EC8D /* BTTokenizationService.h in Headers */ = {isa = PBXBuildFile; fileRef = A773462E1B7BB1A60083EC8D /* BTTokenizationService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77346311B7BB1A70083EC8D /* BTTokenizationService.m in Sources */ = {isa = PBXBuildFile; fileRef = A773462F1B7BB1A70083EC8D /* BTTokenizationService.m */; }; - A77426581CA20793003CACBA /* BTCardCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = A77426561CA20793003CACBA /* BTCardCapabilities.m */; }; - A774265A1CA207AE003CACBA /* BTCardCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = A77426591CA207AE003CACBA /* BTCardCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A774265B1CA207D2003CACBA /* BTCardCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = A77426561CA20793003CACBA /* BTCardCapabilities.m */; }; - A77524611CC99BA3002E4E62 /* BraintreeDemoUnionPayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A77524601CC99BA3002E4E62 /* BraintreeDemoUnionPayViewController.m */; }; - A77AA2A61B618CFB00217B73 /* BTVenmoAppSwitchRequestURL.h in Headers */ = {isa = PBXBuildFile; fileRef = A7F96D0A1B604C1C005A4A09 /* BTVenmoAppSwitchRequestURL.h */; }; - A77AA2A71B618CFB00217B73 /* BTVenmoAppSwitchRequestURL.m in Sources */ = {isa = PBXBuildFile; fileRef = A7F96D0B1B604C1C005A4A09 /* BTVenmoAppSwitchRequestURL.m */; }; - A77AA2A81B618CFB00217B73 /* BTVenmoAppSwitchReturnURL.h in Headers */ = {isa = PBXBuildFile; fileRef = A7F96D0C1B604C1C005A4A09 /* BTVenmoAppSwitchReturnURL.h */; }; - A77AA2A91B618CFB00217B73 /* BTVenmoAppSwitchReturnURL.m in Sources */ = {isa = PBXBuildFile; fileRef = A7F96D0D1B604C1C005A4A09 /* BTVenmoAppSwitchReturnURL.m */; }; - A77AA2AA1B618CFB00217B73 /* BraintreeVenmo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C889F11B5F0B30007A0E9C /* BraintreeVenmo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77AA2AB1B618CFB00217B73 /* BTVenmoDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C889FA1B5F0C00007A0E9C /* BTVenmoDriver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77AA2AC1B618CFB00217B73 /* BTVenmoDriver.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C889FB1B5F0C00007A0E9C /* BTVenmoDriver.m */; }; - A77AA2AD1B618CFB00217B73 /* BTVenmoAccountNonce.h in Headers */ = {isa = PBXBuildFile; fileRef = A7F96D061B6043B7005A4A09 /* BTVenmoAccountNonce.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A77AA2AE1B618CFB00217B73 /* BTVenmoAccountNonce.m in Sources */ = {isa = PBXBuildFile; fileRef = A7F96D071B6043B7005A4A09 /* BTVenmoAccountNonce.m */; }; - A77AA2B31B618D6200217B73 /* BraintreeCard.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7C889901B5F043B007A0E9C /* BraintreeCard.framework */; }; - A77AA2B41B618D6200217B73 /* BraintreeCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */; }; - A77AA2B61B61936A00217B73 /* BTVenmoDriver_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A77AA2B51B61936A00217B73 /* BTVenmoDriver_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A78422731C98920500D3EBFF /* BTUIUnionPayVectorArtView.h in Headers */ = {isa = PBXBuildFile; fileRef = A78422711C98920500D3EBFF /* BTUIUnionPayVectorArtView.h */; }; - A78422741C98920500D3EBFF /* BTUIUnionPayVectorArtView.m in Sources */ = {isa = PBXBuildFile; fileRef = A78422721C98920500D3EBFF /* BTUIUnionPayVectorArtView.m */; }; - A784965A1BD962260081531A /* BTCheckoutRequest_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A78496591BD962260081531A /* BTCheckoutRequest_Tests.swift */; }; - A78BF95D1CC6F32100DED8AA /* BraintreeUnionPay_IntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A78BF95C1CC6F32100DED8AA /* BraintreeUnionPay_IntegrationTests.m */; }; - A79033981B45C968004C8234 /* BTCard_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A79033971B45C968004C8234 /* BTCard_Tests.swift */; }; - A790339C1B45E16E004C8234 /* BTCard_Internal_Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = A790339B1B45E16E004C8234 /* BTCard_Internal_Tests.m */; }; - A79AF9F31B56DB54007B1DF1 /* BTClientMetadataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = A79AF9F21B56DB54007B1DF1 /* BTClientMetadataSpec.m */; }; - A79BB5BF1CE501D500CC6F0E /* PPDataCollector_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A79BB5BE1CE501D500CC6F0E /* PPDataCollector_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A79C9C701BE17BC7007EAF73 /* BTThreeDSecureDriver_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A79C9C6F1BE17BBF007EAF73 /* BTThreeDSecureDriver_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A7A094F61B8276E500D732CC /* BTCardNonce_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7A094F51B8276E500D732CC /* BTCardNonce_Tests.swift */; }; - A7A094F81B828F4600D732CC /* BraintreeDemoBTUIPayPalButtonViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19E01B79708900452CFA /* BraintreeDemoBTUIPayPalButtonViewController.m */; }; - A7A094FA1B82919300D732CC /* BraintreeDemoPaymentButtonBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19A91B79708900452CFA /* BraintreeDemoPaymentButtonBaseViewController.m */; }; - A7A094FB1B8295E000D732CC /* BraintreeDemoCustomPayPalButtonViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19E61B79708900452CFA /* BraintreeDemoCustomPayPalButtonViewController.m */; }; - A7A094FC1B82983300D732CC /* BraintreeDemoPayPalScopesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19EC1B79708900452CFA /* BraintreeDemoPayPalScopesViewController.m */; }; - A7A094FD1B829ACC00D732CC /* BraintreeDemoPayPalOneTimePaymentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19E31B79708900452CFA /* BraintreeDemoPayPalOneTimePaymentViewController.m */; }; - A7A094FF1B839CC900D732CC /* BraintreeDemoApplePayPassKitViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19C41B79708900452CFA /* BraintreeDemoApplePayPassKitViewController.m */; }; - A7A6DD071B4308EB008857E1 /* BTPayPalDriver_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7A6DD061B4308EB008857E1 /* BTPayPalDriver_Tests.swift */; }; - A7A9C6D01B83C6D600F5EBBA /* BraintreeDemoBTUIVenmoButtonViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19FA1B79708900452CFA /* BraintreeDemoBTUIVenmoButtonViewController.m */; }; - A7A9C6D51B83C98000F5EBBA /* BraintreeDemoCustomVenmoButtonViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19FD1B79708A00452CFA /* BraintreeDemoCustomVenmoButtonViewController.m */; }; - A7A9C6D61B83CC6F00F5EBBA /* BraintreeDemoCardTokenizationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19D31B79708900452CFA /* BraintreeDemoCardTokenizationViewController.m */; }; - A7ABD6791B702FF000A1223C /* BTAPIClient_IntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A7ABD65E1B702FF000A1223C /* BTAPIClient_IntegrationTests.m */; }; - A7ABD67C1B702FF000A1223C /* BTHTTPSSLPinning_IntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A7ABD6611B702FF000A1223C /* BTHTTPSSLPinning_IntegrationTests.m */; }; - A7ABD67E1B702FF000A1223C /* good_root_cert.der in Resources */ = {isa = PBXBuildFile; fileRef = A7ABD6631B702FF000A1223C /* good_root_cert.der */; }; - A7ABD67F1B702FF000A1223C /* evil_root_cert.der in Resources */ = {isa = PBXBuildFile; fileRef = A7ABD6651B702FF000A1223C /* evil_root_cert.der */; }; - A7ABD6801B702FF000A1223C /* evil_root_cert.pem in Resources */ = {isa = PBXBuildFile; fileRef = A7ABD6661B702FF000A1223C /* evil_root_cert.pem */; }; - A7ABD6811B702FF000A1223C /* evil_root_key.pem in Resources */ = {isa = PBXBuildFile; fileRef = A7ABD6671B702FF000A1223C /* evil_root_key.pem */; }; - A7ABD6821B702FF000A1223C /* evil_site_cert.pem in Resources */ = {isa = PBXBuildFile; fileRef = A7ABD6681B702FF000A1223C /* evil_site_cert.pem */; }; - A7ABD6831B702FF000A1223C /* evil_site_key.pem in Resources */ = {isa = PBXBuildFile; fileRef = A7ABD6691B702FF000A1223C /* evil_site_key.pem */; }; - A7ABD6841B702FF000A1223C /* evil_site_request.pem in Resources */ = {isa = PBXBuildFile; fileRef = A7ABD66A1B702FF000A1223C /* evil_site_request.pem */; }; - A7ABD6851B702FF000A1223C /* good_root_cert.pem in Resources */ = {isa = PBXBuildFile; fileRef = A7ABD66B1B702FF000A1223C /* good_root_cert.pem */; }; - A7ABD6861B702FF000A1223C /* good_root_key.pem in Resources */ = {isa = PBXBuildFile; fileRef = A7ABD66C1B702FF000A1223C /* good_root_key.pem */; }; - A7ABD6871B702FF000A1223C /* good_site_cert.pem in Resources */ = {isa = PBXBuildFile; fileRef = A7ABD66D1B702FF000A1223C /* good_site_cert.pem */; }; - A7ABD6881B702FF000A1223C /* good_site_key.pem in Resources */ = {isa = PBXBuildFile; fileRef = A7ABD66E1B702FF000A1223C /* good_site_key.pem */; }; - A7ABD6891B702FF000A1223C /* good_site_request.pem in Resources */ = {isa = PBXBuildFile; fileRef = A7ABD66F1B702FF000A1223C /* good_site_request.pem */; }; - A7ABD68A1B702FF000A1223C /* https_server.rb in Resources */ = {isa = PBXBuildFile; fileRef = A7ABD6701B702FF000A1223C /* https_server.rb */; }; - A7ABD68B1B702FF000A1223C /* make_certs.sh in Resources */ = {isa = PBXBuildFile; fileRef = A7ABD6711B702FF000A1223C /* make_certs.sh */; }; - A7ABD68E1B702FF000A1223C /* BraintreeCard_IntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A7ABD6771B702FF000A1223C /* BraintreeCard_IntegrationTests.m */; }; - A7AF0F601C20E80A00B3ADC6 /* BTThreeDSecureLookupResult_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7AF0F5F1C20E80A00B3ADC6 /* BTThreeDSecureLookupResult_Tests.swift */; }; - A7AF0F621C222F9400B3ADC6 /* BTPaymentButton_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7AF0F611C222F9400B3ADC6 /* BTPaymentButton_Tests.swift */; }; - A7B1C1431B66B3D000ED063C /* BTConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B1C1411B66B3D000ED063C /* BTConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7B1C1441B66B3D000ED063C /* BTConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B1C1421B66B3D000ED063C /* BTConfiguration.m */; }; - A7B1C1471B66D94600ED063C /* BTConfiguration+Venmo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B1C1451B66D94600ED063C /* BTConfiguration+Venmo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7B1C1481B66D94600ED063C /* BTConfiguration+Venmo.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B1C1461B66D94600ED063C /* BTConfiguration+Venmo.m */; }; - A7B1C14B1B66E11C00ED063C /* BTConfiguration+PayPal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B1C1491B66E11C00ED063C /* BTConfiguration+PayPal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7B1C14C1B66E11C00ED063C /* BTConfiguration+PayPal.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B1C14A1B66E11C00ED063C /* BTConfiguration+PayPal.m */; }; - A7B1C14F1B66E46900ED063C /* BTConfiguration+ApplePay.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B1C14D1B66E46900ED063C /* BTConfiguration+ApplePay.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7B1C1501B66E46900ED063C /* BTConfiguration+ApplePay.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B1C14E1B66E46900ED063C /* BTConfiguration+ApplePay.m */; }; - A7B1C1531B66F79900ED063C /* BTAppSwitch.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B1C1511B66F79900ED063C /* BTAppSwitch.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7B1C1541B66F79900ED063C /* BTAppSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B1C1521B66F79900ED063C /* BTAppSwitch.m */; }; - A7B4624A1C3C911200048423 /* PPOTAppSwitchResponseTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B462441C3C911200048423 /* PPOTAppSwitchResponseTest.m */; }; - A7B4624D1C3C911200048423 /* PPOTAppSwitchUtilTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B462451C3C911200048423 /* PPOTAppSwitchUtilTest.m */; }; - A7B462501C3C911200048423 /* PPOTConfigurationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B462461C3C911200048423 /* PPOTConfigurationTest.m */; }; - A7B462531C3C911200048423 /* PPOTEncryptionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B462471C3C911200048423 /* PPOTEncryptionTest.m */; }; - A7B462561C3C911200048423 /* PPOTErrorTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B462481C3C911200048423 /* PPOTErrorTest.m */; }; - A7B462591C3C911200048423 /* PPOTTimeTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B462491C3C911200048423 /* PPOTTimeTest.m */; }; - A7B4625C1C3C93EB00048423 /* libPayPalOneTouch-StaticLibrary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A50C3AD51C19F00600612D90 /* libPayPalOneTouch-StaticLibrary.a */; }; - A7B4625D1C3C93EB00048423 /* libPayPalDataCollector-StaticLibrary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A50C3B051C19F55C00612D90 /* libPayPalDataCollector-StaticLibrary.a */; }; - A7B462641C3C967400048423 /* PPOTConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3ACF1C19E7F500612D90 /* PPOTConfiguration.h */; }; - A7B462651C3C967400048423 /* PPOTAppSwitchResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3B121C19F7FC00612D90 /* PPOTAppSwitchResponse.h */; }; - A7B462661C3C967400048423 /* PPOTAppSwitchUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3B141C19F7FC00612D90 /* PPOTAppSwitchUtil.h */; }; - A7B462671C3C967400048423 /* PPOTAuthorizationRequest_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3AB91C19E6EE00612D90 /* PPOTAuthorizationRequest_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A7B462681C3C967400048423 /* PPOTCheckoutAppSwitchRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3B161C19F7FC00612D90 /* PPOTCheckoutAppSwitchRequest.h */; }; - A7B462691C3C967400048423 /* PPOTCheckoutBrowserSwitchRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3B181C19F7FC00612D90 /* PPOTCheckoutBrowserSwitchRequest.h */; }; - A7B4626A1C3C967400048423 /* PPOTCheckoutRequest_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3ABC1C19E6EE00612D90 /* PPOTCheckoutRequest_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A7B4626B1C3C967400048423 /* PPOTCheckoutSwitchRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3B1A1C19F7FC00612D90 /* PPOTCheckoutSwitchRequest.h */; }; - A7B4626C1C3C967400048423 /* PPOTCore_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3ABE1C19E6EE00612D90 /* PPOTCore_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A7B4626D1C3C967400048423 /* PPOTResult_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3AC01C19E6EE00612D90 /* PPOTResult_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A7B4626E1C3C967400048423 /* PPOTError.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3B1C1C19F7FC00612D90 /* PPOTError.h */; }; - A7B4626F1C3C967400048423 /* PPOTOAuth2AppSwitchRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3B1E1C19F7FC00612D90 /* PPOTOAuth2AppSwitchRequest.h */; }; - A7B462701C3C967400048423 /* PPOTOAuth2BrowserSwitchRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3B201C19F7FC00612D90 /* PPOTOAuth2BrowserSwitchRequest.h */; }; - A7B462711C3C967400048423 /* PPOTOAuth2SwitchRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3B221C19F7FC00612D90 /* PPOTOAuth2SwitchRequest.h */; }; - A7B462721C3C967400048423 /* PPOTPersistentRequestData.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3B241C19F7FC00612D90 /* PPOTPersistentRequestData.h */; }; - A7B462731C3C967400048423 /* PPOTRequest_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3AC21C19E6EE00612D90 /* PPOTRequest_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A7B462741C3C967400048423 /* PPOTSwitchRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3B261C19F7FC00612D90 /* PPOTSwitchRequest.h */; }; - A7B462EE1C3D9C2200048423 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7A6DD281B43145D008857E1 /* SystemConfiguration.framework */; }; - A7B462EF1C3D9C2200048423 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A50C3BC41C1B3F1500612D90 /* UIKit.framework */; }; - A7B462F01C3D9C2200048423 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7A6DD261B431453008857E1 /* CoreLocation.framework */; }; - A7B462F11C3D9C2200048423 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7A6DD241B43144D008857E1 /* MessageUI.framework */; }; - A7B462F21C3D9C2200048423 /* libPPRiskComponent.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A50C3AFB1C19F52C00612D90 /* libPPRiskComponent.a */; }; - A7B462FB1C3D9C2200048423 /* PPRCClientMetadataIDProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = A50C3AFC1C19F52C00612D90 /* PPRCClientMetadataIDProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7B463071C3D9F4D00048423 /* PayPalDataCollector.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7B463051C3D9C2200048423 /* PayPalDataCollector.framework */; }; - A7B463601C3DBEFE00048423 /* PPDataCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = A7B4635F1C3DBEFE00048423 /* PPDataCollector.m */; }; - A7B463651C3DBF5E00048423 /* PayPalDataCollector.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B463631C3DBF5E00048423 /* PayPalDataCollector.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7B463661C3DBF5E00048423 /* PPDataCollector.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B463641C3DBF5E00048423 /* PPDataCollector.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7B4638B1C3DCEAD00048423 /* PayPalOneTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = A7B4638A1C3DCEAD00048423 /* PayPalOneTouch.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7B4AD571B4EFC76002FB23E /* MockAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7B4AD561B4EFC76002FB23E /* MockAPIClient.swift */; }; - A7B7989C1C233C57001327FA /* BTConfiguration_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7B7989B1C233C57001327FA /* BTConfiguration_Tests.swift */; }; - A7B798A01C238FC0001327FA /* BTTokenizationService_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7B7989F1C238FC0001327FA /* BTTokenizationService_Tests.swift */; }; - A7B861BF1C24B19300A2422E /* BTVersion_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7B861BE1C24B19300A2422E /* BTVersion_Tests.swift */; }; - A7BC50BB1C29E4CD0024C870 /* BTLogger_Internal_Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = A7BC50BA1C29E4CD0024C870 /* BTLogger_Internal_Tests.m */; }; - A7BC50BF1C29F6600024C870 /* BTDropInErrorState_Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = A7BC50BE1C29F6600024C870 /* BTDropInErrorState_Tests.m */; }; - A7C823081B4DA9D7009D45D6 /* BTHTTPSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C823071B4DA9D7009D45D6 /* BTHTTPSpec.m */; }; - A7C8230E1B4DAAB2009D45D6 /* BTSpecHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C8230D1B4DAAB2009D45D6 /* BTSpecHelper.m */; }; - A7C889801B5EF62C007A0E9C /* BTApplePayClient.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C8897C1B5EF62C007A0E9C /* BTApplePayClient.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7C889811B5EF62C007A0E9C /* BTApplePayClient.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C8897D1B5EF62C007A0E9C /* BTApplePayClient.m */; }; - A7C889821B5EF62C007A0E9C /* BTApplePayCardNonce.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C8897E1B5EF62C007A0E9C /* BTApplePayCardNonce.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7C889831B5EF62C007A0E9C /* BTApplePayCardNonce.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C8897F1B5EF62C007A0E9C /* BTApplePayCardNonce.m */; }; - A7C889871B5EF65C007A0E9C /* BraintreeApplePay.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C889861B5EF65C007A0E9C /* BraintreeApplePay.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7C889881B5EF685007A0E9C /* BraintreeCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */; }; - A7C8898A1B5EF737007A0E9C /* PassKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7C889891B5EF737007A0E9C /* PassKit.framework */; }; - A7C889A31B5F0471007A0E9C /* BTCardClient.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C8899C1B5F0471007A0E9C /* BTCardClient.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7C889A41B5F0471007A0E9C /* BTCardClient.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C8899D1B5F0471007A0E9C /* BTCardClient.m */; }; - A7C889A51B5F0471007A0E9C /* BTCard_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C8899E1B5F0471007A0E9C /* BTCard_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A7C889A61B5F0471007A0E9C /* BTCard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C8899F1B5F0471007A0E9C /* BTCard.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7C889A71B5F0471007A0E9C /* BTCard.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C889A01B5F0471007A0E9C /* BTCard.m */; }; - A7C889A81B5F0471007A0E9C /* BTCardNonce.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C889A11B5F0471007A0E9C /* BTCardNonce.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7C889A91B5F0471007A0E9C /* BTCardNonce.m in Sources */ = {isa = PBXBuildFile; fileRef = A7C889A21B5F0471007A0E9C /* BTCardNonce.m */; }; - A7C889AA1B5F04AE007A0E9C /* BraintreeCard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C889921B5F043B007A0E9C /* BraintreeCard.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7C889AB1B5F04E9007A0E9C /* BraintreeCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */; }; - A7C889D81B5F0ACB007A0E9C /* BTCardNonce_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C889D71B5F0ACB007A0E9C /* BTCardNonce_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A7C889F91B5F0B6A007A0E9C /* Braintree-Version.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C889F81B5F0B6A007A0E9C /* Braintree-Version.h */; }; - A7C88A2F1B5F10EF007A0E9C /* BraintreeCard.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7C889901B5F043B007A0E9C /* BraintreeCard.framework */; }; - A7CB42D31B73E629002CCFDD /* BraintreePayPal_IntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A7CB42D21B73E629002CCFDD /* BraintreePayPal_IntegrationTests.m */; }; - A7CCE2AE1B67F26C006EA661 /* BTAppSwitch_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7CCE2AD1B67F26C006EA661 /* BTAppSwitch_Tests.swift */; }; - A7D4630D1B4B16C100A09C46 /* BTHTTPTestProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D4630C1B4B16C100A09C46 /* BTHTTPTestProtocol.m */; }; - A7D64ABC1B4C93B6005168EF /* BTApplePay_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D64ABB1B4C93B6005168EF /* BTApplePay_Tests.swift */; }; - A7D674681B83E5A100ED6C00 /* BraintreeDemoBTPaymentButtonViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19CD1B79708900452CFA /* BraintreeDemoBTPaymentButtonViewController.m */; }; - A7D674691B83E7F000ED6C00 /* BraintreeDemoCustomMultiPayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A76B19D01B79708900452CFA /* BraintreeDemoCustomMultiPayViewController.m */; }; - A7D6746D1B84073300ED6C00 /* MockDelegates.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7D6746C1B84073300ED6C00 /* MockDelegates.swift */; }; - A7D674731B84FDB400ED6C00 /* BTClientToken.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D674711B84FDB400ED6C00 /* BTClientToken.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7D674741B84FDB400ED6C00 /* BTClientToken.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D674721B84FDB400ED6C00 /* BTClientToken.m */; }; - A7E93E581B601EE900957223 /* BTURLUtils_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7E93E571B601EE900957223 /* BTURLUtils_Tests.swift */; }; - A7ECA5E51BEBD34100437A4F /* BTDropInViewController_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A7ECA5E41BEBD34100437A4F /* BTDropInViewController_Internal.h */; settings = {ATTRIBUTES = (Private, ); }; }; - A7F179FE1BE98E0E00E91646 /* BTPaymentRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A7F179FD1BE98E0E00E91646 /* BTPaymentRequest.m */; }; - A7F17A001BE98E1E00E91646 /* BTPaymentRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A7F179FF1BE98E1E00E91646 /* BTPaymentRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B61F67801CE4C20F0051A3BD /* BTConfiguration+DataCollector.h in Headers */ = {isa = PBXBuildFile; fileRef = B61F677E1CE4C20F0051A3BD /* BTConfiguration+DataCollector.h */; }; - B61F67811CE4C20F0051A3BD /* BTConfiguration+DataCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = B61F677F1CE4C20F0051A3BD /* BTConfiguration+DataCollector.m */; }; - B67F983A1D762177007C1903 /* BTMacroTests.m in Sources */ = {isa = PBXBuildFile; fileRef = B67F98391D762177007C1903 /* BTMacroTests.m */; }; - EEF1DE891E858A8D001BB924 /* BTEnums.h in Headers */ = {isa = PBXBuildFile; fileRef = EEF1DE881E858A31001BB924 /* BTEnums.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FD51728B52E751D1E5DC85F7 /* libPods-Tests-IntegrationTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D242087B7E38C2B838C8866E /* libPods-Tests-IntegrationTests.a */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 03CFEF3C1CD31242006D2DA5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 7EDE474C1CD2C3D00005E22B; - remoteInfo = PayPalUtils; - }; - 03EF62081DB4A90C004F4090 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2DE12F081B59BE0100EA1BCF; - remoteInfo = BraintreeCore; - }; - 03EF620C1DB4A90C004F4090 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2D941D371B59C76A0016EFB4; - remoteInfo = BraintreePayPal; - }; - 03EF62101DB4A90C004F4090 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2D941D871B5D9E8C0016EFB4; - remoteInfo = Braintree3DSecure; - }; - 03EF62141DB4A90C004F4090 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A7C889731B5EF5DE007A0E9C; - remoteInfo = BraintreeApplePay; - }; - 03EF62181DB4A90C004F4090 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A7C8898F1B5F043B007A0E9C; - remoteInfo = BraintreeCard; - }; - 03EF621C1DB4A90C004F4090 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A77AA29B1B618C7700217B73; - remoteInfo = BraintreeVenmo; - }; - 03EF62201DB4A90C004F4090 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A77344F61B7A93A10083EC8D; - remoteInfo = BraintreeUI; - }; - 03EF62241DB4A90C004F4090 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A76D7BFF1BB1CAB00000FA6A; - remoteInfo = BraintreeDataCollector; - }; - 03EF62281DB4A90C004F4090 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A50C3B6E1C1A29C500612D90; - remoteInfo = PayPalOneTouch; - }; - 03EF622C1DB4A90D004F4090 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A7B462E01C3D9C2200048423; - remoteInfo = PayPalDataCollector; - }; - 03EF62301DB4A90D004F4090 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 7EDE474C1CD2C3D00005E22B; - remoteInfo = PayPalUtils; - }; - 03EF62341DB4A90D004F4090 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4164B9951C9B658E006AE861; - remoteInfo = BraintreeUnionPay; - }; - 2D941D591B5D5F140016EFB4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2DE12F081B59BE0100EA1BCF; - remoteInfo = BraintreeCore; - }; - 2D941D621B5D6C850016EFB4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2D941D371B59C76A0016EFB4; - remoteInfo = BraintreePayPal; - }; - 2D941D661B5D6C940016EFB4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2DE12F081B59BE0100EA1BCF; - remoteInfo = BraintreeCore; - }; - 2D941DA11B5D9F470016EFB4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2D941D871B5D9E8C0016EFB4; - remoteInfo = Braintree3DSecure; - }; - 2D941DA41B5D9F790016EFB4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2DE12F081B59BE0100EA1BCF; - remoteInfo = BraintreeCore; - }; - 4164B9971C9B658E006AE861 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2DE12F081B59BE0100EA1BCF; - remoteInfo = BraintreeCore; - }; - 4164B9B21C9B68D2006AE861 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A7C8898F1B5F043B007A0E9C; - remoteInfo = BraintreeCard; - }; - 4169A8EF1CAB10600051DDAF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4164B9951C9B658E006AE861; - remoteInfo = BraintreeUnionPay; - }; - 4169A8F21CAB11110051DDAF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A77344F61B7A93A10083EC8D; - remoteInfo = BraintreeUI; - }; - 4169A8F41CAB11110051DDAF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4164B9951C9B658E006AE861; - remoteInfo = BraintreeUnionPay; - }; - 4169A8F61CAB11280051DDAF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A50C3B6E1C1A29C500612D90; - remoteInfo = PayPalOneTouch; - }; - 41935DE71D528B2C008D48FB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2DE12F081B59BE0100EA1BCF; - remoteInfo = BraintreeCore; - }; - 41BC343A1BF69D3700161106 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A76B198A1B79707700452CFA; - remoteInfo = Demo; - }; - 41D54D2E1C7F97680051C96B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2DE12F081B59BE0100EA1BCF; - remoteInfo = BraintreeCore; - }; - 41E3B35B1BA386DE0081824E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A77344F61B7A93A10083EC8D; - remoteInfo = BraintreeUI; - }; - 7EDE47741CD2C5520005E22B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 7EDE474C1CD2C3D00005E22B; - remoteInfo = PayPalUtils; - }; - 7EDE477A1CD2C5D00005E22B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 7EDE474C1CD2C3D00005E22B; - remoteInfo = PayPalUtils; - }; - 841CDCC31BCDBC6100A06B21 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A76D7BFF1BB1CAB00000FA6A; - remoteInfo = BraintreeDataCollector; - }; - A50C3BB31C1A322800612D90 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A50C3B041C19F55C00612D90; - remoteInfo = "PayPalRisk-StaticLibrary"; - }; - A50C3BD01C1B454100612D90 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A50C3B6E1C1A29C500612D90; - remoteInfo = PayPalOneTouch; - }; - A5D3A5A01C20BEDC003A25A1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A50C3B6E1C1A29C500612D90; - remoteInfo = PayPalOneTouch; - }; - A70FADC11C03BE7A002752C9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A7C889731B5EF5DE007A0E9C; - remoteInfo = BraintreeApplePay; - }; - A71559551B72C2A7007DE6F0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2D941D871B5D9E8C0016EFB4; - remoteInfo = Braintree3DSecure; - }; - A715595D1B72C2A7007DE6F0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2D941D371B59C76A0016EFB4; - remoteInfo = BraintreePayPal; - }; - A715595F1B72C2A7007DE6F0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A77AA29B1B618C7700217B73; - remoteInfo = BraintreeVenmo; - }; - A75319F11B715C4200E27B89 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A7C8898F1B5F043B007A0E9C; - remoteInfo = BraintreeCard; - }; - A75538381B8BC9C600054F82 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A76B198A1B79707700452CFA; - remoteInfo = "Braintree-Demo"; - }; - A76D7C351BB318BF0000FA6A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A76D7BFF1BB1CAB00000FA6A; - remoteInfo = BraintreeDataCollector; - }; - A77120501CD95DCE0004FFD3 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A7C8898F1B5F043B007A0E9C; - remoteInfo = BraintreeCard; - }; - A77AA2A41B618CB300217B73 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A77AA29B1B618C7700217B73; - remoteInfo = BraintreeVenmo; - }; - A77AA2AF1B618D5000217B73 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A7C8898F1B5F043B007A0E9C; - remoteInfo = BraintreeCard; - }; - A77AA2B11B618D5000217B73 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2DE12F081B59BE0100EA1BCF; - remoteInfo = BraintreeCore; - }; - A7ABD68F1B70304200A1223C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2DE12F081B59BE0100EA1BCF; - remoteInfo = BraintreeCore; - }; - A7B4623D1C3C742900048423 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A76B198A1B79707700452CFA; - remoteInfo = Demo; - }; - A7B4625E1C3C941D00048423 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A50C3AD41C19F00600612D90; - remoteInfo = "PayPalOneTouch-StaticLibrary"; - }; - A7B462601C3C941D00048423 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A50C3B041C19F55C00612D90; - remoteInfo = "PayPalRisk-StaticLibrary"; - }; - A7B463081C3D9FEE00048423 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A7B462E01C3D9C2200048423; - remoteInfo = PayPalDataCollector; - }; - A7B4630B1C3DA21200048423 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A7C8898F1B5F043B007A0E9C; - remoteInfo = BraintreeCard; - }; - A7C88A271B5F109B007A0E9C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A7C889731B5EF5DE007A0E9C; - remoteInfo = BraintreeApplePay; - }; - A7C88A291B5F109B007A0E9C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A7C8898F1B5F043B007A0E9C; - remoteInfo = BraintreeCard; - }; - A7F5701D1C1611AA0007D018 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2DE12F081B59BE0100EA1BCF; - remoteInfo = BraintreeCore; - }; - A7F5701F1C1611B20007D018 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2DE12F081B59BE0100EA1BCF; - remoteInfo = BraintreeCore; - }; - A7F570211C1611CA0007D018 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A75DA344192138F000D997A2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2DE12F081B59BE0100EA1BCF; - remoteInfo = BraintreeCore; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 413533751BF6C7290005D1BA /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 03EF620F1DB4A90C004F4090 /* Braintree3DSecure.framework in Embed Frameworks */, - 03EF622B1DB4A90D004F4090 /* PayPalDataCollector.framework in Embed Frameworks */, - 03EF621B1DB4A90C004F4090 /* BraintreeVenmo.framework in Embed Frameworks */, - 03EF62231DB4A90C004F4090 /* BraintreeDataCollector.framework in Embed Frameworks */, - 03EF62171DB4A90C004F4090 /* BraintreeCard.framework in Embed Frameworks */, - 03EF621F1DB4A90C004F4090 /* BraintreeUI.framework in Embed Frameworks */, - 03EF62271DB4A90C004F4090 /* PayPalOneTouch.framework in Embed Frameworks */, - 03EF620B1DB4A90C004F4090 /* BraintreePayPal.framework in Embed Frameworks */, - 03EF62071DB4A90C004F4090 /* BraintreeCore.framework in Embed Frameworks */, - 03EF622F1DB4A90D004F4090 /* PayPalUtils.framework in Embed Frameworks */, - 03EF62331DB4A90D004F4090 /* BraintreeUnionPay.framework in Embed Frameworks */, - 03EF62131DB4A90C004F4090 /* BraintreeApplePay.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - A50C3AD31C19F00600612D90 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - A50C3AF31C19F07B00612D90 /* PPOTCore.h in CopyFiles */, - A50C3AF41C19F07B00612D90 /* PPOTResult.h in CopyFiles */, - A50C3AF51C19F07B00612D90 /* PPOTRequest.h in CopyFiles */, - A50C3AF61C19F07B00612D90 /* PPOTRequestFactory.h in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A50C3B031C19F55C00612D90 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - A76B991C1C3EF4A000A584F6 /* PayPalDataCollector.h in CopyFiles */, - A76B991D1C3EF4A400A584F6 /* PPDataCollector.h in CopyFiles */, - A76B991B1C3EF49600A584F6 /* PPRCClientMetadataIDProvider.h in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 031B94BB1C34822800F136C8 /* BTUI_UIColor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUI_UIColor.m; sourceTree = ""; }; - 031B94BC1C34822800F136C8 /* BTUICardExpirationValidatorSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICardExpirationValidatorSpec.m; sourceTree = ""; }; - 031B94BD1C34822800F136C8 /* BTUICardExpiryFormatterSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICardExpiryFormatterSpec.m; sourceTree = ""; }; - 031B94BF1C34822800F136C8 /* BTUICardTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICardTypeSpec.m; sourceTree = ""; }; - 031B94C01C34822800F136C8 /* BTUISpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUISpec.m; sourceTree = ""; }; - 031B94C21C34822800F136C8 /* EXPMatchers+haveKerning.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+haveKerning.h"; sourceTree = ""; }; - 031B94C31C34822800F136C8 /* EXPMatchers+haveKerning.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "EXPMatchers+haveKerning.m"; sourceTree = ""; }; - 0325AC231C289B5F00E90999 /* BraintreeThreeDSecure_UITests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BraintreeThreeDSecure_UITests.swift; sourceTree = ""; }; - 032C26871DDEEB5000BBC1C2 /* BTDropInUtil_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTDropInUtil_Tests.swift; sourceTree = ""; }; - 032D3A711C580B09000E5F6B /* PPDataCollectorTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPDataCollectorTest.m; sourceTree = ""; }; - 0338000F1C248B9C00CFF1D9 /* BraintreeDropInLegacy_UITests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BraintreeDropInLegacy_UITests.swift; sourceTree = ""; }; - 035945551BE96345002116BB /* BTUIVenmoMonogramCardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIVenmoMonogramCardView.h; sourceTree = ""; }; - 035945561BE96345002116BB /* BTUIVenmoMonogramCardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIVenmoMonogramCardView.m; sourceTree = ""; }; - 0384E94C1C23BAFF001A3380 /* BraintreePayPal_UITests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BraintreePayPal_UITests.swift; sourceTree = ""; }; - 0384E94E1C23C108001A3380 /* BTUITest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BTUITest.swift; path = Helpers/BTUITest.swift; sourceTree = ""; }; - 03B368B11CAD95D300CDFC9C /* BraintreeDemoDropInLegacyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoDropInLegacyViewController.h; sourceTree = ""; }; - 03B368B21CAD95D300CDFC9C /* BraintreeDemoDropInLegacyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoDropInLegacyViewController.m; sourceTree = ""; }; - 03CFEF241CD304B0006D2DA5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 03CFEF261CD30B15006D2DA5 /* PPOTDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPOTDevice.h; sourceTree = ""; }; - 03CFEF271CD30B15006D2DA5 /* PPOTEncryptionHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPOTEncryptionHelper.h; sourceTree = ""; }; - 03CFEF281CD30B15006D2DA5 /* PPOTJSONHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPOTJSONHelper.h; sourceTree = ""; }; - 03CFEF291CD30B15006D2DA5 /* PPOTMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPOTMacros.h; sourceTree = ""; }; - 03CFEF2A1CD30B15006D2DA5 /* PPOTPinnedCertificates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPOTPinnedCertificates.h; sourceTree = ""; }; - 03CFEF2B1CD30B15006D2DA5 /* PPOTSimpleKeychain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPOTSimpleKeychain.h; sourceTree = ""; }; - 03CFEF2C1CD30B15006D2DA5 /* PPOTString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPOTString.h; sourceTree = ""; }; - 03CFEF2D1CD30B15006D2DA5 /* PPOTTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPOTTime.h; sourceTree = ""; }; - 03CFEF2E1CD30B15006D2DA5 /* PPOTURLSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPOTURLSession.h; sourceTree = ""; }; - 03CFEF2F1CD30B15006D2DA5 /* PPOTVersion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPOTVersion.h; sourceTree = ""; }; - 03CFEF3A1CD30C28006D2DA5 /* PayPalUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PayPalUtils.h; sourceTree = ""; }; - 03D294FE1BE835C8004F90DA /* BTVenmoAccountNonce_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTVenmoAccountNonce_Internal.h; sourceTree = ""; }; - 03F54E101C499E1200F11033 /* BraintreeDemoPayPalForceFuturePaymentViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoPayPalForceFuturePaymentViewController.h; sourceTree = ""; }; - 03F54E111C499E1200F11033 /* BraintreeDemoPayPalForceFuturePaymentViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoPayPalForceFuturePaymentViewController.m; sourceTree = ""; }; - 03F8B2661C23976000FD184B /* UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 03F8B26A1C23976100FD184B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 0CF0BA897F9E79A01D6A2C66 /* Pods-Tests-IntegrationTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-IntegrationTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-IntegrationTests/Pods-Tests-IntegrationTests.release.xcconfig"; sourceTree = ""; }; - 10A1F947EB4DC18E4744F5FE /* Pods-Demo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Demo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Demo/Pods-Demo.debug.xcconfig"; sourceTree = ""; }; - 162174E1192D9220008DC35D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 16C42B681B3DDFE00028A3B4 /* BTAPIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BTAPIClient.h; sourceTree = ""; }; - 16C42B691B3DDFE00028A3B4 /* BTAPIClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BTAPIClient.m; sourceTree = ""; }; - 16C42B6C1B3DE0550028A3B4 /* BTPayPalDriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTPayPalDriver.h; sourceTree = ""; }; - 16C42B6D1B3DE0550028A3B4 /* BTPayPalDriver.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTPayPalDriver.m; sourceTree = ""; }; - 16CD2E9C1B4077FB00E68495 /* UnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 16CD2E9E1B4077FC00E68495 /* BTJSON_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTJSON_Tests.swift; sourceTree = ""; }; - 16CD2EA01B4077FC00E68495 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 16E17D061B3DE3B40024F9AB /* BTPaymentMethodNonce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTPaymentMethodNonce.h; sourceTree = ""; }; - 16E17D1A1B3DE4570024F9AB /* BTPayPalAccountNonce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTPayPalAccountNonce.h; sourceTree = ""; }; - 16E17D1B1B3DE4580024F9AB /* BTPayPalAccountNonce.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTPayPalAccountNonce.m; sourceTree = ""; }; - 16E17D261B3DFA0F0024F9AB /* BTPayPalRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTPayPalRequest.h; sourceTree = ""; }; - 16E17D271B3DFA0F0024F9AB /* BTPayPalRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTPayPalRequest.m; sourceTree = ""; }; - 2D941D381B59C76A0016EFB4 /* BraintreePayPal.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BraintreePayPal.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D941D3A1B59C76A0016EFB4 /* BraintreePayPal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BraintreePayPal.h; sourceTree = ""; }; - 2D941D881B5D9E8C0016EFB4 /* Braintree3DSecure.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Braintree3DSecure.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D941D8A1B5D9E8C0016EFB4 /* Braintree3DSecure.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Braintree3DSecure.h; sourceTree = ""; }; - 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BraintreeCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2DE12F0B1B59BE0100EA1BCF /* BraintreeCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BraintreeCore.h; sourceTree = ""; }; - 2DE12F0D1B59BE0100EA1BCF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 4107EB211C88C75000F32D81 /* BTUICardPhoneNumberField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICardPhoneNumberField.h; sourceTree = ""; }; - 4107EB221C88C75000F32D81 /* BTUICardPhoneNumberField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICardPhoneNumberField.m; sourceTree = ""; }; - 41211EF61BA0E45300DB1705 /* BTPaymentMethodNonce.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTPaymentMethodNonce.m; sourceTree = ""; }; - 41211EF91BA0E47400DB1705 /* BTPaymentMethodNonce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BTPaymentMethodNonce.h; sourceTree = ""; }; - 412FE0561B9799EE008AAABE /* BTApplePayClient_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTApplePayClient_Internal.h; sourceTree = ""; }; - 413CDF4E1C779ED400B89FCA /* BTDataCollector_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTDataCollector_Internal.h; sourceTree = ""; }; - 41472F921CB6D52200AFA75C /* BTConfiguration+UnionPay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "BTConfiguration+UnionPay.m"; sourceTree = ""; }; - 41472F961CB6D53400AFA75C /* BTConfiguration+UnionPay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "BTConfiguration+UnionPay.h"; sourceTree = ""; }; - 4149C91C1BA218830090665E /* BTPaymentMethodNonceParser_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTPaymentMethodNonceParser_Tests.swift; sourceTree = ""; }; - 415924B01BA0F2A900C095F6 /* BTPaymentMethodNonceParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTPaymentMethodNonceParser.m; sourceTree = ""; }; - 415924B31BA0F2D800C095F6 /* BTPaymentMethodNonceParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BTPaymentMethodNonceParser.h; sourceTree = ""; }; - 4164B9AC1C9B658E006AE861 /* BraintreeUnionPay.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BraintreeUnionPay.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4164B9AF1C9B6690006AE861 /* BraintreeUnionPay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeUnionPay.h; sourceTree = ""; }; - 4164B9B81C9B6988006AE861 /* BTCardClient+UnionPay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "BTCardClient+UnionPay.h"; sourceTree = ""; }; - 4164B9B91C9B6988006AE861 /* BTCardClient+UnionPay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "BTCardClient+UnionPay.m"; sourceTree = ""; }; - 417404491BB084D3008A5DEA /* libBraintree.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libBraintree.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 417453BE1BCEF9CB00F33B65 /* libPods-Demo-CocoaPods.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libPods-Demo-CocoaPods.a"; path = "Pods/../build/Debug-iphoneos/libPods-Demo-CocoaPods.a"; sourceTree = ""; }; - 418456E71BE42F0B00C32391 /* BTViewControllerPresentingDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTViewControllerPresentingDelegate.h; sourceTree = ""; }; - 41913D9D1BB9D503004EF1BB /* BTUIPaymentOptionType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIPaymentOptionType.h; sourceTree = ""; }; - 41913D9E1BB9D503004EF1BB /* BTUIThemedView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIThemedView.h; sourceTree = ""; }; - 41B787BC1BAA20DB001AD351 /* BTDropInViewController_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTDropInViewController_Tests.swift; sourceTree = ""; }; - 41D6E2A51B8D12CD00A3C2AE /* FakePayPalClasses.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FakePayPalClasses.h; sourceTree = ""; }; - 41D6E2A61B8D12CD00A3C2AE /* FakePayPalClasses.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FakePayPalClasses.m; sourceTree = ""; }; - 41F1D1FA1CAA005500DA34CB /* BTCardClient_UnionPayTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTCardClient_UnionPayTests.swift; sourceTree = ""; }; - 4621B720EE8A9B65FFFE3632 /* Pods-Tests-UnitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-UnitTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-UnitTests/Pods-Tests-UnitTests.release.xcconfig"; sourceTree = ""; }; - 7EDE47701CD2C3D00005E22B /* PayPalUtils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PayPalUtils.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 842B68F01BCF083E0039634F /* BTAPIClient_SwiftTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTAPIClient_SwiftTests.swift; sourceTree = ""; }; - 844ED5E61BCC3F0B002B590C /* BTDataCollector_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTDataCollector_Tests.swift; sourceTree = ""; }; - 848470E01BE816DF009B12AE /* BTFakeHTTP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTFakeHTTP.h; sourceTree = ""; }; - 848470E11BE81893009B12AE /* BTFakeHTTP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTFakeHTTP.m; sourceTree = ""; }; - 8498EC1A1BB46D4B007FFDEC /* BTCardClient_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTCardClient_Internal.h; sourceTree = ""; }; - A3D9C499891AB1363F3E1290 /* libPods-Demo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Demo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - A50C3A921C19E65700612D90 /* PPFPTIData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PPFPTIData.h; path = BraintreePayPal/PayPalOneTouch/Analytics/PPFPTIData.h; sourceTree = ""; }; - A50C3A931C19E65700612D90 /* PPFPTIData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PPFPTIData.m; path = BraintreePayPal/PayPalOneTouch/Analytics/PPFPTIData.m; sourceTree = ""; }; - A50C3A941C19E65700612D90 /* PPFPTITracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PPFPTITracker.h; path = BraintreePayPal/PayPalOneTouch/Analytics/PPFPTITracker.h; sourceTree = ""; }; - A50C3A951C19E65700612D90 /* PPFPTITracker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PPFPTITracker.m; path = BraintreePayPal/PayPalOneTouch/Analytics/PPFPTITracker.m; sourceTree = ""; }; - A50C3A961C19E65700612D90 /* PPOTAnalyticsDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PPOTAnalyticsDefines.h; path = BraintreePayPal/PayPalOneTouch/Analytics/PPOTAnalyticsDefines.h; sourceTree = ""; }; - A50C3A971C19E65700612D90 /* PPOTAnalyticsTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PPOTAnalyticsTracker.h; path = BraintreePayPal/PayPalOneTouch/Analytics/PPOTAnalyticsTracker.h; sourceTree = ""; }; - A50C3A981C19E65700612D90 /* PPOTAnalyticsTracker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PPOTAnalyticsTracker.m; path = BraintreePayPal/PayPalOneTouch/Analytics/PPOTAnalyticsTracker.m; sourceTree = ""; }; - A50C3AA01C19E6A200612D90 /* PPOTCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTCore.h; path = BraintreePayPal/PayPalOneTouch/Public/PPOTCore.h; sourceTree = ""; }; - A50C3AA11C19E6A200612D90 /* PPOTResult.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTResult.h; path = BraintreePayPal/PayPalOneTouch/Public/PPOTResult.h; sourceTree = ""; }; - A50C3AA21C19E6A200612D90 /* PPOTRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTRequest.h; path = BraintreePayPal/PayPalOneTouch/Public/PPOTRequest.h; sourceTree = ""; }; - A50C3AA31C19E6A200612D90 /* PPOTRequestFactory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTRequestFactory.h; path = BraintreePayPal/PayPalOneTouch/Public/PPOTRequestFactory.h; sourceTree = ""; }; - A50C3AB91C19E6EE00612D90 /* PPOTAuthorizationRequest_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PPOTAuthorizationRequest_Internal.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTAuthorizationRequest_Internal.h; sourceTree = ""; }; - A50C3ABA1C19E6EE00612D90 /* PPOTAuthorizationRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PPOTAuthorizationRequest.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTAuthorizationRequest.m; sourceTree = ""; }; - A50C3ABB1C19E6EE00612D90 /* PPOTBillingAgreementRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PPOTBillingAgreementRequest.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTBillingAgreementRequest.m; sourceTree = ""; }; - A50C3ABC1C19E6EE00612D90 /* PPOTCheckoutRequest_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PPOTCheckoutRequest_Internal.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutRequest_Internal.h; sourceTree = ""; }; - A50C3ABD1C19E6EE00612D90 /* PPOTCheckoutRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PPOTCheckoutRequest.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutRequest.m; sourceTree = ""; }; - A50C3ABE1C19E6EE00612D90 /* PPOTCore_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PPOTCore_Internal.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTCore_Internal.h; sourceTree = ""; }; - A50C3ABF1C19E6EE00612D90 /* PPOTCore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PPOTCore.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTCore.m; sourceTree = ""; }; - A50C3AC01C19E6EE00612D90 /* PPOTResult_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PPOTResult_Internal.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTResult_Internal.h; sourceTree = ""; }; - A50C3AC11C19E6EE00612D90 /* PPOTResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PPOTResult.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTResult.m; sourceTree = ""; }; - A50C3AC21C19E6EE00612D90 /* PPOTRequest_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PPOTRequest_Internal.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTRequest_Internal.h; sourceTree = ""; }; - A50C3AC31C19E6EE00612D90 /* PPOTRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PPOTRequest.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTRequest.m; sourceTree = ""; }; - A50C3AC41C19E6EE00612D90 /* PPOTRequestFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PPOTRequestFactory.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTRequestFactory.m; sourceTree = ""; }; - A50C3ACD1C19E7F500612D90 /* otc-config.ios.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; name = "otc-config.ios.json"; path = "BraintreePayPal/PayPalOneTouch/Configuration/otc-config.ios.json"; sourceTree = ""; }; - A50C3ACE1C19E7F500612D90 /* PPDefaultConfigurationJSON.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPDefaultConfigurationJSON.h; path = BraintreePayPal/PayPalOneTouch/Configuration/PPDefaultConfigurationJSON.h; sourceTree = ""; }; - A50C3ACF1C19E7F500612D90 /* PPOTConfiguration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTConfiguration.h; path = BraintreePayPal/PayPalOneTouch/Configuration/PPOTConfiguration.h; sourceTree = ""; }; - A50C3AD01C19E7F500612D90 /* PPOTConfiguration.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PPOTConfiguration.m; path = BraintreePayPal/PayPalOneTouch/Configuration/PPOTConfiguration.m; sourceTree = ""; }; - A50C3AD51C19F00600612D90 /* libPayPalOneTouch-StaticLibrary.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPayPalOneTouch-StaticLibrary.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - A50C3AFB1C19F52C00612D90 /* libPPRiskComponent.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libPPRiskComponent.a; sourceTree = ""; }; - A50C3AFC1C19F52C00612D90 /* PPRCClientMetadataIDProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPRCClientMetadataIDProvider.h; sourceTree = ""; }; - A50C3B051C19F55C00612D90 /* libPayPalDataCollector-StaticLibrary.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPayPalDataCollector-StaticLibrary.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - A50C3B121C19F7FC00612D90 /* PPOTAppSwitchResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTAppSwitchResponse.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTAppSwitchResponse.h; sourceTree = ""; }; - A50C3B131C19F7FC00612D90 /* PPOTAppSwitchResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PPOTAppSwitchResponse.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTAppSwitchResponse.m; sourceTree = ""; }; - A50C3B141C19F7FC00612D90 /* PPOTAppSwitchUtil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTAppSwitchUtil.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTAppSwitchUtil.h; sourceTree = ""; }; - A50C3B151C19F7FC00612D90 /* PPOTAppSwitchUtil.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PPOTAppSwitchUtil.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTAppSwitchUtil.m; sourceTree = ""; }; - A50C3B161C19F7FC00612D90 /* PPOTCheckoutAppSwitchRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTCheckoutAppSwitchRequest.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutAppSwitchRequest.h; sourceTree = ""; }; - A50C3B171C19F7FC00612D90 /* PPOTCheckoutAppSwitchRequest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PPOTCheckoutAppSwitchRequest.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutAppSwitchRequest.m; sourceTree = ""; }; - A50C3B181C19F7FC00612D90 /* PPOTCheckoutBrowserSwitchRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTCheckoutBrowserSwitchRequest.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutBrowserSwitchRequest.h; sourceTree = ""; }; - A50C3B191C19F7FC00612D90 /* PPOTCheckoutBrowserSwitchRequest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PPOTCheckoutBrowserSwitchRequest.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutBrowserSwitchRequest.m; sourceTree = ""; }; - A50C3B1A1C19F7FC00612D90 /* PPOTCheckoutSwitchRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTCheckoutSwitchRequest.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutSwitchRequest.h; sourceTree = ""; }; - A50C3B1B1C19F7FC00612D90 /* PPOTCheckoutSwitchRequest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PPOTCheckoutSwitchRequest.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTCheckoutSwitchRequest.m; sourceTree = ""; }; - A50C3B1C1C19F7FC00612D90 /* PPOTError.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTError.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTError.h; sourceTree = ""; }; - A50C3B1D1C19F7FC00612D90 /* PPOTError.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PPOTError.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTError.m; sourceTree = ""; }; - A50C3B1E1C19F7FC00612D90 /* PPOTOAuth2AppSwitchRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTOAuth2AppSwitchRequest.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTOAuth2AppSwitchRequest.h; sourceTree = ""; }; - A50C3B1F1C19F7FC00612D90 /* PPOTOAuth2AppSwitchRequest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PPOTOAuth2AppSwitchRequest.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTOAuth2AppSwitchRequest.m; sourceTree = ""; }; - A50C3B201C19F7FC00612D90 /* PPOTOAuth2BrowserSwitchRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTOAuth2BrowserSwitchRequest.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTOAuth2BrowserSwitchRequest.h; sourceTree = ""; }; - A50C3B211C19F7FC00612D90 /* PPOTOAuth2BrowserSwitchRequest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PPOTOAuth2BrowserSwitchRequest.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTOAuth2BrowserSwitchRequest.m; sourceTree = ""; }; - A50C3B221C19F7FC00612D90 /* PPOTOAuth2SwitchRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTOAuth2SwitchRequest.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTOAuth2SwitchRequest.h; sourceTree = ""; }; - A50C3B231C19F7FC00612D90 /* PPOTOAuth2SwitchRequest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PPOTOAuth2SwitchRequest.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTOAuth2SwitchRequest.m; sourceTree = ""; }; - A50C3B241C19F7FC00612D90 /* PPOTPersistentRequestData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTPersistentRequestData.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTPersistentRequestData.h; sourceTree = ""; }; - A50C3B251C19F7FC00612D90 /* PPOTPersistentRequestData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PPOTPersistentRequestData.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTPersistentRequestData.m; sourceTree = ""; }; - A50C3B261C19F7FC00612D90 /* PPOTSwitchRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PPOTSwitchRequest.h; path = BraintreePayPal/PayPalOneTouch/Models/PPOTSwitchRequest.h; sourceTree = ""; }; - A50C3B271C19F7FC00612D90 /* PPOTSwitchRequest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PPOTSwitchRequest.m; path = BraintreePayPal/PayPalOneTouch/Models/PPOTSwitchRequest.m; sourceTree = ""; }; - A50C3B631C1A288700612D90 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A50C3B6F1C1A29C500612D90 /* PayPalOneTouch.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PayPalOneTouch.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A50C3B731C1A29C500612D90 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = BraintreePayPal/PayPalOneTouch/Info.plist; sourceTree = ""; }; - A50C3BC41C1B3F1500612D90 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - A51527321D9C3DC600FF3F77 /* KDataCollector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KDataCollector.h; sourceTree = ""; }; - A51527361D9EEFE800FF3F77 /* BraintreeDemoDropInViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoDropInViewController.h; sourceTree = ""; }; - A51527371D9EEFE800FF3F77 /* BraintreeDemoDropInViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoDropInViewController.m; sourceTree = ""; }; - A5D3A56E1C20975F003A25A1 /* PPFPTIDataTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPFPTIDataTest.m; sourceTree = ""; }; - A5D3A56F1C20975F003A25A1 /* PPFPTITrackerTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPFPTITrackerTest.m; sourceTree = ""; }; - A5F444AD1E89903E00B2B4F7 /* BTPayPalCreditFinancing.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BTPayPalCreditFinancing.h; sourceTree = ""; }; - A5FE18301E799EDF00CBE9C7 /* BTPayPalCreditFinancing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTPayPalCreditFinancing.m; sourceTree = ""; }; - A5FE18341E79B75500CBE9C7 /* BTPayPalCreditFinancingAmount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTPayPalCreditFinancingAmount.m; sourceTree = ""; }; - A5FE183B1E79D5E700CBE9C7 /* BraintreeDemoPayPalCreditPaymentViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoPayPalCreditPaymentViewController.h; sourceTree = ""; }; - A5FE183C1E79D5E700CBE9C7 /* BraintreeDemoPayPalCreditPaymentViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoPayPalCreditPaymentViewController.m; sourceTree = ""; }; - A70241B71C598BA200875DB8 /* BTUIPayPalWordmarkVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIPayPalWordmarkVectorArtView.h; sourceTree = ""; }; - A70241B81C598BA200875DB8 /* BTUIPayPalWordmarkVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIPayPalWordmarkVectorArtView.m; sourceTree = ""; }; - A70241BB1C5A9A2F00875DB8 /* BTUIPayPalCompactButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BTUIPayPalCompactButton.h; path = "../Views/Payments Components/BTUIPayPalCompactButton.h"; sourceTree = ""; }; - A70241BC1C5A9A2F00875DB8 /* BTUIPayPalCompactButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIPayPalCompactButton.m; sourceTree = ""; }; - A7102E191B5085BB0007D40A /* BTPayPalAccountNonce_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTPayPalAccountNonce_Internal.h; sourceTree = ""; }; - A71559401B729297007DE6F0 /* BTIntegrationTestsHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTIntegrationTestsHelper.h; sourceTree = ""; }; - A71559411B729297007DE6F0 /* BTIntegrationTestsHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTIntegrationTestsHelper.m; sourceTree = ""; }; - A71559471B72B085007DE6F0 /* BraintreeApplePay_IntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeApplePay_IntegrationTests.m; sourceTree = ""; }; - A717542F1BDEF1EC00002676 /* BTURLUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTURLUtils.h; sourceTree = ""; }; - A71F7DDF1B616BA0005DA1B0 /* BTVenmoAppSwitchReturnURLSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTVenmoAppSwitchReturnURLSpec.m; sourceTree = ""; }; - A71F7DE01B616BA0005DA1B0 /* BTVenmoAppSwitchURLSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTVenmoAppSwitchURLSpec.m; sourceTree = ""; }; - A71F7DE61B6180A3005DA1B0 /* BTVenmoDriver_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTVenmoDriver_Tests.swift; sourceTree = ""; }; - A726BFE11B56D5E900B5C8F0 /* BTAnalyticsMetadataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTAnalyticsMetadataSpec.m; sourceTree = ""; }; - A72E134B1B44630C002703DD /* BTPostalAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BTPostalAddress.h; sourceTree = ""; }; - A72E134C1B44630C002703DD /* BTPostalAddress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTPostalAddress.m; sourceTree = ""; }; - A72E134F1B446DED002703DD /* BTClientMetadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTClientMetadata.h; sourceTree = ""; }; - A72E13501B446DED002703DD /* BTClientMetadata.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTClientMetadata.m; sourceTree = ""; }; - A73012821BEBE0C50074C118 /* BTPaymentButton_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTPaymentButton_Internal.h; sourceTree = ""; }; - A7334F231BA38B0C0083C411 /* BraintreeDemoPayPalBillingAgreementViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoPayPalBillingAgreementViewController.h; sourceTree = ""; }; - A7334F241BA38B0C0083C411 /* BraintreeDemoPayPalBillingAgreementViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoPayPalBillingAgreementViewController.m; sourceTree = ""; }; - A734A98D1B8797FD00D2461B /* BTClientTokenSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTClientTokenSpec.m; sourceTree = ""; }; - A734A98F1B87989400D2461B /* BTTestClientTokenFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTTestClientTokenFactory.h; sourceTree = ""; }; - A734A9901B87989400D2461B /* BTTestClientTokenFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTTestClientTokenFactory.m; sourceTree = ""; }; - A734D95A1B4C4B1000FE0E1B /* BTPayPalRequestFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTPayPalRequestFactory.h; sourceTree = ""; }; - A734D95B1B4C4B1000FE0E1B /* BTPayPalRequestFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTPayPalRequestFactory.m; sourceTree = ""; }; - A734D95E1B4C4C0700FE0E1B /* BTPayPalDriver_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTPayPalDriver_Internal.h; sourceTree = ""; }; - A743CD201B449D8400757C9B /* BTAPIClient_Tests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BTAPIClient_Tests.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - A74BCF021BE14C7000DC1CAE /* BTThreeDSecureDriver_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTThreeDSecureDriver_Tests.swift; sourceTree = ""; }; - A74BF1C31C57F25F0049E149 /* BTAnalyticsService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTAnalyticsService.h; sourceTree = ""; }; - A74BF1C41C57F25F0049E149 /* BTAnalyticsService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTAnalyticsService.m; sourceTree = ""; }; - A74BF1C71C57FBED0049E149 /* BTAnalyticsService_Tests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTAnalyticsService_Tests.m; sourceTree = ""; }; - A75147E01B4217A00005BBBA /* BTCardClient_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTCardClient_Tests.swift; sourceTree = ""; }; - A751CAAA1CAC464C008603E5 /* BTCardRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTCardRequest.m; sourceTree = ""; }; - A751CAAE1CAC4667008603E5 /* BTCardRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTCardRequest.h; sourceTree = ""; }; - A75BAC671C1F691C00D66FB5 /* BTIntegrationTestsConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTIntegrationTestsConstants.h; sourceTree = ""; }; - A75BAC681C1F69A300D66FB5 /* IntegrationTests.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IntegrationTests.pch; sourceTree = ""; }; - A75DA3541921394200D997A2 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - A75DA3621921394200D997A2 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - A75DA3651921394200D997A2 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - A76B198B1B79707700452CFA /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; }; - A76B19A31B79708900452CFA /* Braintree-Demo.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = "Braintree-Demo.entitlements"; sourceTree = ""; }; - A76B19A61B79708900452CFA /* BraintreeDemoBaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BraintreeDemoBaseViewController.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; - A76B19A71B79708900452CFA /* BraintreeDemoBaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoBaseViewController.m; sourceTree = ""; }; - A76B19A81B79708900452CFA /* BraintreeDemoPaymentButtonBaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoPaymentButtonBaseViewController.h; sourceTree = ""; }; - A76B19A91B79708900452CFA /* BraintreeDemoPaymentButtonBaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BraintreeDemoPaymentButtonBaseViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - A76B19AC1B79708900452CFA /* BraintreeDemoAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoAppDelegate.h; sourceTree = ""; }; - A76B19AD1B79708900452CFA /* BraintreeDemoAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoAppDelegate.m; sourceTree = ""; }; - A76B19AE1B79708900452CFA /* BraintreeDemoDemoContainmentViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoDemoContainmentViewController.h; sourceTree = ""; }; - A76B19AF1B79708900452CFA /* BraintreeDemoDemoContainmentViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BraintreeDemoDemoContainmentViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - A76B19B01B79708900452CFA /* BraintreeDemoIntegrationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoIntegrationViewController.h; sourceTree = ""; }; - A76B19B11B79708900452CFA /* BraintreeDemoIntegrationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoIntegrationViewController.m; sourceTree = ""; }; - A76B19B21B79708900452CFA /* BraintreeDemoSlideNavigationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoSlideNavigationController.h; sourceTree = ""; }; - A76B19B31B79708900452CFA /* BraintreeDemoSlideNavigationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoSlideNavigationController.m; sourceTree = ""; }; - A76B19B51B79708900452CFA /* Launch Screen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; }; - A76B19B71B79708900452CFA /* BraintreeDemoSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoSettings.h; sourceTree = ""; }; - A76B19B81B79708900452CFA /* BraintreeDemoSettings.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoSettings.m; sourceTree = ""; }; - A76B19B91B79708900452CFA /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = ""; }; - A76B19C31B79708900452CFA /* BraintreeDemoApplePayPassKitViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoApplePayPassKitViewController.h; sourceTree = ""; }; - A76B19C41B79708900452CFA /* BraintreeDemoApplePayPassKitViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoApplePayPassKitViewController.m; sourceTree = ""; }; - A76B19CC1B79708900452CFA /* BraintreeDemoBTPaymentButtonViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoBTPaymentButtonViewController.h; sourceTree = ""; }; - A76B19CD1B79708900452CFA /* BraintreeDemoBTPaymentButtonViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoBTPaymentButtonViewController.m; sourceTree = ""; }; - A76B19CF1B79708900452CFA /* BraintreeDemoCustomMultiPayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoCustomMultiPayViewController.h; sourceTree = ""; }; - A76B19D01B79708900452CFA /* BraintreeDemoCustomMultiPayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoCustomMultiPayViewController.m; sourceTree = ""; }; - A76B19D21B79708900452CFA /* BraintreeDemoCardTokenizationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoCardTokenizationViewController.h; sourceTree = ""; }; - A76B19D31B79708900452CFA /* BraintreeDemoCardTokenizationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoCardTokenizationViewController.m; sourceTree = ""; }; - A76B19D41B79708900452CFA /* BraintreeDemoCardTokenizationViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BraintreeDemoCardTokenizationViewController.xib; sourceTree = ""; }; - A76B19D61B79708900452CFA /* BraintreeDemoThreeDSecureViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoThreeDSecureViewController.h; sourceTree = ""; }; - A76B19D71B79708900452CFA /* BraintreeDemoThreeDSecureViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BraintreeDemoThreeDSecureViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - A76B19DC1B79708900452CFA /* BraintreeDemoBTDataCollectorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoBTDataCollectorViewController.h; sourceTree = ""; }; - A76B19DD1B79708900452CFA /* BraintreeDemoBTDataCollectorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoBTDataCollectorViewController.m; sourceTree = ""; }; - A76B19DF1B79708900452CFA /* BraintreeDemoBTUIPayPalButtonViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoBTUIPayPalButtonViewController.h; sourceTree = ""; }; - A76B19E01B79708900452CFA /* BraintreeDemoBTUIPayPalButtonViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoBTUIPayPalButtonViewController.m; sourceTree = ""; }; - A76B19E21B79708900452CFA /* BraintreeDemoPayPalOneTimePaymentViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoPayPalOneTimePaymentViewController.h; sourceTree = ""; }; - A76B19E31B79708900452CFA /* BraintreeDemoPayPalOneTimePaymentViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoPayPalOneTimePaymentViewController.m; sourceTree = ""; }; - A76B19E51B79708900452CFA /* BraintreeDemoCustomPayPalButtonViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoCustomPayPalButtonViewController.h; sourceTree = ""; }; - A76B19E61B79708900452CFA /* BraintreeDemoCustomPayPalButtonViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoCustomPayPalButtonViewController.m; sourceTree = ""; }; - A76B19EB1B79708900452CFA /* BraintreeDemoPayPalScopesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoPayPalScopesViewController.h; sourceTree = ""; }; - A76B19EC1B79708900452CFA /* BraintreeDemoPayPalScopesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoPayPalScopesViewController.m; sourceTree = ""; }; - A76B19EE1B79708900452CFA /* BraintreeDemoCardHintViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoCardHintViewController.h; sourceTree = ""; }; - A76B19EF1B79708900452CFA /* BraintreeDemoCardHintViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoCardHintViewController.m; sourceTree = ""; }; - A76B19F01B79708900452CFA /* BraintreeDemoCreditCardEntryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoCreditCardEntryViewController.h; sourceTree = ""; }; - A76B19F11B79708900452CFA /* BraintreeDemoCreditCardEntryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoCreditCardEntryViewController.m; sourceTree = ""; }; - A76B19F21B79708900452CFA /* BraintreeDemoCreditCardEntryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BraintreeDemoCreditCardEntryViewController.xib; sourceTree = ""; }; - A76B19F31B79708900452CFA /* BraintreeDemoPaymentsUIComponentsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BraintreeDemoPaymentsUIComponentsViewController.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; - A76B19F41B79708900452CFA /* BraintreeDemoPaymentsUIComponentsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BraintreeDemoPaymentsUIComponentsViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - A76B19F51B79708900452CFA /* BraintreeDemoUIWidgetsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoUIWidgetsViewController.h; sourceTree = ""; }; - A76B19F61B79708900452CFA /* BraintreeDemoUIWidgetsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoUIWidgetsViewController.m; sourceTree = ""; }; - A76B19F71B79708900452CFA /* UI.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = UI.storyboard; sourceTree = ""; }; - A76B19F91B79708900452CFA /* BraintreeDemoBTUIVenmoButtonViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoBTUIVenmoButtonViewController.h; sourceTree = ""; }; - A76B19FA1B79708900452CFA /* BraintreeDemoBTUIVenmoButtonViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoBTUIVenmoButtonViewController.m; sourceTree = ""; }; - A76B19FC1B79708A00452CFA /* BraintreeDemoCustomVenmoButtonViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoCustomVenmoButtonViewController.h; sourceTree = ""; }; - A76B19FD1B79708A00452CFA /* BraintreeDemoCustomVenmoButtonViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoCustomVenmoButtonViewController.m; sourceTree = ""; }; - A76B19FE1B79708A00452CFA /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; - A76B1A001B79708A00452CFA /* BraintreeDemoMerchantAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoMerchantAPI.h; sourceTree = ""; }; - A76B1A011B79708A00452CFA /* BraintreeDemoMerchantAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoMerchantAPI.m; sourceTree = ""; }; - A76B1A021B79708A00452CFA /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - A76B1A041B79708A00452CFA /* Braintree-Demo-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Braintree-Demo-Info.plist"; sourceTree = ""; }; - A76B1A051B79708A00452CFA /* Braintree-Demo-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Braintree-Demo-Prefix.pch"; sourceTree = ""; }; - A76B1A071B79708A00452CFA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - A76B1A091B79708A00452CFA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Main.strings; sourceTree = ""; }; - A76B1A0A1B79708A00452CFA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - A76B991E1C3EF59000A584F6 /* libFLEX.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libFLEX.a; path = "Pods/../build/Debug-iphoneos/libFLEX.a"; sourceTree = ""; }; - A76B99201C3EF5D300A584F6 /* libPods-Demo.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libPods-Demo.a"; path = "Pods/../build/Debug-iphoneos/libPods-Demo.a"; sourceTree = ""; }; - A76B99211C3EF5D300A584F6 /* libPods-Test-Deps.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libPods-Test-Deps.a"; path = "Pods/../build/Debug-iphoneos/libPods-Test-Deps.a"; sourceTree = ""; }; - A76D7C001BB1CAB00000FA6A /* BraintreeDataCollector.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BraintreeDataCollector.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A76D7C1E1BB1CBD50000FA6A /* BraintreeDataCollector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDataCollector.h; sourceTree = ""; }; - A76D7C1F1BB1CBD50000FA6A /* BTDataCollector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTDataCollector.h; sourceTree = ""; }; - A76D7C221BB1CBDC0000FA6A /* BTDataCollector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTDataCollector.m; sourceTree = ""; }; - A76D7C271BB1D31A0000FA6A /* libDeviceCollectorLibrary.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libDeviceCollectorLibrary.a; sourceTree = ""; }; - A76D7C2C1BB1D35A0000FA6A /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - A76D7C331BB21CE90000FA6A /* BraintreeDataCollector_IntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDataCollector_IntegrationTests.m; sourceTree = ""; }; - A77344F71B7A93A10083EC8D /* BraintreeUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BraintreeUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A77344F91B7A93A10083EC8D /* BraintreeUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BraintreeUI.h; sourceTree = ""; }; - A77345071B7A93D00083EC8D /* BTUILocalizedString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUILocalizedString.h; sourceTree = ""; }; - A77345081B7A93D00083EC8D /* BTUILocalizedString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUILocalizedString.m; sourceTree = ""; }; - A773450A1B7A93D00083EC8D /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/UI.strings; sourceTree = ""; }; - A773450B1B7A93D00083EC8D /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/UI.strings; sourceTree = ""; }; - A773450C1B7A93D00083EC8D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/UI.strings; sourceTree = ""; }; - A773450D1B7A93D00083EC8D /* en_AU */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_AU; path = en_AU.lproj/UI.strings; sourceTree = ""; }; - A773450E1B7A93D00083EC8D /* en_CA */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_CA; path = en_CA.lproj/UI.strings; sourceTree = ""; }; - A773450F1B7A93D00083EC8D /* en_GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_GB; path = en_GB.lproj/UI.strings; sourceTree = ""; }; - A77345101B7A93D00083EC8D /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/UI.strings; sourceTree = ""; }; - A77345111B7A93D00083EC8D /* es_ES */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es_ES; path = es_ES.lproj/UI.strings; sourceTree = ""; }; - A77345121B7A93D00083EC8D /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UI.strings; sourceTree = ""; }; - A77345131B7A93D00083EC8D /* fr_CA */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr_CA; path = fr_CA.lproj/UI.strings; sourceTree = ""; }; - A77345141B7A93D00083EC8D /* fr_FR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr_FR; path = fr_FR.lproj/UI.strings; sourceTree = ""; }; - A77345151B7A93D00083EC8D /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/UI.strings; sourceTree = ""; }; - A77345161B7A93D00083EC8D /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/UI.strings; sourceTree = ""; }; - A77345171B7A93D00083EC8D /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/UI.strings; sourceTree = ""; }; - A77345181B7A93D00083EC8D /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/UI.strings; sourceTree = ""; }; - A77345191B7A93D00083EC8D /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/UI.strings; sourceTree = ""; }; - A773451A1B7A93D00083EC8D /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/UI.strings; sourceTree = ""; }; - A773451B1B7A93D00083EC8D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/UI.strings; sourceTree = ""; }; - A773451C1B7A93D00083EC8D /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/UI.strings; sourceTree = ""; }; - A773451D1B7A93D00083EC8D /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/UI.strings; sourceTree = ""; }; - A773451E1B7A93D00083EC8D /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/UI.strings"; sourceTree = ""; }; - A77345201B7A93D00083EC8D /* BTUICardExpirationValidator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICardExpirationValidator.h; sourceTree = ""; }; - A77345211B7A93D00083EC8D /* BTUICardExpirationValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICardExpirationValidator.m; sourceTree = ""; }; - A77345221B7A93D00083EC8D /* BTUICardExpiryFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICardExpiryFormat.h; sourceTree = ""; }; - A77345231B7A93D00083EC8D /* BTUICardExpiryFormat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICardExpiryFormat.m; sourceTree = ""; }; - A77345241B7A93D00083EC8D /* BTUICardType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICardType.h; sourceTree = ""; }; - A77345251B7A93D00083EC8D /* BTUICardType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICardType.m; sourceTree = ""; }; - A77345261B7A93D00083EC8D /* BTUIUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIUtil.h; sourceTree = ""; }; - A77345271B7A93D00083EC8D /* BTUIUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIUtil.m; sourceTree = ""; }; - A77345281B7A93D00083EC8D /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - A773452A1B7A93D00083EC8D /* BTUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUI.h; sourceTree = ""; }; - A773452B1B7A93D00083EC8D /* BTUI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUI.m; sourceTree = ""; }; - A773452C1B7A93D00083EC8D /* UIColor+BTUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIColor+BTUI.h"; sourceTree = ""; }; - A773452D1B7A93D00083EC8D /* UIColor+BTUI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIColor+BTUI.m"; sourceTree = ""; }; - A77345301B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTMockApplePayPaymentAuthorizationView.h; sourceTree = ""; }; - A77345311B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTMockApplePayPaymentAuthorizationView.m; sourceTree = ""; }; - A77345321B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTMockApplePayPaymentAuthorizationViewController.h; sourceTree = ""; }; - A77345331B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTMockApplePayPaymentAuthorizationViewController.m; sourceTree = ""; }; - A77345341B7A93D00083EC8D /* BTUIViewUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIViewUtil.h; sourceTree = ""; }; - A77345351B7A93D00083EC8D /* BTUIViewUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIViewUtil.m; sourceTree = ""; }; - A77345371B7A93D00083EC8D /* BTUIHorizontalButtonStackCollectionViewFlowLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIHorizontalButtonStackCollectionViewFlowLayout.h; sourceTree = ""; }; - A77345381B7A93D00083EC8D /* BTUIHorizontalButtonStackCollectionViewFlowLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIHorizontalButtonStackCollectionViewFlowLayout.m; sourceTree = ""; }; - A77345391B7A93D00083EC8D /* BTUIHorizontalButtonStackSeparatorLineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIHorizontalButtonStackSeparatorLineView.h; sourceTree = ""; }; - A773453A1B7A93D00083EC8D /* BTUIHorizontalButtonStackSeparatorLineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIHorizontalButtonStackSeparatorLineView.m; sourceTree = ""; }; - A773453B1B7A93D00083EC8D /* BTUIPaymentButtonCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIPaymentButtonCollectionViewCell.h; sourceTree = ""; }; - A773453C1B7A93D00083EC8D /* BTUIPaymentButtonCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIPaymentButtonCollectionViewCell.m; sourceTree = ""; }; - A773453E1B7A93D00083EC8D /* BTUIFloatLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIFloatLabel.h; sourceTree = ""; }; - A773453F1B7A93D00083EC8D /* BTUIFloatLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIFloatLabel.m; sourceTree = ""; }; - A77345401B7A93D00083EC8D /* BTUIFormField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIFormField.h; sourceTree = ""; }; - A77345411B7A93D00083EC8D /* BTUIFormField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIFormField.m; sourceTree = ""; }; - A77345421B7A93D00083EC8D /* BTUIFormField_Protected.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIFormField_Protected.h; sourceTree = ""; }; - A77345431B7A93D00083EC8D /* BTUIScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIScrollView.h; sourceTree = ""; }; - A77345441B7A93D00083EC8D /* BTUIScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIScrollView.m; sourceTree = ""; }; - A77345451B7A93D00083EC8D /* BTUITextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUITextField.h; sourceTree = ""; }; - A77345461B7A93D00083EC8D /* BTUITextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUITextField.m; sourceTree = ""; }; - A77345481B7A93D00083EC8D /* BTUIThemedView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIThemedView.m; sourceTree = ""; }; - A77345491B7A93D00083EC8D /* BTUIVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIVectorArtView.h; sourceTree = ""; }; - A773454A1B7A93D00083EC8D /* BTUIVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIVectorArtView.m; sourceTree = ""; }; - A773454C1B7A93D00083EC8D /* BTUICardCvvField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICardCvvField.h; sourceTree = ""; }; - A773454D1B7A93D00083EC8D /* BTUICardCvvField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICardCvvField.m; sourceTree = ""; }; - A773454E1B7A93D00083EC8D /* BTUICardExpiryField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICardExpiryField.h; sourceTree = ""; }; - A773454F1B7A93D00083EC8D /* BTUICardExpiryField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICardExpiryField.m; sourceTree = ""; }; - A77345501B7A93D00083EC8D /* BTUICardNumberField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICardNumberField.h; sourceTree = ""; }; - A77345511B7A93D00083EC8D /* BTUICardNumberField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICardNumberField.m; sourceTree = ""; }; - A77345521B7A93D00083EC8D /* BTUICardPostalCodeField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICardPostalCodeField.h; sourceTree = ""; }; - A77345531B7A93D00083EC8D /* BTUICardPostalCodeField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICardPostalCodeField.m; sourceTree = ""; }; - A77345551B7A93D00083EC8D /* BTUICardFormView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICardFormView.h; sourceTree = ""; }; - A77345561B7A93D00083EC8D /* BTUICardFormView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICardFormView.m; sourceTree = ""; }; - A77345581B7A93D00083EC8D /* BTUICardHint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICardHint.h; sourceTree = ""; }; - A77345591B7A93D00083EC8D /* BTUICardHint.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICardHint.m; sourceTree = ""; }; - A773455A1B7A93D00083EC8D /* BTUICoinbaseButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICoinbaseButton.h; sourceTree = ""; }; - A773455B1B7A93D00083EC8D /* BTUICoinbaseButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICoinbaseButton.m; sourceTree = ""; }; - A773455C1B7A93D00083EC8D /* BTUICTAControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICTAControl.h; sourceTree = ""; }; - A773455D1B7A93D00083EC8D /* BTUICTAControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICTAControl.m; sourceTree = ""; }; - A773455E1B7A93D00083EC8D /* BTUIPaymentMethodView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIPaymentMethodView.h; sourceTree = ""; }; - A773455F1B7A93D00083EC8D /* BTUIPaymentMethodView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIPaymentMethodView.m; sourceTree = ""; }; - A77345601B7A93D00083EC8D /* BTUIPayPalButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIPayPalButton.h; sourceTree = ""; }; - A77345611B7A93D00083EC8D /* BTUIPayPalButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIPayPalButton.m; sourceTree = ""; }; - A77345621B7A93D00083EC8D /* BTUISummaryView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUISummaryView.h; sourceTree = ""; }; - A77345631B7A93D00083EC8D /* BTUISummaryView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUISummaryView.m; sourceTree = ""; }; - A77345641B7A93D00083EC8D /* BTUIVenmoButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIVenmoButton.h; sourceTree = ""; }; - A77345651B7A93D00083EC8D /* BTUIVenmoButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIVenmoButton.m; sourceTree = ""; }; - A77345671B7A93D00083EC8D /* BTUIAmExVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIAmExVectorArtView.h; sourceTree = ""; }; - A77345681B7A93D00083EC8D /* BTUIAmExVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIAmExVectorArtView.m; sourceTree = ""; }; - A77345691B7A93D00083EC8D /* BTUICardVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICardVectorArtView.h; sourceTree = ""; }; - A773456A1B7A93D00083EC8D /* BTUICardVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICardVectorArtView.m; sourceTree = ""; }; - A773456B1B7A93D00083EC8D /* BTUICoinbaseMonogramCardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICoinbaseMonogramCardView.h; sourceTree = ""; }; - A773456C1B7A93D00083EC8D /* BTUICoinbaseMonogramCardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICoinbaseMonogramCardView.m; sourceTree = ""; }; - A773456D1B7A93D00083EC8D /* BTUICoinbaseWordmarkVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICoinbaseWordmarkVectorArtView.h; sourceTree = ""; }; - A773456E1B7A93D00083EC8D /* BTUICoinbaseWordmarkVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICoinbaseWordmarkVectorArtView.m; sourceTree = ""; }; - A773456F1B7A93D00083EC8D /* BTUICVVBackVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICVVBackVectorArtView.h; sourceTree = ""; }; - A77345701B7A93D00083EC8D /* BTUICVVBackVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICVVBackVectorArtView.m; sourceTree = ""; }; - A77345711B7A93D00083EC8D /* BTUICVVFrontVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUICVVFrontVectorArtView.h; sourceTree = ""; }; - A77345721B7A93D00083EC8D /* BTUICVVFrontVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUICVVFrontVectorArtView.m; sourceTree = ""; }; - A77345731B7A93D00083EC8D /* BTUIDinersClubVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIDinersClubVectorArtView.h; sourceTree = ""; }; - A77345741B7A93D00083EC8D /* BTUIDinersClubVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIDinersClubVectorArtView.m; sourceTree = ""; }; - A77345751B7A93D00083EC8D /* BTUIDiscoverVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIDiscoverVectorArtView.h; sourceTree = ""; }; - A77345761B7A93D00083EC8D /* BTUIDiscoverVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIDiscoverVectorArtView.m; sourceTree = ""; }; - A77345771B7A93D00083EC8D /* BTUIJCBVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIJCBVectorArtView.h; sourceTree = ""; }; - A77345781B7A93D00083EC8D /* BTUIJCBVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIJCBVectorArtView.m; sourceTree = ""; }; - A77345791B7A93D00083EC8D /* BTUIMaestroVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIMaestroVectorArtView.h; sourceTree = ""; }; - A773457A1B7A93D00083EC8D /* BTUIMaestroVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIMaestroVectorArtView.m; sourceTree = ""; }; - A773457B1B7A93D00083EC8D /* BTUIMasterCardVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIMasterCardVectorArtView.h; sourceTree = ""; }; - A773457C1B7A93D00083EC8D /* BTUIMasterCardVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIMasterCardVectorArtView.m; sourceTree = ""; }; - A773457D1B7A93D00083EC8D /* BTUIPayPalMonogramCardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIPayPalMonogramCardView.h; sourceTree = ""; }; - A773457E1B7A93D00083EC8D /* BTUIPayPalMonogramCardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIPayPalMonogramCardView.m; sourceTree = ""; }; - A773457F1B7A93D00083EC8D /* BTUIPayPalWordmarkCompactVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIPayPalWordmarkCompactVectorArtView.h; sourceTree = ""; }; - A77345801B7A93D00083EC8D /* BTUIPayPalWordmarkCompactVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIPayPalWordmarkCompactVectorArtView.m; sourceTree = ""; }; - A77345811B7A93D00083EC8D /* BTUIUnknownCardVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIUnknownCardVectorArtView.h; sourceTree = ""; }; - A77345821B7A93D00083EC8D /* BTUIUnknownCardVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIUnknownCardVectorArtView.m; sourceTree = ""; }; - A77345831B7A93D00083EC8D /* BTUIVenmoWordmarkVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIVenmoWordmarkVectorArtView.h; sourceTree = ""; }; - A77345841B7A93D00083EC8D /* BTUIVenmoWordmarkVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIVenmoWordmarkVectorArtView.m; sourceTree = ""; }; - A77345851B7A93D00083EC8D /* BTUIVisaVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIVisaVectorArtView.h; sourceTree = ""; }; - A77345861B7A93D00083EC8D /* BTUIVisaVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIVisaVectorArtView.m; sourceTree = ""; }; - A77345EB1B7A9E340083EC8D /* BTDropInContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTDropInContentView.h; sourceTree = ""; }; - A77345EC1B7A9E340083EC8D /* BTDropInContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTDropInContentView.m; sourceTree = ""; }; - A77345ED1B7A9E340083EC8D /* BTDropInErrorAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BTDropInErrorAlert.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; - A77345EE1B7A9E340083EC8D /* BTDropInErrorAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTDropInErrorAlert.m; sourceTree = ""; }; - A77345EF1B7A9E340083EC8D /* BTDropInErrorState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTDropInErrorState.h; sourceTree = ""; }; - A77345F01B7A9E340083EC8D /* BTDropInErrorState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTDropInErrorState.m; sourceTree = ""; }; - A77345F11B7A9E340083EC8D /* BTDropInSelectPaymentMethodViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTDropInSelectPaymentMethodViewController.h; sourceTree = ""; }; - A77345F21B7A9E340083EC8D /* BTDropInSelectPaymentMethodViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTDropInSelectPaymentMethodViewController.m; sourceTree = ""; }; - A77345F31B7A9E340083EC8D /* BTDropInUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTDropInUtil.h; sourceTree = ""; }; - A77345F41B7A9E340083EC8D /* BTDropInUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTDropInUtil.m; sourceTree = ""; }; - A77345F51B7A9E340083EC8D /* BTDropInViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTDropInViewController.h; sourceTree = ""; }; - A77345F61B7A9E340083EC8D /* BTDropInViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BTDropInViewController.m; sourceTree = ""; }; - A77345F71B7A9E340083EC8D /* BTPaymentButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTPaymentButton.h; sourceTree = ""; }; - A77345F81B7A9E340083EC8D /* BTPaymentButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTPaymentButton.m; sourceTree = ""; }; - A77345FA1B7A9E340083EC8D /* BTDropInLocalizedString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTDropInLocalizedString.h; sourceTree = ""; }; - A77345FB1B7A9E340083EC8D /* BTDropInLocalizedString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTDropInLocalizedString.m; sourceTree = ""; }; - A77345FD1B7A9E340083EC8D /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = "da.lproj/Drop-In.strings"; sourceTree = ""; }; - A77345FE1B7A9E340083EC8D /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = "de.lproj/Drop-In.strings"; sourceTree = ""; }; - A77345FF1B7A9E340083EC8D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = "en.lproj/Drop-In.strings"; sourceTree = ""; }; - A77346001B7A9E340083EC8D /* en_AU */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_AU; path = "en_AU.lproj/Drop-In.strings"; sourceTree = ""; }; - A77346011B7A9E340083EC8D /* en_CA */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_CA; path = "en_CA.lproj/Drop-In.strings"; sourceTree = ""; }; - A77346021B7A9E340083EC8D /* en_GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_GB; path = "en_GB.lproj/Drop-In.strings"; sourceTree = ""; }; - A77346031B7A9E340083EC8D /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = "es.lproj/Drop-In.strings"; sourceTree = ""; }; - A77346041B7A9E340083EC8D /* es_ES */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es_ES; path = "es_ES.lproj/Drop-In.strings"; sourceTree = ""; }; - A77346051B7A9E340083EC8D /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = "fr.lproj/Drop-In.strings"; sourceTree = ""; }; - A77346061B7A9E340083EC8D /* fr_CA */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr_CA; path = "fr_CA.lproj/Drop-In.strings"; sourceTree = ""; }; - A77346071B7A9E340083EC8D /* fr_FR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr_FR; path = "fr_FR.lproj/Drop-In.strings"; sourceTree = ""; }; - A77346081B7A9E340083EC8D /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = "he.lproj/Drop-In.strings"; sourceTree = ""; }; - A77346091B7A9E340083EC8D /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = "it.lproj/Drop-In.strings"; sourceTree = ""; }; - A773460A1B7A9E340083EC8D /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = "nb.lproj/Drop-In.strings"; sourceTree = ""; }; - A773460B1B7A9E340083EC8D /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = "nl.lproj/Drop-In.strings"; sourceTree = ""; }; - A773460C1B7A9E340083EC8D /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = "pl.lproj/Drop-In.strings"; sourceTree = ""; }; - A773460D1B7A9E340083EC8D /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = "pt.lproj/Drop-In.strings"; sourceTree = ""; }; - A773460E1B7A9E340083EC8D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = "ru.lproj/Drop-In.strings"; sourceTree = ""; }; - A773460F1B7A9E340083EC8D /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = "sv.lproj/Drop-In.strings"; sourceTree = ""; }; - A77346101B7A9E340083EC8D /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = "tr.lproj/Drop-In.strings"; sourceTree = ""; }; - A77346111B7A9E340083EC8D /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Drop-In.strings"; sourceTree = ""; }; - A77346231B7AA4D50083EC8D /* BTErrors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTErrors.m; sourceTree = ""; }; - A77346251B7AA4F10083EC8D /* BTErrors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTErrors.h; sourceTree = ""; }; - A773462E1B7BB1A60083EC8D /* BTTokenizationService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BTTokenizationService.h; sourceTree = ""; }; - A773462F1B7BB1A70083EC8D /* BTTokenizationService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTTokenizationService.m; sourceTree = ""; }; - A77426561CA20793003CACBA /* BTCardCapabilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTCardCapabilities.m; sourceTree = ""; }; - A77426591CA207AE003CACBA /* BTCardCapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTCardCapabilities.h; sourceTree = ""; }; - A775245F1CC99BA3002E4E62 /* BraintreeDemoUnionPayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeDemoUnionPayViewController.h; sourceTree = ""; }; - A77524601CC99BA3002E4E62 /* BraintreeDemoUnionPayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeDemoUnionPayViewController.m; sourceTree = ""; }; - A77AA29C1B618C7700217B73 /* BraintreeVenmo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BraintreeVenmo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A77AA2B51B61936A00217B73 /* BTVenmoDriver_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTVenmoDriver_Internal.h; sourceTree = ""; }; - A78422711C98920500D3EBFF /* BTUIUnionPayVectorArtView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTUIUnionPayVectorArtView.h; sourceTree = ""; }; - A78422721C98920500D3EBFF /* BTUIUnionPayVectorArtView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTUIUnionPayVectorArtView.m; sourceTree = ""; }; - A78496591BD962260081531A /* BTCheckoutRequest_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTCheckoutRequest_Tests.swift; sourceTree = ""; }; - A78BF95C1CC6F32100DED8AA /* BraintreeUnionPay_IntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BraintreeUnionPay_IntegrationTests.m; sourceTree = ""; }; - A79033971B45C968004C8234 /* BTCard_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTCard_Tests.swift; sourceTree = ""; }; - A790339B1B45E16E004C8234 /* BTCard_Internal_Tests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTCard_Internal_Tests.m; sourceTree = ""; }; - A79033A51B4AF360004C8234 /* BTJSON.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BTJSON.h; sourceTree = ""; }; - A79033A61B4AF360004C8234 /* BTJSON.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTJSON.m; sourceTree = ""; }; - A79AF9B31B56D67D007B1DF1 /* BTSpecDependencies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTSpecDependencies.h; sourceTree = ""; }; - A79AF9F21B56DB54007B1DF1 /* BTClientMetadataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTClientMetadataSpec.m; sourceTree = ""; }; - A79AFA3B1B56F822007B1DF1 /* BTThreeDSecureErrors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTThreeDSecureErrors.h; sourceTree = ""; }; - A79AFA3D1B56F822007B1DF1 /* BTThreeDSecureResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTThreeDSecureResponse.h; sourceTree = ""; }; - A79AFA401B56F822007B1DF1 /* BTThreeDSecureAuthenticationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTThreeDSecureAuthenticationViewController.h; sourceTree = ""; }; - A79AFA411B56F822007B1DF1 /* BTThreeDSecureAuthenticationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTThreeDSecureAuthenticationViewController.m; sourceTree = ""; }; - A79AFA421B56F822007B1DF1 /* BTThreeDSecureErrors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTThreeDSecureErrors.m; sourceTree = ""; }; - A79AFA441B56F822007B1DF1 /* BTThreeDSecureResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTThreeDSecureResponse.m; sourceTree = ""; }; - A79AFA451B56F822007B1DF1 /* BTWebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTWebViewController.h; sourceTree = ""; }; - A79AFA461B56F822007B1DF1 /* BTWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTWebViewController.m; sourceTree = ""; }; - A79AFA481B56F822007B1DF1 /* BTThreeDSecureLocalizedString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTThreeDSecureLocalizedString.h; sourceTree = ""; }; - A79AFA491B56F822007B1DF1 /* BTThreeDSecureLocalizedString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTThreeDSecureLocalizedString.m; sourceTree = ""; }; - A79AFA4B1B56F822007B1DF1 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = "da.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA4C1B56F822007B1DF1 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = "de.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA4D1B56F822007B1DF1 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = "en.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA4E1B56F822007B1DF1 /* en_AU */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_AU; path = "en_AU.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA4F1B56F822007B1DF1 /* en_CA */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_CA; path = "en_CA.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA501B56F822007B1DF1 /* en_GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en_GB; path = "en_GB.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA511B56F822007B1DF1 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = "es.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA521B56F822007B1DF1 /* es_ES */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es_ES; path = "es_ES.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA531B56F822007B1DF1 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = "fr.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA541B56F822007B1DF1 /* fr_CA */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr_CA; path = "fr_CA.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA551B56F822007B1DF1 /* fr_FR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr_FR; path = "fr_FR.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA561B56F822007B1DF1 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = "he.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA571B56F822007B1DF1 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = "it.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA581B56F822007B1DF1 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = "nb.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA591B56F822007B1DF1 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = "nl.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA5A1B56F822007B1DF1 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = "pl.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA5B1B56F822007B1DF1 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = "pt.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA5C1B56F823007B1DF1 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = "ru.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA5D1B56F823007B1DF1 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = "sv.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA5E1B56F823007B1DF1 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = "tr.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA5F1B56F823007B1DF1 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Three-D-Secure.strings"; sourceTree = ""; }; - A79AFA761B56F8C3007B1DF1 /* BTThreeDSecureCardNonce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTThreeDSecureCardNonce.h; sourceTree = ""; }; - A79AFA771B56F8C3007B1DF1 /* BTThreeDSecureCardNonce.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTThreeDSecureCardNonce.m; sourceTree = ""; }; - A79AFA7A1B56FBD1007B1DF1 /* BTThreeDSecureLookupResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTThreeDSecureLookupResult.h; sourceTree = ""; }; - A79AFA7B1B56FBD1007B1DF1 /* BTThreeDSecureLookupResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTThreeDSecureLookupResult.m; sourceTree = ""; }; - A79AFA7E1B56FEE4007B1DF1 /* BTThreeDSecureDriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTThreeDSecureDriver.h; sourceTree = ""; }; - A79AFA7F1B56FEE4007B1DF1 /* BTThreeDSecureDriver.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTThreeDSecureDriver.m; sourceTree = ""; }; - A79AFA841B5721A2007B1DF1 /* BTHTTPErrors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTHTTPErrors.h; sourceTree = ""; }; - A79AFA861B5721F6007B1DF1 /* BTHTTPErrors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTHTTPErrors.m; sourceTree = ""; }; - A79BB5BE1CE501D500CC6F0E /* PPDataCollector_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPDataCollector_Internal.h; sourceTree = ""; }; - A79C9C6F1BE17BBF007EAF73 /* BTThreeDSecureDriver_Internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BTThreeDSecureDriver_Internal.h; sourceTree = ""; }; - A7A094F51B8276E500D732CC /* BTCardNonce_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTCardNonce_Tests.swift; sourceTree = ""; }; - A7A6DD061B4308EB008857E1 /* BTPayPalDriver_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTPayPalDriver_Tests.swift; sourceTree = ""; }; - A7A6DD131B4312DC008857E1 /* BTLogger_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTLogger_Internal.h; sourceTree = ""; }; - A7A6DD141B4312DC008857E1 /* BTLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTLogger.h; sourceTree = ""; }; - A7A6DD151B4312DC008857E1 /* BTLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTLogger.m; sourceTree = ""; }; - A7A6DD241B43144D008857E1 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; - A7A6DD261B431453008857E1 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; - A7A6DD281B43145D008857E1 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; - A7A6DD2C1B431B75008857E1 /* BTAPIClient_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTAPIClient_Internal.h; sourceTree = ""; }; - A7A6DD3E1B445550008857E1 /* BTAnalyticsMetadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTAnalyticsMetadata.h; sourceTree = ""; }; - A7A6DD3F1B445550008857E1 /* BTAnalyticsMetadata.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTAnalyticsMetadata.m; sourceTree = ""; }; - A7A6DD401B445550008857E1 /* BTHTTP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BTHTTP.h; sourceTree = ""; }; - A7A6DD411B445550008857E1 /* BTHTTP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTHTTP.m; sourceTree = ""; }; - A7A6DD4A1B445A29008857E1 /* BTAPIPinnedCertificates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTAPIPinnedCertificates.h; sourceTree = ""; }; - A7A6DD4B1B445A29008857E1 /* BTAPIPinnedCertificates.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTAPIPinnedCertificates.m; sourceTree = ""; }; - A7A6DD4C1B445A29008857E1 /* BTKeychain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTKeychain.h; sourceTree = ""; }; - A7A6DD4D1B445A29008857E1 /* BTKeychain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTKeychain.m; sourceTree = ""; }; - A7A6DD511B445A29008857E1 /* BTURLUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTURLUtils.m; sourceTree = ""; }; - A7ABD6531B702FD800A1223C /* IntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = IntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - A7ABD6571B702FD800A1223C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A7ABD65E1B702FF000A1223C /* BTAPIClient_IntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BTAPIClient_IntegrationTests.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - A7ABD6611B702FF000A1223C /* BTHTTPSSLPinning_IntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTHTTPSSLPinning_IntegrationTests.m; sourceTree = ""; }; - A7ABD6631B702FF000A1223C /* good_root_cert.der */ = {isa = PBXFileReference; lastKnownFileType = file; path = good_root_cert.der; sourceTree = ""; }; - A7ABD6651B702FF000A1223C /* evil_root_cert.der */ = {isa = PBXFileReference; lastKnownFileType = file; path = evil_root_cert.der; sourceTree = ""; }; - A7ABD6661B702FF000A1223C /* evil_root_cert.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = evil_root_cert.pem; sourceTree = ""; }; - A7ABD6671B702FF000A1223C /* evil_root_key.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = evil_root_key.pem; sourceTree = ""; }; - A7ABD6681B702FF000A1223C /* evil_site_cert.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = evil_site_cert.pem; sourceTree = ""; }; - A7ABD6691B702FF000A1223C /* evil_site_key.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = evil_site_key.pem; sourceTree = ""; }; - A7ABD66A1B702FF000A1223C /* evil_site_request.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = evil_site_request.pem; sourceTree = ""; }; - A7ABD66B1B702FF000A1223C /* good_root_cert.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = good_root_cert.pem; sourceTree = ""; }; - A7ABD66C1B702FF000A1223C /* good_root_key.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = good_root_key.pem; sourceTree = ""; }; - A7ABD66D1B702FF000A1223C /* good_site_cert.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = good_site_cert.pem; sourceTree = ""; }; - A7ABD66E1B702FF000A1223C /* good_site_key.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = good_site_key.pem; sourceTree = ""; }; - A7ABD66F1B702FF000A1223C /* good_site_request.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = good_site_request.pem; sourceTree = ""; }; - A7ABD6701B702FF000A1223C /* https_server.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; path = https_server.rb; sourceTree = ""; }; - A7ABD6711B702FF000A1223C /* make_certs.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = make_certs.sh; sourceTree = ""; }; - A7ABD6731B702FF000A1223C /* braintree-api-integration-specs-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "braintree-api-integration-specs-Info.plist"; sourceTree = ""; }; - A7ABD6741B702FF000A1223C /* braintree-api-integration-specs-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "braintree-api-integration-specs-Prefix.pch"; sourceTree = ""; }; - A7ABD6761B702FF000A1223C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - A7ABD6771B702FF000A1223C /* BraintreeCard_IntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BraintreeCard_IntegrationTests.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - A7AF0F5F1C20E80A00B3ADC6 /* BTThreeDSecureLookupResult_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTThreeDSecureLookupResult_Tests.swift; sourceTree = ""; }; - A7AF0F611C222F9400B3ADC6 /* BTPaymentButton_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTPaymentButton_Tests.swift; sourceTree = ""; }; - A7B035B519D6273400750F8A /* PassKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PassKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/System/Library/Frameworks/PassKit.framework; sourceTree = DEVELOPER_DIR; }; - A7B1C1411B66B3D000ED063C /* BTConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BTConfiguration.h; sourceTree = ""; }; - A7B1C1421B66B3D000ED063C /* BTConfiguration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTConfiguration.m; sourceTree = ""; }; - A7B1C1451B66D94600ED063C /* BTConfiguration+Venmo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "BTConfiguration+Venmo.h"; sourceTree = ""; }; - A7B1C1461B66D94600ED063C /* BTConfiguration+Venmo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "BTConfiguration+Venmo.m"; sourceTree = ""; }; - A7B1C1491B66E11C00ED063C /* BTConfiguration+PayPal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "BTConfiguration+PayPal.h"; sourceTree = ""; }; - A7B1C14A1B66E11C00ED063C /* BTConfiguration+PayPal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "BTConfiguration+PayPal.m"; sourceTree = ""; }; - A7B1C14D1B66E46900ED063C /* BTConfiguration+ApplePay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "BTConfiguration+ApplePay.h"; sourceTree = ""; }; - A7B1C14E1B66E46900ED063C /* BTConfiguration+ApplePay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "BTConfiguration+ApplePay.m"; sourceTree = ""; }; - A7B1C1511B66F79900ED063C /* BTAppSwitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BTAppSwitch.h; sourceTree = ""; }; - A7B1C1521B66F79900ED063C /* BTAppSwitch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTAppSwitch.m; sourceTree = ""; }; - A7B462441C3C911200048423 /* PPOTAppSwitchResponseTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTAppSwitchResponseTest.m; sourceTree = ""; }; - A7B462451C3C911200048423 /* PPOTAppSwitchUtilTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTAppSwitchUtilTest.m; sourceTree = ""; }; - A7B462461C3C911200048423 /* PPOTConfigurationTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTConfigurationTest.m; sourceTree = ""; }; - A7B462471C3C911200048423 /* PPOTEncryptionTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTEncryptionTest.m; sourceTree = ""; }; - A7B462481C3C911200048423 /* PPOTErrorTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTErrorTest.m; sourceTree = ""; }; - A7B462491C3C911200048423 /* PPOTTimeTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTTimeTest.m; sourceTree = ""; }; - A7B462621C3C945600048423 /* libPods-Demo.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libPods-Demo.a"; path = "Pods/../build/Debug-iphoneos/libPods-Demo.a"; sourceTree = ""; }; - A7B463051C3D9C2200048423 /* PayPalDataCollector.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PayPalDataCollector.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A7B463201C3DA73300048423 /* PPOTDevice.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTDevice.m; sourceTree = ""; }; - A7B463221C3DA73300048423 /* PPOTEncryptionHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTEncryptionHelper.m; sourceTree = ""; }; - A7B463241C3DA73300048423 /* PPOTJSONHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTJSONHelper.m; sourceTree = ""; }; - A7B463261C3DA73300048423 /* PPOTMacros.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTMacros.m; sourceTree = ""; }; - A7B463281C3DA73300048423 /* PPOTPinnedCertificates.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTPinnedCertificates.m; sourceTree = ""; }; - A7B4632A1C3DA73300048423 /* PPOTSimpleKeychain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTSimpleKeychain.m; sourceTree = ""; }; - A7B4632C1C3DA73300048423 /* PPOTString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTString.m; sourceTree = ""; }; - A7B4632E1C3DA73300048423 /* PPOTTime.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTTime.m; sourceTree = ""; }; - A7B463301C3DA73300048423 /* PPOTURLSession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPOTURLSession.m; sourceTree = ""; }; - A7B4635F1C3DBEFE00048423 /* PPDataCollector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PPDataCollector.m; sourceTree = ""; }; - A7B463631C3DBF5E00048423 /* PayPalDataCollector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PayPalDataCollector.h; sourceTree = ""; }; - A7B463641C3DBF5E00048423 /* PPDataCollector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PPDataCollector.h; sourceTree = ""; }; - A7B4638A1C3DCEAD00048423 /* PayPalOneTouch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PayPalOneTouch.h; path = BraintreePayPal/PayPalOneTouch/Public/PayPalOneTouch.h; sourceTree = ""; }; - A7B4AD561B4EFC76002FB23E /* MockAPIClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockAPIClient.swift; sourceTree = ""; }; - A7B7989B1C233C57001327FA /* BTConfiguration_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTConfiguration_Tests.swift; sourceTree = ""; }; - A7B7989F1C238FC0001327FA /* BTTokenizationService_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTTokenizationService_Tests.swift; sourceTree = ""; }; - A7B861BE1C24B19300A2422E /* BTVersion_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTVersion_Tests.swift; sourceTree = ""; }; - A7BC50BA1C29E4CD0024C870 /* BTLogger_Internal_Tests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTLogger_Internal_Tests.m; sourceTree = ""; }; - A7BC50BE1C29F6600024C870 /* BTDropInErrorState_Tests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTDropInErrorState_Tests.m; sourceTree = ""; }; - A7C823071B4DA9D7009D45D6 /* BTHTTPSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BTHTTPSpec.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - A7C8230C1B4DAAB2009D45D6 /* BTSpecHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTSpecHelper.h; sourceTree = ""; }; - A7C8230D1B4DAAB2009D45D6 /* BTSpecHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTSpecHelper.m; sourceTree = ""; }; - A7C889741B5EF5DE007A0E9C /* BraintreeApplePay.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BraintreeApplePay.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A7C8897C1B5EF62C007A0E9C /* BTApplePayClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTApplePayClient.h; sourceTree = ""; }; - A7C8897D1B5EF62C007A0E9C /* BTApplePayClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTApplePayClient.m; sourceTree = ""; }; - A7C8897E1B5EF62C007A0E9C /* BTApplePayCardNonce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTApplePayCardNonce.h; sourceTree = ""; }; - A7C8897F1B5EF62C007A0E9C /* BTApplePayCardNonce.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTApplePayCardNonce.m; sourceTree = ""; }; - A7C889861B5EF65C007A0E9C /* BraintreeApplePay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BraintreeApplePay.h; sourceTree = ""; }; - A7C889891B5EF737007A0E9C /* PassKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PassKit.framework; path = System/Library/Frameworks/PassKit.framework; sourceTree = SDKROOT; }; - A7C889901B5F043B007A0E9C /* BraintreeCard.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BraintreeCard.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A7C889921B5F043B007A0E9C /* BraintreeCard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BraintreeCard.h; sourceTree = ""; }; - A7C8899C1B5F0471007A0E9C /* BTCardClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTCardClient.h; sourceTree = ""; }; - A7C8899D1B5F0471007A0E9C /* BTCardClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTCardClient.m; sourceTree = ""; }; - A7C8899E1B5F0471007A0E9C /* BTCard_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTCard_Internal.h; sourceTree = ""; }; - A7C8899F1B5F0471007A0E9C /* BTCard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTCard.h; sourceTree = ""; }; - A7C889A01B5F0471007A0E9C /* BTCard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTCard.m; sourceTree = ""; }; - A7C889A11B5F0471007A0E9C /* BTCardNonce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTCardNonce.h; sourceTree = ""; }; - A7C889A21B5F0471007A0E9C /* BTCardNonce.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTCardNonce.m; sourceTree = ""; }; - A7C889D71B5F0ACB007A0E9C /* BTCardNonce_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTCardNonce_Internal.h; sourceTree = ""; }; - A7C889F11B5F0B30007A0E9C /* BraintreeVenmo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BraintreeVenmo.h; sourceTree = ""; }; - A7C889F81B5F0B6A007A0E9C /* Braintree-Version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Braintree-Version.h"; sourceTree = ""; }; - A7C889FA1B5F0C00007A0E9C /* BTVenmoDriver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTVenmoDriver.h; sourceTree = ""; }; - A7C889FB1B5F0C00007A0E9C /* BTVenmoDriver.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTVenmoDriver.m; sourceTree = ""; }; - A7CB42D21B73E629002CCFDD /* BraintreePayPal_IntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BraintreePayPal_IntegrationTests.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - A7CCE2AD1B67F26C006EA661 /* BTAppSwitch_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTAppSwitch_Tests.swift; sourceTree = ""; }; - A7D4630B1B4B16C100A09C46 /* BTHTTPTestProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTHTTPTestProtocol.h; sourceTree = ""; }; - A7D4630C1B4B16C100A09C46 /* BTHTTPTestProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTHTTPTestProtocol.m; sourceTree = ""; }; - A7D64ABB1B4C93B6005168EF /* BTApplePay_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTApplePay_Tests.swift; sourceTree = ""; }; - A7D6746C1B84073300ED6C00 /* MockDelegates.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockDelegates.swift; sourceTree = ""; }; - A7D674711B84FDB400ED6C00 /* BTClientToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BTClientToken.h; sourceTree = ""; }; - A7D674721B84FDB400ED6C00 /* BTClientToken.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTClientToken.m; sourceTree = ""; }; - A7E6E8E11B420D0C004CFA95 /* UnitTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UnitTests-Bridging-Header.h"; sourceTree = ""; }; - A7E93E571B601EE900957223 /* BTURLUtils_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BTURLUtils_Tests.swift; sourceTree = ""; }; - A7ECA5E41BEBD34100437A4F /* BTDropInViewController_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTDropInViewController_Internal.h; sourceTree = ""; }; - A7F179FD1BE98E0E00E91646 /* BTPaymentRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTPaymentRequest.m; sourceTree = ""; }; - A7F179FF1BE98E1E00E91646 /* BTPaymentRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTPaymentRequest.h; sourceTree = ""; }; - A7F96D061B6043B7005A4A09 /* BTVenmoAccountNonce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTVenmoAccountNonce.h; sourceTree = ""; }; - A7F96D071B6043B7005A4A09 /* BTVenmoAccountNonce.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTVenmoAccountNonce.m; sourceTree = ""; }; - A7F96D0A1B604C1C005A4A09 /* BTVenmoAppSwitchRequestURL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BTVenmoAppSwitchRequestURL.h; sourceTree = ""; }; - A7F96D0B1B604C1C005A4A09 /* BTVenmoAppSwitchRequestURL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTVenmoAppSwitchRequestURL.m; sourceTree = ""; }; - A7F96D0C1B604C1C005A4A09 /* BTVenmoAppSwitchReturnURL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BTVenmoAppSwitchReturnURL.h; sourceTree = ""; }; - A7F96D0D1B604C1C005A4A09 /* BTVenmoAppSwitchReturnURL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTVenmoAppSwitchReturnURL.m; sourceTree = ""; }; - B61F677E1CE4C20F0051A3BD /* BTConfiguration+DataCollector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "BTConfiguration+DataCollector.h"; sourceTree = ""; }; - B61F677F1CE4C20F0051A3BD /* BTConfiguration+DataCollector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "BTConfiguration+DataCollector.m"; path = "Public/BTConfiguration+DataCollector.m"; sourceTree = ""; }; - B67F98391D762177007C1903 /* BTMacroTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BTMacroTests.m; sourceTree = ""; }; - D242087B7E38C2B838C8866E /* libPods-Tests-IntegrationTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Tests-IntegrationTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - D5477E9CCBB2B1B37661129D /* Pods-Demo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Demo.release.xcconfig"; path = "Pods/Target Support Files/Pods-Demo/Pods-Demo.release.xcconfig"; sourceTree = ""; }; - D9AFC14FFCF2029AE39FA3BA /* Pods-Tests-IntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-IntegrationTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-IntegrationTests/Pods-Tests-IntegrationTests.debug.xcconfig"; sourceTree = ""; }; - EEF1DE881E858A31001BB924 /* BTEnums.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BTEnums.h; sourceTree = ""; }; - F856ADC418A9254523A85526 /* Pods-Tests-UnitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Tests-UnitTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Tests-UnitTests/Pods-Tests-UnitTests.debug.xcconfig"; sourceTree = ""; }; - FD5B458BFE02563982017D5E /* libPods-Tests-UnitTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Tests-UnitTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 03F8B2631C23976000FD184B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 16CD2E991B4077FB00E68495 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 03CFEF3E1CD3124F006D2DA5 /* PayPalUtils.framework in Frameworks */, - 4169A8F11CAB10680051DDAF /* BraintreeUnionPay.framework in Frameworks */, - A5D3A5A41C20BEE1003A25A1 /* PayPalOneTouch.framework in Frameworks */, - 841CDCC21BCDBC1500A06B21 /* BraintreeDataCollector.framework in Frameworks */, - 411D1C001BB0B528000E7D8C /* Braintree3DSecure.framework in Frameworks */, - 411D1C011BB0B528000E7D8C /* BraintreeApplePay.framework in Frameworks */, - 411D1C021BB0B528000E7D8C /* BraintreeCard.framework in Frameworks */, - 411D1C031BB0B528000E7D8C /* BraintreeCore.framework in Frameworks */, - 411D1C041BB0B528000E7D8C /* BraintreePayPal.framework in Frameworks */, - 411D1C051BB0B528000E7D8C /* BraintreeUI.framework in Frameworks */, - 411D1C061BB0B528000E7D8C /* BraintreeVenmo.framework in Frameworks */, - 3E8581A0B6B678AFED359FA5 /* libPods-Tests-UnitTests.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D941D341B59C76A0016EFB4 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D941D5B1B5D5F170016EFB4 /* BraintreeCore.framework in Frameworks */, - A50C3BCF1C1B453500612D90 /* PayPalOneTouch.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D941D841B5D9E8C0016EFB4 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A7C88A2F1B5F10EF007A0E9C /* BraintreeCard.framework in Frameworks */, - 2D941DA61B5D9F7F0016EFB4 /* BraintreeCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2DE12F051B59BE0100EA1BCF /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4164B99D1C9B658E006AE861 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4164B9B11C9B68CC006AE861 /* BraintreeCard.framework in Frameworks */, - 4164B99E1C9B658E006AE861 /* BraintreeCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 417404461BB084D3008A5DEA /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A7B4625C1C3C93EB00048423 /* libPayPalOneTouch-StaticLibrary.a in Frameworks */, - A7B4625D1C3C93EB00048423 /* libPayPalDataCollector-StaticLibrary.a in Frameworks */, - A76D7C3B1BB31A4B0000FA6A /* libDeviceCollectorLibrary.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7EDE47581CD2C3D00005E22B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7EDE47591CD2C3D00005E22B /* SystemConfiguration.framework in Frameworks */, - 7EDE475A1CD2C3D00005E22B /* UIKit.framework in Frameworks */, - 7EDE475B1CD2C3D00005E22B /* CoreLocation.framework in Frameworks */, - 7EDE475C1CD2C3D00005E22B /* MessageUI.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A50C3AD21C19F00600612D90 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A50C3B111C19F6C200612D90 /* libPayPalDataCollector-StaticLibrary.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A50C3B021C19F55C00612D90 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A76B991A1C3EF48E00A584F6 /* libPPRiskComponent.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A50C3B6B1C1A29C500612D90 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7EDE47721CD2C51C0005E22B /* PayPalUtils.framework in Frameworks */, - 41D54D301C7F97750051C96B /* BraintreeCore.framework in Frameworks */, - A7B463071C3D9F4D00048423 /* PayPalDataCollector.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A76B19881B79707700452CFA /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 03EF62061DB4A90C004F4090 /* BraintreeCore.framework in Frameworks */, - 03EF62321DB4A90D004F4090 /* BraintreeUnionPay.framework in Frameworks */, - 03EF62121DB4A90C004F4090 /* BraintreeApplePay.framework in Frameworks */, - 03EF621A1DB4A90C004F4090 /* BraintreeVenmo.framework in Frameworks */, - 03EF621E1DB4A90C004F4090 /* BraintreeUI.framework in Frameworks */, - 03EF620E1DB4A90C004F4090 /* Braintree3DSecure.framework in Frameworks */, - 03EF622E1DB4A90D004F4090 /* PayPalUtils.framework in Frameworks */, - 03EF62161DB4A90C004F4090 /* BraintreeCard.framework in Frameworks */, - 03EF62221DB4A90C004F4090 /* BraintreeDataCollector.framework in Frameworks */, - 03EF622A1DB4A90D004F4090 /* PayPalDataCollector.framework in Frameworks */, - 03EF620A1DB4A90C004F4090 /* BraintreePayPal.framework in Frameworks */, - 03EF62261DB4A90C004F4090 /* PayPalOneTouch.framework in Frameworks */, - 68178D54CF930DF9D5BC76FB /* libPods-Demo.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A76D7BFC1BB1CAB00000FA6A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 41935DE61D528B25008D48FB /* BraintreeCore.framework in Frameworks */, - A76D7C2A1BB1D31A0000FA6A /* libDeviceCollectorLibrary.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A77344F31B7A93A10083EC8D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A77120521CD95DD50004FFD3 /* BraintreeCard.framework in Frameworks */, - 412FE05B1B97B03B008AAABE /* BraintreeCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A77AA2981B618C7700217B73 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A77AA2B31B618D6200217B73 /* BraintreeCard.framework in Frameworks */, - A77AA2B41B618D6200217B73 /* BraintreeCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7ABD6501B702FD800A1223C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4169A8F81CAB11300051DDAF /* BraintreeUI.framework in Frameworks */, - 4169A8F91CAB11300051DDAF /* BraintreeUnionPay.framework in Frameworks */, - 4169A8FA1CAB11300051DDAF /* PayPalOneTouch.framework in Frameworks */, - A76D7C391BB318CF0000FA6A /* BraintreeDataCollector.framework in Frameworks */, - 411D1C071BB0B56E000E7D8C /* Braintree3DSecure.framework in Frameworks */, - 411D1C081BB0B56E000E7D8C /* BraintreeApplePay.framework in Frameworks */, - 411D1C091BB0B56E000E7D8C /* BraintreeCard.framework in Frameworks */, - 411D1C0A1BB0B56E000E7D8C /* BraintreeCore.framework in Frameworks */, - 411D1C0B1BB0B56E000E7D8C /* BraintreePayPal.framework in Frameworks */, - 411D1C0D1BB0B56E000E7D8C /* BraintreeVenmo.framework in Frameworks */, - FD51728B52E751D1E5DC85F7 /* libPods-Tests-IntegrationTests.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7B462ED1C3D9C2200048423 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7EDE47731CD2C5270005E22B /* PayPalUtils.framework in Frameworks */, - A7B462EE1C3D9C2200048423 /* SystemConfiguration.framework in Frameworks */, - A7B462EF1C3D9C2200048423 /* UIKit.framework in Frameworks */, - A7B462F01C3D9C2200048423 /* CoreLocation.framework in Frameworks */, - A7B462F11C3D9C2200048423 /* MessageUI.framework in Frameworks */, - A7B462F21C3D9C2200048423 /* libPPRiskComponent.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7C889701B5EF5DE007A0E9C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A7C8898A1B5EF737007A0E9C /* PassKit.framework in Frameworks */, - A7C889881B5EF685007A0E9C /* BraintreeCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7C8898C1B5F043B007A0E9C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A7C889AB1B5F04E9007A0E9C /* BraintreeCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 031B94BA1C34822800F136C8 /* Braintree-UI-Specs */ = { - isa = PBXGroup; - children = ( - 031B94BB1C34822800F136C8 /* BTUI_UIColor.m */, - 031B94BC1C34822800F136C8 /* BTUICardExpirationValidatorSpec.m */, - 031B94BD1C34822800F136C8 /* BTUICardExpiryFormatterSpec.m */, - 031B94BF1C34822800F136C8 /* BTUICardTypeSpec.m */, - 031B94C01C34822800F136C8 /* BTUISpec.m */, - 031B94C21C34822800F136C8 /* EXPMatchers+haveKerning.h */, - 031B94C31C34822800F136C8 /* EXPMatchers+haveKerning.m */, - ); - path = "Braintree-UI-Specs"; - sourceTree = ""; - }; - 0384E9501C23C111001A3380 /* Helpers */ = { - isa = PBXGroup; - children = ( - 0384E94E1C23C108001A3380 /* BTUITest.swift */, - ); - name = Helpers; - sourceTree = ""; - }; - 03B368B01CAD95D300CDFC9C /* Drop In Old */ = { - isa = PBXGroup; - children = ( - 03B368B11CAD95D300CDFC9C /* BraintreeDemoDropInLegacyViewController.h */, - 03B368B21CAD95D300CDFC9C /* BraintreeDemoDropInLegacyViewController.m */, - ); - path = "Drop In Old"; - sourceTree = ""; - }; - 03CFEF251CD30B15006D2DA5 /* Public */ = { - isa = PBXGroup; - children = ( - 03CFEF261CD30B15006D2DA5 /* PPOTDevice.h */, - 03CFEF271CD30B15006D2DA5 /* PPOTEncryptionHelper.h */, - 03CFEF281CD30B15006D2DA5 /* PPOTJSONHelper.h */, - 03CFEF291CD30B15006D2DA5 /* PPOTMacros.h */, - 03CFEF2A1CD30B15006D2DA5 /* PPOTPinnedCertificates.h */, - 03CFEF2B1CD30B15006D2DA5 /* PPOTSimpleKeychain.h */, - 03CFEF2C1CD30B15006D2DA5 /* PPOTString.h */, - 03CFEF2D1CD30B15006D2DA5 /* PPOTTime.h */, - 03CFEF2E1CD30B15006D2DA5 /* PPOTURLSession.h */, - 03CFEF2F1CD30B15006D2DA5 /* PPOTVersion.h */, - 03CFEF3A1CD30C28006D2DA5 /* PayPalUtils.h */, - ); - path = Public; - sourceTree = ""; - }; - 03F54E0F1C499E1200F11033 /* PayPal - Force Future Payment */ = { - isa = PBXGroup; - children = ( - 03F54E101C499E1200F11033 /* BraintreeDemoPayPalForceFuturePaymentViewController.h */, - 03F54E111C499E1200F11033 /* BraintreeDemoPayPalForceFuturePaymentViewController.m */, - ); - path = "PayPal - Force Future Payment"; - sourceTree = ""; - }; - 03F8B2671C23976000FD184B /* UITests */ = { - isa = PBXGroup; - children = ( - 0338000F1C248B9C00CFF1D9 /* BraintreeDropInLegacy_UITests.swift */, - 0384E94C1C23BAFF001A3380 /* BraintreePayPal_UITests.swift */, - 0325AC231C289B5F00E90999 /* BraintreeThreeDSecure_UITests.swift */, - 0384E9501C23C111001A3380 /* Helpers */, - 03F8B26A1C23976100FD184B /* Info.plist */, - ); - path = UITests; - sourceTree = ""; - }; - 16CD2E9D1B4077FC00E68495 /* UnitTests */ = { - isa = PBXGroup; - children = ( - B67F983B1D7622D9007C1903 /* Braintree-Dropin */, - 031B94BA1C34822800F136C8 /* Braintree-UI-Specs */, - A726BFE11B56D5E900B5C8F0 /* BTAnalyticsMetadataSpec.m */, - A74BF1C71C57FBED0049E149 /* BTAnalyticsService_Tests.m */, - 842B68F01BCF083E0039634F /* BTAPIClient_SwiftTests.swift */, - A743CD201B449D8400757C9B /* BTAPIClient_Tests.m */, - A7D64ABB1B4C93B6005168EF /* BTApplePay_Tests.swift */, - A7CCE2AD1B67F26C006EA661 /* BTAppSwitch_Tests.swift */, - A790339B1B45E16E004C8234 /* BTCard_Internal_Tests.m */, - A79033971B45C968004C8234 /* BTCard_Tests.swift */, - A75147E01B4217A00005BBBA /* BTCardClient_Tests.swift */, - 41F1D1FA1CAA005500DA34CB /* BTCardClient_UnionPayTests.swift */, - A7A094F51B8276E500D732CC /* BTCardNonce_Tests.swift */, - A78496591BD962260081531A /* BTCheckoutRequest_Tests.swift */, - A79AF9F21B56DB54007B1DF1 /* BTClientMetadataSpec.m */, - A734A98D1B8797FD00D2461B /* BTClientTokenSpec.m */, - A7B7989B1C233C57001327FA /* BTConfiguration_Tests.swift */, - 844ED5E61BCC3F0B002B590C /* BTDataCollector_Tests.swift */, - A7BC50BE1C29F6600024C870 /* BTDropInErrorState_Tests.m */, - 032C26871DDEEB5000BBC1C2 /* BTDropInUtil_Tests.swift */, - 41B787BC1BAA20DB001AD351 /* BTDropInViewController_Tests.swift */, - A7C823071B4DA9D7009D45D6 /* BTHTTPSpec.m */, - 16CD2E9E1B4077FC00E68495 /* BTJSON_Tests.swift */, - A7BC50BA1C29E4CD0024C870 /* BTLogger_Internal_Tests.m */, - B67F98391D762177007C1903 /* BTMacroTests.m */, - A7AF0F611C222F9400B3ADC6 /* BTPaymentButton_Tests.swift */, - 4149C91C1BA218830090665E /* BTPaymentMethodNonceParser_Tests.swift */, - A7A6DD061B4308EB008857E1 /* BTPayPalDriver_Tests.swift */, - A74BCF021BE14C7000DC1CAE /* BTThreeDSecureDriver_Tests.swift */, - A7AF0F5F1C20E80A00B3ADC6 /* BTThreeDSecureLookupResult_Tests.swift */, - A7B7989F1C238FC0001327FA /* BTTokenizationService_Tests.swift */, - A7E93E571B601EE900957223 /* BTURLUtils_Tests.swift */, - A71F7DDF1B616BA0005DA1B0 /* BTVenmoAppSwitchReturnURLSpec.m */, - A71F7DE01B616BA0005DA1B0 /* BTVenmoAppSwitchURLSpec.m */, - A71F7DE61B6180A3005DA1B0 /* BTVenmoDriver_Tests.swift */, - A7B861BE1C24B19300A2422E /* BTVersion_Tests.swift */, - A7C8230F1B4DAAFB009D45D6 /* Helpers */, - 16CD2EA01B4077FC00E68495 /* Info.plist */, - A7B462431C3C90DB00048423 /* PayPalOneTouch */, - A7E6E8E11B420D0C004CFA95 /* UnitTests-Bridging-Header.h */, - ); - path = UnitTests; - sourceTree = ""; - }; - 2D941D391B59C76A0016EFB4 /* BraintreePayPal */ = { - isa = PBXGroup; - children = ( - A7B1C14A1B66E11C00ED063C /* BTConfiguration+PayPal.m */, - A7102E191B5085BB0007D40A /* BTPayPalAccountNonce_Internal.h */, - 16E17D1B1B3DE4580024F9AB /* BTPayPalAccountNonce.m */, - A5FE18301E799EDF00CBE9C7 /* BTPayPalCreditFinancing.m */, - A5FE18341E79B75500CBE9C7 /* BTPayPalCreditFinancingAmount.m */, - A734D95E1B4C4C0700FE0E1B /* BTPayPalDriver_Internal.h */, - 16C42B6D1B3DE0550028A3B4 /* BTPayPalDriver.m */, - 16E17D271B3DFA0F0024F9AB /* BTPayPalRequest.m */, - A734D95A1B4C4B1000FE0E1B /* BTPayPalRequestFactory.h */, - A734D95B1B4C4B1000FE0E1B /* BTPayPalRequestFactory.m */, - A50C3AF81C19F14D00612D90 /* PayPalDataCollector */, - A50C3A8C1C19E4F300612D90 /* PayPalOneTouch */, - A7B4628C1C3D9B6700048423 /* PayPalUtils */, - 41777D461B8D02050026F987 /* Public */, - ); - path = BraintreePayPal; - sourceTree = ""; - }; - 2D941D891B5D9E8C0016EFB4 /* Braintree3DSecure */ = { - isa = PBXGroup; - children = ( - A79AFA401B56F822007B1DF1 /* BTThreeDSecureAuthenticationViewController.h */, - A79AFA411B56F822007B1DF1 /* BTThreeDSecureAuthenticationViewController.m */, - A79C9C6F1BE17BBF007EAF73 /* BTThreeDSecureDriver_Internal.h */, - A79AFA7F1B56FEE4007B1DF1 /* BTThreeDSecureDriver.m */, - A79AFA421B56F822007B1DF1 /* BTThreeDSecureErrors.m */, - A79AFA7A1B56FBD1007B1DF1 /* BTThreeDSecureLookupResult.h */, - A79AFA7B1B56FBD1007B1DF1 /* BTThreeDSecureLookupResult.m */, - A79AFA3D1B56F822007B1DF1 /* BTThreeDSecureResponse.h */, - A79AFA441B56F822007B1DF1 /* BTThreeDSecureResponse.m */, - A79AFA771B56F8C3007B1DF1 /* BTThreeDSecureCardNonce.m */, - A79AFA451B56F822007B1DF1 /* BTWebViewController.h */, - A79AFA461B56F822007B1DF1 /* BTWebViewController.m */, - A79AFA471B56F822007B1DF1 /* Localization */, - 41D6E2A91B8D24A400A3C2AE /* Public */, - ); - path = Braintree3DSecure; - sourceTree = ""; - }; - 2DE12F0A1B59BE0100EA1BCF /* BraintreeCore */ = { - isa = PBXGroup; - children = ( - A7C889F81B5F0B6A007A0E9C /* Braintree-Version.h */, - A7A6DD3E1B445550008857E1 /* BTAnalyticsMetadata.h */, - A7A6DD3F1B445550008857E1 /* BTAnalyticsMetadata.m */, - A74BF1C31C57F25F0049E149 /* BTAnalyticsService.h */, - A74BF1C41C57F25F0049E149 /* BTAnalyticsService.m */, - A7A6DD2C1B431B75008857E1 /* BTAPIClient_Internal.h */, - 16C42B691B3DDFE00028A3B4 /* BTAPIClient.m */, - A7A6DD4A1B445A29008857E1 /* BTAPIPinnedCertificates.h */, - A7A6DD4B1B445A29008857E1 /* BTAPIPinnedCertificates.m */, - A7B1C1521B66F79900ED063C /* BTAppSwitch.m */, - A72E13501B446DED002703DD /* BTClientMetadata.m */, - A7D674721B84FDB400ED6C00 /* BTClientToken.m */, - A7B1C1421B66B3D000ED063C /* BTConfiguration.m */, - A77346231B7AA4D50083EC8D /* BTErrors.m */, - A7A6DD401B445550008857E1 /* BTHTTP.h */, - A7A6DD411B445550008857E1 /* BTHTTP.m */, - A79AFA861B5721F6007B1DF1 /* BTHTTPErrors.m */, - A79033A61B4AF360004C8234 /* BTJSON.m */, - A7A6DD4C1B445A29008857E1 /* BTKeychain.h */, - A7A6DD4D1B445A29008857E1 /* BTKeychain.m */, - A7A6DD131B4312DC008857E1 /* BTLogger_Internal.h */, - A7A6DD151B4312DC008857E1 /* BTLogger.m */, - 41211EF61BA0E45300DB1705 /* BTPaymentMethodNonce.m */, - 415924B01BA0F2A900C095F6 /* BTPaymentMethodNonceParser.m */, - A72E134C1B44630C002703DD /* BTPostalAddress.m */, - A773462F1B7BB1A70083EC8D /* BTTokenizationService.m */, - A717542F1BDEF1EC00002676 /* BTURLUtils.h */, - A7A6DD511B445A29008857E1 /* BTURLUtils.m */, - 2DE12F0D1B59BE0100EA1BCF /* Info.plist */, - 41777D441B8CFEE60026F987 /* Public */, - ); - path = BraintreeCore; - sourceTree = ""; - }; - 412FE0581B97A7F6008AAABE /* Public */ = { - isa = PBXGroup; - children = ( - A77344F91B7A93A10083EC8D /* BraintreeUI.h */, - A77345F51B7A9E340083EC8D /* BTDropInViewController.h */, - A77345F71B7A9E340083EC8D /* BTPaymentButton.h */, - A7F179FF1BE98E1E00E91646 /* BTPaymentRequest.h */, - A773452A1B7A93D00083EC8D /* BTUI.h */, - A77345551B7A93D00083EC8D /* BTUICardFormView.h */, - A77345581B7A93D00083EC8D /* BTUICardHint.h */, - A773455A1B7A93D00083EC8D /* BTUICoinbaseButton.h */, - A773455C1B7A93D00083EC8D /* BTUICTAControl.h */, - A773455E1B7A93D00083EC8D /* BTUIPaymentMethodView.h */, - 41913D9D1BB9D503004EF1BB /* BTUIPaymentOptionType.h */, - A70241BB1C5A9A2F00875DB8 /* BTUIPayPalCompactButton.h */, - A77345601B7A93D00083EC8D /* BTUIPayPalButton.h */, - A77345621B7A93D00083EC8D /* BTUISummaryView.h */, - 41913D9E1BB9D503004EF1BB /* BTUIThemedView.h */, - A77345491B7A93D00083EC8D /* BTUIVectorArtView.h */, - A77345641B7A93D00083EC8D /* BTUIVenmoButton.h */, - A773452C1B7A93D00083EC8D /* UIColor+BTUI.h */, - ); - path = Public; - sourceTree = ""; - }; - 4164B9891C9B6553006AE861 /* BraintreeUnionPay */ = { - isa = PBXGroup; - children = ( - A77426561CA20793003CACBA /* BTCardCapabilities.m */, - 4164B9B91C9B6988006AE861 /* BTCardClient+UnionPay.m */, - 41472F921CB6D52200AFA75C /* BTConfiguration+UnionPay.m */, - 4164B9AE1C9B665D006AE861 /* Public */, - ); - path = BraintreeUnionPay; - sourceTree = ""; - }; - 4164B9AE1C9B665D006AE861 /* Public */ = { - isa = PBXGroup; - children = ( - 4164B9AF1C9B6690006AE861 /* BraintreeUnionPay.h */, - A77426591CA207AE003CACBA /* BTCardCapabilities.h */, - 4164B9B81C9B6988006AE861 /* BTCardClient+UnionPay.h */, - 41472F961CB6D53400AFA75C /* BTConfiguration+UnionPay.h */, - ); - path = Public; - sourceTree = ""; - }; - 41777D441B8CFEE60026F987 /* Public */ = { - isa = PBXGroup; - children = ( - 2DE12F0B1B59BE0100EA1BCF /* BraintreeCore.h */, - 16C42B681B3DDFE00028A3B4 /* BTAPIClient.h */, - A7B1C1511B66F79900ED063C /* BTAppSwitch.h */, - A72E134F1B446DED002703DD /* BTClientMetadata.h */, - A7D674711B84FDB400ED6C00 /* BTClientToken.h */, - A7B1C1411B66B3D000ED063C /* BTConfiguration.h */, - EEF1DE881E858A31001BB924 /* BTEnums.h */, - A77346251B7AA4F10083EC8D /* BTErrors.h */, - A79AFA841B5721A2007B1DF1 /* BTHTTPErrors.h */, - A79033A51B4AF360004C8234 /* BTJSON.h */, - A7A6DD141B4312DC008857E1 /* BTLogger.h */, - 41211EF91BA0E47400DB1705 /* BTPaymentMethodNonce.h */, - 415924B31BA0F2D800C095F6 /* BTPaymentMethodNonceParser.h */, - A72E134B1B44630C002703DD /* BTPostalAddress.h */, - A773462E1B7BB1A60083EC8D /* BTTokenizationService.h */, - 418456E71BE42F0B00C32391 /* BTViewControllerPresentingDelegate.h */, - 16E17D061B3DE3B40024F9AB /* BTPaymentMethodNonce.h */, - ); - path = Public; - sourceTree = ""; - }; - 41777D451B8D01510026F987 /* Public */ = { - isa = PBXGroup; - children = ( - A7C889921B5F043B007A0E9C /* BraintreeCard.h */, - A7C8899F1B5F0471007A0E9C /* BTCard.h */, - A7C8899C1B5F0471007A0E9C /* BTCardClient.h */, - A7C889A11B5F0471007A0E9C /* BTCardNonce.h */, - A751CAAE1CAC4667008603E5 /* BTCardRequest.h */, - ); - path = Public; - sourceTree = ""; - }; - 41777D461B8D02050026F987 /* Public */ = { - isa = PBXGroup; - children = ( - A7B1C1491B66E11C00ED063C /* BTConfiguration+PayPal.h */, - 16E17D261B3DFA0F0024F9AB /* BTPayPalRequest.h */, - 16C42B6C1B3DE0550028A3B4 /* BTPayPalDriver.h */, - 16E17D1A1B3DE4570024F9AB /* BTPayPalAccountNonce.h */, - 2D941D3A1B59C76A0016EFB4 /* BraintreePayPal.h */, - A5F444AD1E89903E00B2B4F7 /* BTPayPalCreditFinancing.h */, - ); - path = Public; - sourceTree = ""; - }; - 41777D471B8D028C0026F987 /* Public */ = { - isa = PBXGroup; - children = ( - A7B1C1451B66D94600ED063C /* BTConfiguration+Venmo.h */, - A7C889FA1B5F0C00007A0E9C /* BTVenmoDriver.h */, - A7F96D061B6043B7005A4A09 /* BTVenmoAccountNonce.h */, - A7C889F11B5F0B30007A0E9C /* BraintreeVenmo.h */, - ); - path = Public; - sourceTree = ""; - }; - 41D6E2A81B8D242B00A3C2AE /* Public */ = { - isa = PBXGroup; - children = ( - A7C8897C1B5EF62C007A0E9C /* BTApplePayClient.h */, - A7B1C14D1B66E46900ED063C /* BTConfiguration+ApplePay.h */, - A7C8897E1B5EF62C007A0E9C /* BTApplePayCardNonce.h */, - A7C889861B5EF65C007A0E9C /* BraintreeApplePay.h */, - ); - path = Public; - sourceTree = ""; - }; - 41D6E2A91B8D24A400A3C2AE /* Public */ = { - isa = PBXGroup; - children = ( - A79AFA7E1B56FEE4007B1DF1 /* BTThreeDSecureDriver.h */, - A79AFA3B1B56F822007B1DF1 /* BTThreeDSecureErrors.h */, - A79AFA761B56F8C3007B1DF1 /* BTThreeDSecureCardNonce.h */, - 2D941D8A1B5D9E8C0016EFB4 /* Braintree3DSecure.h */, - ); - path = Public; - sourceTree = ""; - }; - 8D5C7770654B085D5D85F6A9 /* Pods */ = { - isa = PBXGroup; - children = ( - 10A1F947EB4DC18E4744F5FE /* Pods-Demo.debug.xcconfig */, - D5477E9CCBB2B1B37661129D /* Pods-Demo.release.xcconfig */, - D9AFC14FFCF2029AE39FA3BA /* Pods-Tests-IntegrationTests.debug.xcconfig */, - 0CF0BA897F9E79A01D6A2C66 /* Pods-Tests-IntegrationTests.release.xcconfig */, - F856ADC418A9254523A85526 /* Pods-Tests-UnitTests.debug.xcconfig */, - 4621B720EE8A9B65FFFE3632 /* Pods-Tests-UnitTests.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - A50C3A8C1C19E4F300612D90 /* PayPalOneTouch */ = { - isa = PBXGroup; - children = ( - A50C3B731C1A29C500612D90 /* Info.plist */, - A50C3ACC1C19E78D00612D90 /* Configuration */, - A50C3A9F1C19E67A00612D90 /* Models */, - A50C3A9D1C19E66600612D90 /* Public */, - A50C3A9C1C19E65C00612D90 /* Analytics */, - ); - name = PayPalOneTouch; - path = ..; - sourceTree = ""; - }; - A50C3A9C1C19E65C00612D90 /* Analytics */ = { - isa = PBXGroup; - children = ( - A50C3A921C19E65700612D90 /* PPFPTIData.h */, - A50C3A931C19E65700612D90 /* PPFPTIData.m */, - A50C3A941C19E65700612D90 /* PPFPTITracker.h */, - A50C3A951C19E65700612D90 /* PPFPTITracker.m */, - A50C3A961C19E65700612D90 /* PPOTAnalyticsDefines.h */, - A50C3A971C19E65700612D90 /* PPOTAnalyticsTracker.h */, - A50C3A981C19E65700612D90 /* PPOTAnalyticsTracker.m */, - ); - name = Analytics; - sourceTree = ""; - }; - A50C3A9D1C19E66600612D90 /* Public */ = { - isa = PBXGroup; - children = ( - A7B4638A1C3DCEAD00048423 /* PayPalOneTouch.h */, - A50C3AA01C19E6A200612D90 /* PPOTCore.h */, - A50C3AA11C19E6A200612D90 /* PPOTResult.h */, - A50C3AA21C19E6A200612D90 /* PPOTRequest.h */, - A50C3AA31C19E6A200612D90 /* PPOTRequestFactory.h */, - ); - name = Public; - sourceTree = ""; - }; - A50C3A9F1C19E67A00612D90 /* Models */ = { - isa = PBXGroup; - children = ( - A50C3B121C19F7FC00612D90 /* PPOTAppSwitchResponse.h */, - A50C3B131C19F7FC00612D90 /* PPOTAppSwitchResponse.m */, - A50C3B141C19F7FC00612D90 /* PPOTAppSwitchUtil.h */, - A50C3B151C19F7FC00612D90 /* PPOTAppSwitchUtil.m */, - A50C3AB91C19E6EE00612D90 /* PPOTAuthorizationRequest_Internal.h */, - A50C3ABA1C19E6EE00612D90 /* PPOTAuthorizationRequest.m */, - A50C3ABB1C19E6EE00612D90 /* PPOTBillingAgreementRequest.m */, - A50C3B161C19F7FC00612D90 /* PPOTCheckoutAppSwitchRequest.h */, - A50C3B171C19F7FC00612D90 /* PPOTCheckoutAppSwitchRequest.m */, - A50C3B181C19F7FC00612D90 /* PPOTCheckoutBrowserSwitchRequest.h */, - A50C3B191C19F7FC00612D90 /* PPOTCheckoutBrowserSwitchRequest.m */, - A50C3ABC1C19E6EE00612D90 /* PPOTCheckoutRequest_Internal.h */, - A50C3ABD1C19E6EE00612D90 /* PPOTCheckoutRequest.m */, - A50C3B1A1C19F7FC00612D90 /* PPOTCheckoutSwitchRequest.h */, - A50C3B1B1C19F7FC00612D90 /* PPOTCheckoutSwitchRequest.m */, - A50C3ABE1C19E6EE00612D90 /* PPOTCore_Internal.h */, - A50C3ABF1C19E6EE00612D90 /* PPOTCore.m */, - A50C3AC01C19E6EE00612D90 /* PPOTResult_Internal.h */, - A50C3AC11C19E6EE00612D90 /* PPOTResult.m */, - A50C3B1C1C19F7FC00612D90 /* PPOTError.h */, - A50C3B1D1C19F7FC00612D90 /* PPOTError.m */, - A50C3B1E1C19F7FC00612D90 /* PPOTOAuth2AppSwitchRequest.h */, - A50C3B1F1C19F7FC00612D90 /* PPOTOAuth2AppSwitchRequest.m */, - A50C3B201C19F7FC00612D90 /* PPOTOAuth2BrowserSwitchRequest.h */, - A50C3B211C19F7FC00612D90 /* PPOTOAuth2BrowserSwitchRequest.m */, - A50C3B221C19F7FC00612D90 /* PPOTOAuth2SwitchRequest.h */, - A50C3B231C19F7FC00612D90 /* PPOTOAuth2SwitchRequest.m */, - A50C3B241C19F7FC00612D90 /* PPOTPersistentRequestData.h */, - A50C3B251C19F7FC00612D90 /* PPOTPersistentRequestData.m */, - A50C3AC21C19E6EE00612D90 /* PPOTRequest_Internal.h */, - A50C3AC31C19E6EE00612D90 /* PPOTRequest.m */, - A50C3AC41C19E6EE00612D90 /* PPOTRequestFactory.m */, - A50C3B261C19F7FC00612D90 /* PPOTSwitchRequest.h */, - A50C3B271C19F7FC00612D90 /* PPOTSwitchRequest.m */, - ); - name = Models; - sourceTree = ""; - }; - A50C3ACC1C19E78D00612D90 /* Configuration */ = { - isa = PBXGroup; - children = ( - A50C3ACD1C19E7F500612D90 /* otc-config.ios.json */, - A50C3ACE1C19E7F500612D90 /* PPDefaultConfigurationJSON.h */, - A50C3ACF1C19E7F500612D90 /* PPOTConfiguration.h */, - A50C3AD01C19E7F500612D90 /* PPOTConfiguration.m */, - ); - name = Configuration; - sourceTree = ""; - }; - A50C3AF81C19F14D00612D90 /* PayPalDataCollector */ = { - isa = PBXGroup; - children = ( - A50C3B631C1A288700612D90 /* Info.plist */, - A79BB5BE1CE501D500CC6F0E /* PPDataCollector_Internal.h */, - A7B4635F1C3DBEFE00048423 /* PPDataCollector.m */, - A7B4635C1C3DA7DF00048423 /* Public */, - A50C3AF91C19F27A00612D90 /* Risk */, - ); - path = PayPalDataCollector; - sourceTree = ""; - }; - A50C3AF91C19F27A00612D90 /* Risk */ = { - isa = PBXGroup; - children = ( - A50C3AFB1C19F52C00612D90 /* libPPRiskComponent.a */, - A50C3AFC1C19F52C00612D90 /* PPRCClientMetadataIDProvider.h */, - ); - path = Risk; - sourceTree = ""; - }; - A51527351D9EEFCF00FF3F77 /* Drop In */ = { - isa = PBXGroup; - children = ( - A51527361D9EEFE800FF3F77 /* BraintreeDemoDropInViewController.h */, - A51527371D9EEFE800FF3F77 /* BraintreeDemoDropInViewController.m */, - ); - path = "Drop In"; - sourceTree = ""; - }; - A5FE18371E79D57F00CBE9C7 /* PayPal - Credit */ = { - isa = PBXGroup; - children = ( - A5FE183B1E79D5E700CBE9C7 /* BraintreeDemoPayPalCreditPaymentViewController.h */, - A5FE183C1E79D5E700CBE9C7 /* BraintreeDemoPayPalCreditPaymentViewController.m */, - ); - path = "PayPal - Credit"; - sourceTree = ""; - }; - A715593F1B729297007DE6F0 /* Helpers */ = { - isa = PBXGroup; - children = ( - A71559401B729297007DE6F0 /* BTIntegrationTestsHelper.h */, - A71559411B729297007DE6F0 /* BTIntegrationTestsHelper.m */, - A75BAC671C1F691C00D66FB5 /* BTIntegrationTestsConstants.h */, - ); - path = Helpers; - sourceTree = ""; - }; - A7334F221BA38AF50083C411 /* PayPal - Billing Agreement */ = { - isa = PBXGroup; - children = ( - A7334F231BA38B0C0083C411 /* BraintreeDemoPayPalBillingAgreementViewController.h */, - A7334F241BA38B0C0083C411 /* BraintreeDemoPayPalBillingAgreementViewController.m */, - ); - path = "PayPal - Billing Agreement"; - sourceTree = ""; - }; - A75DA343192138F000D997A2 = { - isa = PBXGroup; - children = ( - 2D941D891B5D9E8C0016EFB4 /* Braintree3DSecure */, - A7C889751B5EF5DE007A0E9C /* BraintreeApplePay */, - A7C889911B5F043B007A0E9C /* BraintreeCard */, - 2DE12F0A1B59BE0100EA1BCF /* BraintreeCore */, - A76D7C011BB1CAB00000FA6A /* BraintreeDataCollector */, - 2D941D391B59C76A0016EFB4 /* BraintreePayPal */, - A77344F81B7A93A10083EC8D /* BraintreeUI */, - 4164B9891C9B6553006AE861 /* BraintreeUnionPay */, - A7C889F01B5F0B30007A0E9C /* BraintreeVenmo */, - A76B19A21B79708900452CFA /* Demo */, - A75DA3531921394200D997A2 /* Frameworks */, - A7ABD6541B702FD800A1223C /* IntegrationTests */, - A75DA3521921394200D997A2 /* Products */, - 03F8B2671C23976000FD184B /* UITests */, - 16CD2E9D1B4077FC00E68495 /* UnitTests */, - 8D5C7770654B085D5D85F6A9 /* Pods */, - ); - sourceTree = ""; - }; - A75DA3521921394200D997A2 /* Products */ = { - isa = PBXGroup; - children = ( - 16CD2E9C1B4077FB00E68495 /* UnitTests.xctest */, - 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */, - 2D941D381B59C76A0016EFB4 /* BraintreePayPal.framework */, - 2D941D881B5D9E8C0016EFB4 /* Braintree3DSecure.framework */, - A7C889741B5EF5DE007A0E9C /* BraintreeApplePay.framework */, - A7C889901B5F043B007A0E9C /* BraintreeCard.framework */, - A77AA29C1B618C7700217B73 /* BraintreeVenmo.framework */, - A7ABD6531B702FD800A1223C /* IntegrationTests.xctest */, - A76B198B1B79707700452CFA /* Demo.app */, - A77344F71B7A93A10083EC8D /* BraintreeUI.framework */, - 417404491BB084D3008A5DEA /* libBraintree.a */, - A76D7C001BB1CAB00000FA6A /* BraintreeDataCollector.framework */, - A50C3AD51C19F00600612D90 /* libPayPalOneTouch-StaticLibrary.a */, - A50C3B051C19F55C00612D90 /* libPayPalDataCollector-StaticLibrary.a */, - A50C3B6F1C1A29C500612D90 /* PayPalOneTouch.framework */, - 03F8B2661C23976000FD184B /* UITests.xctest */, - A7B463051C3D9C2200048423 /* PayPalDataCollector.framework */, - 7EDE47701CD2C3D00005E22B /* PayPalUtils.framework */, - 4164B9AC1C9B658E006AE861 /* BraintreeUnionPay.framework */, - ); - name = Products; - sourceTree = ""; - }; - A75DA3531921394200D997A2 /* Frameworks */ = { - isa = PBXGroup; - children = ( - A76B99201C3EF5D300A584F6 /* libPods-Demo.a */, - A76B99211C3EF5D300A584F6 /* libPods-Test-Deps.a */, - A76B991E1C3EF59000A584F6 /* libFLEX.a */, - A7B462621C3C945600048423 /* libPods-Demo.a */, - A50C3BC41C1B3F1500612D90 /* UIKit.framework */, - 417453BE1BCEF9CB00F33B65 /* libPods-Demo-CocoaPods.a */, - A7C889891B5EF737007A0E9C /* PassKit.framework */, - A7A6DD281B43145D008857E1 /* SystemConfiguration.framework */, - A7A6DD261B431453008857E1 /* CoreLocation.framework */, - A7A6DD241B43144D008857E1 /* MessageUI.framework */, - A7B035B519D6273400750F8A /* PassKit.framework */, - A75DA3541921394200D997A2 /* Foundation.framework */, - A75DA3621921394200D997A2 /* XCTest.framework */, - A75DA3651921394200D997A2 /* UIKit.framework */, - 162174E1192D9220008DC35D /* CoreGraphics.framework */, - A3D9C499891AB1363F3E1290 /* libPods-Demo.a */, - D242087B7E38C2B838C8866E /* libPods-Tests-IntegrationTests.a */, - FD5B458BFE02563982017D5E /* libPods-Tests-UnitTests.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - A76B19A21B79708900452CFA /* Demo */ = { - isa = PBXGroup; - children = ( - A76B19A41B79708900452CFA /* Demo Base */, - A76B19BE1B79708900452CFA /* Features */, - A76B19FF1B79708A00452CFA /* Merchant API Client */, - A76B1A031B79708A00452CFA /* Supporting Files */, - A76B19A31B79708900452CFA /* Braintree-Demo.entitlements */, - A76B19FE1B79708A00452CFA /* Images.xcassets */, - A76B1A021B79708A00452CFA /* README.md */, - ); - path = Demo; - sourceTree = ""; - }; - A76B19A41B79708900452CFA /* Demo Base */ = { - isa = PBXGroup; - children = ( - A76B19A51B79708900452CFA /* Base View Controllers */, - A76B19B61B79708900452CFA /* Settings */, - A76B19AC1B79708900452CFA /* BraintreeDemoAppDelegate.h */, - A76B19AD1B79708900452CFA /* BraintreeDemoAppDelegate.m */, - A76B19AE1B79708900452CFA /* BraintreeDemoDemoContainmentViewController.h */, - A76B19AF1B79708900452CFA /* BraintreeDemoDemoContainmentViewController.m */, - A76B19B01B79708900452CFA /* BraintreeDemoIntegrationViewController.h */, - A76B19B11B79708900452CFA /* BraintreeDemoIntegrationViewController.m */, - A76B19B21B79708900452CFA /* BraintreeDemoSlideNavigationController.h */, - A76B19B31B79708900452CFA /* BraintreeDemoSlideNavigationController.m */, - A76B19B51B79708900452CFA /* Launch Screen.storyboard */, - ); - path = "Demo Base"; - sourceTree = ""; - }; - A76B19A51B79708900452CFA /* Base View Controllers */ = { - isa = PBXGroup; - children = ( - A76B19A61B79708900452CFA /* BraintreeDemoBaseViewController.h */, - A76B19A71B79708900452CFA /* BraintreeDemoBaseViewController.m */, - A76B19A81B79708900452CFA /* BraintreeDemoPaymentButtonBaseViewController.h */, - A76B19A91B79708900452CFA /* BraintreeDemoPaymentButtonBaseViewController.m */, - ); - path = "Base View Controllers"; - sourceTree = ""; - }; - A76B19B61B79708900452CFA /* Settings */ = { - isa = PBXGroup; - children = ( - A76B19B71B79708900452CFA /* BraintreeDemoSettings.h */, - A76B19B81B79708900452CFA /* BraintreeDemoSettings.m */, - A76B19B91B79708900452CFA /* Settings.bundle */, - ); - path = Settings; - sourceTree = ""; - }; - A76B19BE1B79708900452CFA /* Features */ = { - isa = PBXGroup; - children = ( - A51527351D9EEFCF00FF3F77 /* Drop In */, - 03B368B01CAD95D300CDFC9C /* Drop In Old */, - A76B19C21B79708900452CFA /* Apple Pay - PassKit */, - A76B19CB1B79708900452CFA /* Combined Button - BTPaymentButton */, - A76B19CE1B79708900452CFA /* Combined Button - Custom Multi-Pay Button */, - A76B19D11B79708900452CFA /* Credit Card Tokenization */, - A76B19D51B79708900452CFA /* Credit Cards - 3D Secure */, - A76B19DB1B79708900452CFA /* Fraud Protection - BTDataCollector */, - A7334F221BA38AF50083C411 /* PayPal - Billing Agreement */, - A76B19DE1B79708900452CFA /* PayPal - BTUIPayPalButton */, - A76B19E11B79708900452CFA /* PayPal - Checkout */, - A5FE18371E79D57F00CBE9C7 /* PayPal - Credit */, - A76B19E41B79708900452CFA /* PayPal - Custom Button */, - 03F54E0F1C499E1200F11033 /* PayPal - Force Future Payment */, - A76B19EA1B79708900452CFA /* PayPal - Scopes */, - A76B19ED1B79708900452CFA /* UI Components */, - A775245E1CC99B53002E4E62 /* UnionPay */, - A76B19F81B79708900452CFA /* Venmo - BTUIVenmoButton */, - A76B19FB1B79708900452CFA /* Venmo - Custom Button */, - ); - path = Features; - sourceTree = ""; - }; - A76B19C21B79708900452CFA /* Apple Pay - PassKit */ = { - isa = PBXGroup; - children = ( - A76B19C31B79708900452CFA /* BraintreeDemoApplePayPassKitViewController.h */, - A76B19C41B79708900452CFA /* BraintreeDemoApplePayPassKitViewController.m */, - ); - path = "Apple Pay - PassKit"; - sourceTree = ""; - }; - A76B19CB1B79708900452CFA /* Combined Button - BTPaymentButton */ = { - isa = PBXGroup; - children = ( - A76B19CC1B79708900452CFA /* BraintreeDemoBTPaymentButtonViewController.h */, - A76B19CD1B79708900452CFA /* BraintreeDemoBTPaymentButtonViewController.m */, - ); - path = "Combined Button - BTPaymentButton"; - sourceTree = ""; - }; - A76B19CE1B79708900452CFA /* Combined Button - Custom Multi-Pay Button */ = { - isa = PBXGroup; - children = ( - A76B19CF1B79708900452CFA /* BraintreeDemoCustomMultiPayViewController.h */, - A76B19D01B79708900452CFA /* BraintreeDemoCustomMultiPayViewController.m */, - ); - path = "Combined Button - Custom Multi-Pay Button"; - sourceTree = ""; - }; - A76B19D11B79708900452CFA /* Credit Card Tokenization */ = { - isa = PBXGroup; - children = ( - A76B19D21B79708900452CFA /* BraintreeDemoCardTokenizationViewController.h */, - A76B19D31B79708900452CFA /* BraintreeDemoCardTokenizationViewController.m */, - A76B19D41B79708900452CFA /* BraintreeDemoCardTokenizationViewController.xib */, - ); - path = "Credit Card Tokenization"; - sourceTree = ""; - }; - A76B19D51B79708900452CFA /* Credit Cards - 3D Secure */ = { - isa = PBXGroup; - children = ( - A76B19D61B79708900452CFA /* BraintreeDemoThreeDSecureViewController.h */, - A76B19D71B79708900452CFA /* BraintreeDemoThreeDSecureViewController.m */, - ); - path = "Credit Cards - 3D Secure"; - sourceTree = ""; - }; - A76B19DB1B79708900452CFA /* Fraud Protection - BTDataCollector */ = { - isa = PBXGroup; - children = ( - A76B19DC1B79708900452CFA /* BraintreeDemoBTDataCollectorViewController.h */, - A76B19DD1B79708900452CFA /* BraintreeDemoBTDataCollectorViewController.m */, - ); - path = "Fraud Protection - BTDataCollector"; - sourceTree = ""; - }; - A76B19DE1B79708900452CFA /* PayPal - BTUIPayPalButton */ = { - isa = PBXGroup; - children = ( - A76B19DF1B79708900452CFA /* BraintreeDemoBTUIPayPalButtonViewController.h */, - A76B19E01B79708900452CFA /* BraintreeDemoBTUIPayPalButtonViewController.m */, - ); - path = "PayPal - BTUIPayPalButton"; - sourceTree = ""; - }; - A76B19E11B79708900452CFA /* PayPal - Checkout */ = { - isa = PBXGroup; - children = ( - A76B19E21B79708900452CFA /* BraintreeDemoPayPalOneTimePaymentViewController.h */, - A76B19E31B79708900452CFA /* BraintreeDemoPayPalOneTimePaymentViewController.m */, - ); - path = "PayPal - Checkout"; - sourceTree = ""; - }; - A76B19E41B79708900452CFA /* PayPal - Custom Button */ = { - isa = PBXGroup; - children = ( - A76B19E51B79708900452CFA /* BraintreeDemoCustomPayPalButtonViewController.h */, - A76B19E61B79708900452CFA /* BraintreeDemoCustomPayPalButtonViewController.m */, - ); - path = "PayPal - Custom Button"; - sourceTree = ""; - }; - A76B19EA1B79708900452CFA /* PayPal - Scopes */ = { - isa = PBXGroup; - children = ( - A76B19EB1B79708900452CFA /* BraintreeDemoPayPalScopesViewController.h */, - A76B19EC1B79708900452CFA /* BraintreeDemoPayPalScopesViewController.m */, - ); - path = "PayPal - Scopes"; - sourceTree = ""; - }; - A76B19ED1B79708900452CFA /* UI Components */ = { - isa = PBXGroup; - children = ( - A76B19EE1B79708900452CFA /* BraintreeDemoCardHintViewController.h */, - A76B19EF1B79708900452CFA /* BraintreeDemoCardHintViewController.m */, - A76B19F01B79708900452CFA /* BraintreeDemoCreditCardEntryViewController.h */, - A76B19F11B79708900452CFA /* BraintreeDemoCreditCardEntryViewController.m */, - A76B19F21B79708900452CFA /* BraintreeDemoCreditCardEntryViewController.xib */, - A76B19F31B79708900452CFA /* BraintreeDemoPaymentsUIComponentsViewController.h */, - A76B19F41B79708900452CFA /* BraintreeDemoPaymentsUIComponentsViewController.m */, - A76B19F51B79708900452CFA /* BraintreeDemoUIWidgetsViewController.h */, - A76B19F61B79708900452CFA /* BraintreeDemoUIWidgetsViewController.m */, - A76B19F71B79708900452CFA /* UI.storyboard */, - ); - path = "UI Components"; - sourceTree = ""; - }; - A76B19F81B79708900452CFA /* Venmo - BTUIVenmoButton */ = { - isa = PBXGroup; - children = ( - A76B19F91B79708900452CFA /* BraintreeDemoBTUIVenmoButtonViewController.h */, - A76B19FA1B79708900452CFA /* BraintreeDemoBTUIVenmoButtonViewController.m */, - ); - path = "Venmo - BTUIVenmoButton"; - sourceTree = ""; - }; - A76B19FB1B79708900452CFA /* Venmo - Custom Button */ = { - isa = PBXGroup; - children = ( - A76B19FC1B79708A00452CFA /* BraintreeDemoCustomVenmoButtonViewController.h */, - A76B19FD1B79708A00452CFA /* BraintreeDemoCustomVenmoButtonViewController.m */, - ); - path = "Venmo - Custom Button"; - sourceTree = ""; - }; - A76B19FF1B79708A00452CFA /* Merchant API Client */ = { - isa = PBXGroup; - children = ( - A76B1A001B79708A00452CFA /* BraintreeDemoMerchantAPI.h */, - A76B1A011B79708A00452CFA /* BraintreeDemoMerchantAPI.m */, - ); - path = "Merchant API Client"; - sourceTree = ""; - }; - A76B1A031B79708A00452CFA /* Supporting Files */ = { - isa = PBXGroup; - children = ( - A76B1A041B79708A00452CFA /* Braintree-Demo-Info.plist */, - A76B1A051B79708A00452CFA /* Braintree-Demo-Prefix.pch */, - A76B1A061B79708A00452CFA /* InfoPlist.strings */, - A76B1A081B79708A00452CFA /* Main.strings */, - A76B1A0A1B79708A00452CFA /* main.m */, - ); - path = "Supporting Files"; - sourceTree = ""; - }; - A76D7C011BB1CAB00000FA6A /* BraintreeDataCollector */ = { - isa = PBXGroup; - children = ( - B61F677F1CE4C20F0051A3BD /* BTConfiguration+DataCollector.m */, - A76D7C221BB1CBDC0000FA6A /* BTDataCollector.m */, - 413CDF4E1C779ED400B89FCA /* BTDataCollector_Internal.h */, - A76D7C251BB1D31A0000FA6A /* Kount */, - A76D7C1D1BB1CBBF0000FA6A /* Public */, - A76D7C2C1BB1D35A0000FA6A /* README.md */, - ); - path = BraintreeDataCollector; - sourceTree = ""; - }; - A76D7C1D1BB1CBBF0000FA6A /* Public */ = { - isa = PBXGroup; - children = ( - B61F677E1CE4C20F0051A3BD /* BTConfiguration+DataCollector.h */, - A76D7C1E1BB1CBD50000FA6A /* BraintreeDataCollector.h */, - A76D7C1F1BB1CBD50000FA6A /* BTDataCollector.h */, - ); - path = Public; - sourceTree = ""; - }; - A76D7C251BB1D31A0000FA6A /* Kount */ = { - isa = PBXGroup; - children = ( - A51527321D9C3DC600FF3F77 /* KDataCollector.h */, - A76D7C271BB1D31A0000FA6A /* libDeviceCollectorLibrary.a */, - ); - path = Kount; - sourceTree = ""; - }; - A77344F81B7A93A10083EC8D /* BraintreeUI */ = { - isa = PBXGroup; - children = ( - A77345EA1B7A9E340083EC8D /* Drop-In */, - A77345061B7A93D00083EC8D /* Localization */, - A773451F1B7A93D00083EC8D /* Models */, - 412FE0581B97A7F6008AAABE /* Public */, - A77345281B7A93D00083EC8D /* README.md */, - A77345291B7A93D00083EC8D /* Theme */, - A773452E1B7A93D00083EC8D /* Views */, - ); - path = BraintreeUI; - sourceTree = ""; - }; - A77345061B7A93D00083EC8D /* Localization */ = { - isa = PBXGroup; - children = ( - A77345071B7A93D00083EC8D /* BTUILocalizedString.h */, - A77345081B7A93D00083EC8D /* BTUILocalizedString.m */, - A77345091B7A93D00083EC8D /* UI.strings */, - ); - path = Localization; - sourceTree = ""; - }; - A773451F1B7A93D00083EC8D /* Models */ = { - isa = PBXGroup; - children = ( - A7F179FD1BE98E0E00E91646 /* BTPaymentRequest.m */, - A77345201B7A93D00083EC8D /* BTUICardExpirationValidator.h */, - A77345211B7A93D00083EC8D /* BTUICardExpirationValidator.m */, - A77345221B7A93D00083EC8D /* BTUICardExpiryFormat.h */, - A77345231B7A93D00083EC8D /* BTUICardExpiryFormat.m */, - A77345241B7A93D00083EC8D /* BTUICardType.h */, - A77345251B7A93D00083EC8D /* BTUICardType.m */, - A77345261B7A93D00083EC8D /* BTUIUtil.h */, - A77345271B7A93D00083EC8D /* BTUIUtil.m */, - ); - path = Models; - sourceTree = ""; - }; - A77345291B7A93D00083EC8D /* Theme */ = { - isa = PBXGroup; - children = ( - A773452B1B7A93D00083EC8D /* BTUI.m */, - A773452D1B7A93D00083EC8D /* UIColor+BTUI.m */, - ); - path = Theme; - sourceTree = ""; - }; - A773452E1B7A93D00083EC8D /* Views */ = { - isa = PBXGroup; - children = ( - A773452F1B7A93D00083EC8D /* Apple Pay */, - A77345361B7A93D00083EC8D /* Collection Views */, - A773453D1B7A93D00083EC8D /* Custom Views */, - A773454B1B7A93D00083EC8D /* Form Fields */, - A77345541B7A93D00083EC8D /* Forms */, - A77345571B7A93D00083EC8D /* Payments Components */, - A77345661B7A93D00083EC8D /* Vector Art */, - A77345341B7A93D00083EC8D /* BTUIViewUtil.h */, - A77345351B7A93D00083EC8D /* BTUIViewUtil.m */, - ); - path = Views; - sourceTree = ""; - }; - A773452F1B7A93D00083EC8D /* Apple Pay */ = { - isa = PBXGroup; - children = ( - A77345301B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationView.h */, - A77345311B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationView.m */, - A77345321B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationViewController.h */, - A77345331B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationViewController.m */, - ); - path = "Apple Pay"; - sourceTree = ""; - }; - A77345361B7A93D00083EC8D /* Collection Views */ = { - isa = PBXGroup; - children = ( - A77345371B7A93D00083EC8D /* BTUIHorizontalButtonStackCollectionViewFlowLayout.h */, - A77345381B7A93D00083EC8D /* BTUIHorizontalButtonStackCollectionViewFlowLayout.m */, - A77345391B7A93D00083EC8D /* BTUIHorizontalButtonStackSeparatorLineView.h */, - A773453A1B7A93D00083EC8D /* BTUIHorizontalButtonStackSeparatorLineView.m */, - A773453B1B7A93D00083EC8D /* BTUIPaymentButtonCollectionViewCell.h */, - A773453C1B7A93D00083EC8D /* BTUIPaymentButtonCollectionViewCell.m */, - ); - path = "Collection Views"; - sourceTree = ""; - }; - A773453D1B7A93D00083EC8D /* Custom Views */ = { - isa = PBXGroup; - children = ( - A773453E1B7A93D00083EC8D /* BTUIFloatLabel.h */, - A773453F1B7A93D00083EC8D /* BTUIFloatLabel.m */, - A77345401B7A93D00083EC8D /* BTUIFormField.h */, - A77345411B7A93D00083EC8D /* BTUIFormField.m */, - A77345421B7A93D00083EC8D /* BTUIFormField_Protected.h */, - A77345431B7A93D00083EC8D /* BTUIScrollView.h */, - A77345441B7A93D00083EC8D /* BTUIScrollView.m */, - A77345451B7A93D00083EC8D /* BTUITextField.h */, - A77345461B7A93D00083EC8D /* BTUITextField.m */, - A77345481B7A93D00083EC8D /* BTUIThemedView.m */, - A773454A1B7A93D00083EC8D /* BTUIVectorArtView.m */, - ); - path = "Custom Views"; - sourceTree = ""; - }; - A773454B1B7A93D00083EC8D /* Form Fields */ = { - isa = PBXGroup; - children = ( - A773454C1B7A93D00083EC8D /* BTUICardCvvField.h */, - A773454D1B7A93D00083EC8D /* BTUICardCvvField.m */, - A773454E1B7A93D00083EC8D /* BTUICardExpiryField.h */, - A773454F1B7A93D00083EC8D /* BTUICardExpiryField.m */, - A77345501B7A93D00083EC8D /* BTUICardNumberField.h */, - A77345511B7A93D00083EC8D /* BTUICardNumberField.m */, - A77345521B7A93D00083EC8D /* BTUICardPostalCodeField.h */, - A77345531B7A93D00083EC8D /* BTUICardPostalCodeField.m */, - 4107EB211C88C75000F32D81 /* BTUICardPhoneNumberField.h */, - 4107EB221C88C75000F32D81 /* BTUICardPhoneNumberField.m */, - ); - path = "Form Fields"; - sourceTree = ""; - }; - A77345541B7A93D00083EC8D /* Forms */ = { - isa = PBXGroup; - children = ( - A77345561B7A93D00083EC8D /* BTUICardFormView.m */, - ); - path = Forms; - sourceTree = ""; - }; - A77345571B7A93D00083EC8D /* Payments Components */ = { - isa = PBXGroup; - children = ( - A773455D1B7A93D00083EC8D /* BTUICTAControl.m */, - A77345591B7A93D00083EC8D /* BTUICardHint.m */, - A773455B1B7A93D00083EC8D /* BTUICoinbaseButton.m */, - A77345611B7A93D00083EC8D /* BTUIPayPalButton.m */, - A773455F1B7A93D00083EC8D /* BTUIPaymentMethodView.m */, - A77345631B7A93D00083EC8D /* BTUISummaryView.m */, - A77345651B7A93D00083EC8D /* BTUIVenmoButton.m */, - A70241BC1C5A9A2F00875DB8 /* BTUIPayPalCompactButton.m */, - ); - path = "Payments Components"; - sourceTree = ""; - }; - A77345661B7A93D00083EC8D /* Vector Art */ = { - isa = PBXGroup; - children = ( - A77345671B7A93D00083EC8D /* BTUIAmExVectorArtView.h */, - A77345681B7A93D00083EC8D /* BTUIAmExVectorArtView.m */, - A77345691B7A93D00083EC8D /* BTUICardVectorArtView.h */, - A773456A1B7A93D00083EC8D /* BTUICardVectorArtView.m */, - A773456B1B7A93D00083EC8D /* BTUICoinbaseMonogramCardView.h */, - A773456C1B7A93D00083EC8D /* BTUICoinbaseMonogramCardView.m */, - A773456D1B7A93D00083EC8D /* BTUICoinbaseWordmarkVectorArtView.h */, - A773456E1B7A93D00083EC8D /* BTUICoinbaseWordmarkVectorArtView.m */, - A773456F1B7A93D00083EC8D /* BTUICVVBackVectorArtView.h */, - A77345701B7A93D00083EC8D /* BTUICVVBackVectorArtView.m */, - A77345711B7A93D00083EC8D /* BTUICVVFrontVectorArtView.h */, - A77345721B7A93D00083EC8D /* BTUICVVFrontVectorArtView.m */, - A77345731B7A93D00083EC8D /* BTUIDinersClubVectorArtView.h */, - A77345741B7A93D00083EC8D /* BTUIDinersClubVectorArtView.m */, - A77345751B7A93D00083EC8D /* BTUIDiscoverVectorArtView.h */, - A77345761B7A93D00083EC8D /* BTUIDiscoverVectorArtView.m */, - A77345771B7A93D00083EC8D /* BTUIJCBVectorArtView.h */, - A77345781B7A93D00083EC8D /* BTUIJCBVectorArtView.m */, - A77345791B7A93D00083EC8D /* BTUIMaestroVectorArtView.h */, - A773457A1B7A93D00083EC8D /* BTUIMaestroVectorArtView.m */, - A773457B1B7A93D00083EC8D /* BTUIMasterCardVectorArtView.h */, - A773457C1B7A93D00083EC8D /* BTUIMasterCardVectorArtView.m */, - A70241B71C598BA200875DB8 /* BTUIPayPalWordmarkVectorArtView.h */, - A70241B81C598BA200875DB8 /* BTUIPayPalWordmarkVectorArtView.m */, - A773457D1B7A93D00083EC8D /* BTUIPayPalMonogramCardView.h */, - A773457E1B7A93D00083EC8D /* BTUIPayPalMonogramCardView.m */, - A773457F1B7A93D00083EC8D /* BTUIPayPalWordmarkCompactVectorArtView.h */, - A77345801B7A93D00083EC8D /* BTUIPayPalWordmarkCompactVectorArtView.m */, - A77345811B7A93D00083EC8D /* BTUIUnknownCardVectorArtView.h */, - A77345821B7A93D00083EC8D /* BTUIUnknownCardVectorArtView.m */, - 035945551BE96345002116BB /* BTUIVenmoMonogramCardView.h */, - 035945561BE96345002116BB /* BTUIVenmoMonogramCardView.m */, - A77345831B7A93D00083EC8D /* BTUIVenmoWordmarkVectorArtView.h */, - A77345841B7A93D00083EC8D /* BTUIVenmoWordmarkVectorArtView.m */, - A77345851B7A93D00083EC8D /* BTUIVisaVectorArtView.h */, - A77345861B7A93D00083EC8D /* BTUIVisaVectorArtView.m */, - A78422711C98920500D3EBFF /* BTUIUnionPayVectorArtView.h */, - A78422721C98920500D3EBFF /* BTUIUnionPayVectorArtView.m */, - ); - path = "Vector Art"; - sourceTree = ""; - }; - A77345EA1B7A9E340083EC8D /* Drop-In */ = { - isa = PBXGroup; - children = ( - A77345EB1B7A9E340083EC8D /* BTDropInContentView.h */, - A77345EC1B7A9E340083EC8D /* BTDropInContentView.m */, - A77345ED1B7A9E340083EC8D /* BTDropInErrorAlert.h */, - A77345EE1B7A9E340083EC8D /* BTDropInErrorAlert.m */, - A77345EF1B7A9E340083EC8D /* BTDropInErrorState.h */, - A77345F01B7A9E340083EC8D /* BTDropInErrorState.m */, - A77345F11B7A9E340083EC8D /* BTDropInSelectPaymentMethodViewController.h */, - A77345F21B7A9E340083EC8D /* BTDropInSelectPaymentMethodViewController.m */, - A77345F31B7A9E340083EC8D /* BTDropInUtil.h */, - A77345F41B7A9E340083EC8D /* BTDropInUtil.m */, - A7ECA5E41BEBD34100437A4F /* BTDropInViewController_Internal.h */, - A77345F61B7A9E340083EC8D /* BTDropInViewController.m */, - A73012821BEBE0C50074C118 /* BTPaymentButton_Internal.h */, - A77345F81B7A9E340083EC8D /* BTPaymentButton.m */, - A77345F91B7A9E340083EC8D /* Localization */, - ); - path = "Drop-In"; - sourceTree = ""; - }; - A77345F91B7A9E340083EC8D /* Localization */ = { - isa = PBXGroup; - children = ( - A77345FA1B7A9E340083EC8D /* BTDropInLocalizedString.h */, - A77345FB1B7A9E340083EC8D /* BTDropInLocalizedString.m */, - A77345FC1B7A9E340083EC8D /* Drop-In.strings */, - ); - path = Localization; - sourceTree = ""; - }; - A775245E1CC99B53002E4E62 /* UnionPay */ = { - isa = PBXGroup; - children = ( - A775245F1CC99BA3002E4E62 /* BraintreeDemoUnionPayViewController.h */, - A77524601CC99BA3002E4E62 /* BraintreeDemoUnionPayViewController.m */, - ); - path = UnionPay; - sourceTree = ""; - }; - A79AFA471B56F822007B1DF1 /* Localization */ = { - isa = PBXGroup; - children = ( - A79AFA481B56F822007B1DF1 /* BTThreeDSecureLocalizedString.h */, - A79AFA491B56F822007B1DF1 /* BTThreeDSecureLocalizedString.m */, - A79AFA4A1B56F822007B1DF1 /* Three-D-Secure.strings */, - ); - path = Localization; - sourceTree = ""; - }; - A7ABD6541B702FD800A1223C /* IntegrationTests */ = { - isa = PBXGroup; - children = ( - A7ABD65D1B702FF000A1223C /* Braintree-API-Integration-Specs */, - A71559471B72B085007DE6F0 /* BraintreeApplePay_IntegrationTests.m */, - A7ABD6771B702FF000A1223C /* BraintreeCard_IntegrationTests.m */, - A76D7C331BB21CE90000FA6A /* BraintreeDataCollector_IntegrationTests.m */, - A7CB42D21B73E629002CCFDD /* BraintreePayPal_IntegrationTests.m */, - A78BF95C1CC6F32100DED8AA /* BraintreeUnionPay_IntegrationTests.m */, - A715593F1B729297007DE6F0 /* Helpers */, - A7ABD6571B702FD800A1223C /* Info.plist */, - A75BAC681C1F69A300D66FB5 /* IntegrationTests.pch */, - ); - path = IntegrationTests; - sourceTree = ""; - }; - A7ABD65D1B702FF000A1223C /* Braintree-API-Integration-Specs */ = { - isa = PBXGroup; - children = ( - A7ABD6641B702FF000A1223C /* SSL */, - A7ABD6721B702FF000A1223C /* Supporting Files */, - A7ABD65E1B702FF000A1223C /* BTAPIClient_IntegrationTests.m */, - A7ABD6611B702FF000A1223C /* BTHTTPSSLPinning_IntegrationTests.m */, - A7ABD6631B702FF000A1223C /* good_root_cert.der */, - ); - path = "Braintree-API-Integration-Specs"; - sourceTree = ""; - }; - A7ABD6641B702FF000A1223C /* SSL */ = { - isa = PBXGroup; - children = ( - A7ABD6651B702FF000A1223C /* evil_root_cert.der */, - A7ABD6661B702FF000A1223C /* evil_root_cert.pem */, - A7ABD6671B702FF000A1223C /* evil_root_key.pem */, - A7ABD6681B702FF000A1223C /* evil_site_cert.pem */, - A7ABD6691B702FF000A1223C /* evil_site_key.pem */, - A7ABD66A1B702FF000A1223C /* evil_site_request.pem */, - A7ABD66B1B702FF000A1223C /* good_root_cert.pem */, - A7ABD66C1B702FF000A1223C /* good_root_key.pem */, - A7ABD66D1B702FF000A1223C /* good_site_cert.pem */, - A7ABD66E1B702FF000A1223C /* good_site_key.pem */, - A7ABD66F1B702FF000A1223C /* good_site_request.pem */, - A7ABD6701B702FF000A1223C /* https_server.rb */, - A7ABD6711B702FF000A1223C /* make_certs.sh */, - ); - path = SSL; - sourceTree = ""; - }; - A7ABD6721B702FF000A1223C /* Supporting Files */ = { - isa = PBXGroup; - children = ( - A7ABD6751B702FF000A1223C /* InfoPlist.strings */, - A7ABD6731B702FF000A1223C /* braintree-api-integration-specs-Info.plist */, - A7ABD6741B702FF000A1223C /* braintree-api-integration-specs-Prefix.pch */, - ); - path = "Supporting Files"; - sourceTree = ""; - }; - A7B462431C3C90DB00048423 /* PayPalOneTouch */ = { - isa = PBXGroup; - children = ( - 032D3A711C580B09000E5F6B /* PPDataCollectorTest.m */, - A5D3A56E1C20975F003A25A1 /* PPFPTIDataTest.m */, - A5D3A56F1C20975F003A25A1 /* PPFPTITrackerTest.m */, - A7B462441C3C911200048423 /* PPOTAppSwitchResponseTest.m */, - A7B462451C3C911200048423 /* PPOTAppSwitchUtilTest.m */, - A7B462461C3C911200048423 /* PPOTConfigurationTest.m */, - A7B462471C3C911200048423 /* PPOTEncryptionTest.m */, - A7B462481C3C911200048423 /* PPOTErrorTest.m */, - A7B462491C3C911200048423 /* PPOTTimeTest.m */, - ); - path = PayPalOneTouch; - sourceTree = ""; - }; - A7B4628C1C3D9B6700048423 /* PayPalUtils */ = { - isa = PBXGroup; - children = ( - 03CFEF241CD304B0006D2DA5 /* Info.plist */, - A7B463201C3DA73300048423 /* PPOTDevice.m */, - A7B463221C3DA73300048423 /* PPOTEncryptionHelper.m */, - A7B463241C3DA73300048423 /* PPOTJSONHelper.m */, - A7B463261C3DA73300048423 /* PPOTMacros.m */, - A7B463281C3DA73300048423 /* PPOTPinnedCertificates.m */, - A7B4632A1C3DA73300048423 /* PPOTSimpleKeychain.m */, - A7B4632C1C3DA73300048423 /* PPOTString.m */, - A7B4632E1C3DA73300048423 /* PPOTTime.m */, - A7B463301C3DA73300048423 /* PPOTURLSession.m */, - 03CFEF251CD30B15006D2DA5 /* Public */, - ); - path = PayPalUtils; - sourceTree = ""; - }; - A7B4635C1C3DA7DF00048423 /* Public */ = { - isa = PBXGroup; - children = ( - A7B463631C3DBF5E00048423 /* PayPalDataCollector.h */, - A7B463641C3DBF5E00048423 /* PPDataCollector.h */, - ); - path = Public; - sourceTree = ""; - }; - A7C8230F1B4DAAFB009D45D6 /* Helpers */ = { - isa = PBXGroup; - children = ( - 848470E01BE816DF009B12AE /* BTFakeHTTP.h */, - 848470E11BE81893009B12AE /* BTFakeHTTP.m */, - A7D4630B1B4B16C100A09C46 /* BTHTTPTestProtocol.h */, - A7D4630C1B4B16C100A09C46 /* BTHTTPTestProtocol.m */, - A79AF9B31B56D67D007B1DF1 /* BTSpecDependencies.h */, - A7C8230C1B4DAAB2009D45D6 /* BTSpecHelper.h */, - A7C8230D1B4DAAB2009D45D6 /* BTSpecHelper.m */, - A734A98F1B87989400D2461B /* BTTestClientTokenFactory.h */, - A734A9901B87989400D2461B /* BTTestClientTokenFactory.m */, - 41D6E2A51B8D12CD00A3C2AE /* FakePayPalClasses.h */, - 41D6E2A61B8D12CD00A3C2AE /* FakePayPalClasses.m */, - A7B4AD561B4EFC76002FB23E /* MockAPIClient.swift */, - A7D6746C1B84073300ED6C00 /* MockDelegates.swift */, - ); - path = Helpers; - sourceTree = ""; - }; - A7C889751B5EF5DE007A0E9C /* BraintreeApplePay */ = { - isa = PBXGroup; - children = ( - 412FE0561B9799EE008AAABE /* BTApplePayClient_Internal.h */, - A7C8897D1B5EF62C007A0E9C /* BTApplePayClient.m */, - A7B1C14E1B66E46900ED063C /* BTConfiguration+ApplePay.m */, - A7C8897F1B5EF62C007A0E9C /* BTApplePayCardNonce.m */, - 41D6E2A81B8D242B00A3C2AE /* Public */, - ); - path = BraintreeApplePay; - sourceTree = ""; - }; - A7C889911B5F043B007A0E9C /* BraintreeCard */ = { - isa = PBXGroup; - children = ( - A7C8899E1B5F0471007A0E9C /* BTCard_Internal.h */, - A7C889A01B5F0471007A0E9C /* BTCard.m */, - 8498EC1A1BB46D4B007FFDEC /* BTCardClient_Internal.h */, - A7C8899D1B5F0471007A0E9C /* BTCardClient.m */, - A7C889D71B5F0ACB007A0E9C /* BTCardNonce_Internal.h */, - A7C889A21B5F0471007A0E9C /* BTCardNonce.m */, - A751CAAA1CAC464C008603E5 /* BTCardRequest.m */, - 41777D451B8D01510026F987 /* Public */, - ); - path = BraintreeCard; - sourceTree = ""; - }; - A7C889F01B5F0B30007A0E9C /* BraintreeVenmo */ = { - isa = PBXGroup; - children = ( - A7B1C1461B66D94600ED063C /* BTConfiguration+Venmo.m */, - 03D294FE1BE835C8004F90DA /* BTVenmoAccountNonce_Internal.h */, - A7F96D071B6043B7005A4A09 /* BTVenmoAccountNonce.m */, - A7F96D0A1B604C1C005A4A09 /* BTVenmoAppSwitchRequestURL.h */, - A7F96D0B1B604C1C005A4A09 /* BTVenmoAppSwitchRequestURL.m */, - A7F96D0C1B604C1C005A4A09 /* BTVenmoAppSwitchReturnURL.h */, - A7F96D0D1B604C1C005A4A09 /* BTVenmoAppSwitchReturnURL.m */, - A77AA2B51B61936A00217B73 /* BTVenmoDriver_Internal.h */, - A7C889FB1B5F0C00007A0E9C /* BTVenmoDriver.m */, - 41777D471B8D028C0026F987 /* Public */, - ); - path = BraintreeVenmo; - sourceTree = ""; - }; - B67F983B1D7622D9007C1903 /* Braintree-Dropin */ = { - isa = PBXGroup; - children = ( - ); - name = "Braintree-Dropin"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 2D941D351B59C76A0016EFB4 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D941D3B1B59C76A0016EFB4 /* BraintreePayPal.h in Headers */, - A7B1C14B1B66E11C00ED063C /* BTConfiguration+PayPal.h in Headers */, - 2D941D4C1B59C8E60016EFB4 /* BTPayPalAccountNonce.h in Headers */, - 2D941D431B59C8E60016EFB4 /* BTPayPalDriver_Internal.h in Headers */, - 2D941D411B59C8E60016EFB4 /* BTPayPalRequest.h in Headers */, - 2D941D441B59C8E60016EFB4 /* BTPayPalDriver.h in Headers */, - 2D941D4B1B59C8E60016EFB4 /* BTPayPalAccountNonce_Internal.h in Headers */, - A5F444AE1E89906700B2B4F7 /* BTPayPalCreditFinancing.h in Headers */, - 2D941D461B59C8E60016EFB4 /* BTPayPalRequestFactory.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D941D851B5D9E8C0016EFB4 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D941D911B5D9F200016EFB4 /* BTThreeDSecureAuthenticationViewController.h in Headers */, - 2D941D8B1B5D9E8C0016EFB4 /* Braintree3DSecure.h in Headers */, - A79C9C701BE17BC7007EAF73 /* BTThreeDSecureDriver_Internal.h in Headers */, - 2D941D991B5D9F200016EFB4 /* BTThreeDSecureResponse.h in Headers */, - 2D941D9F1B5D9F200016EFB4 /* BTThreeDSecureLocalizedString.h in Headers */, - 2D941D9B1B5D9F200016EFB4 /* BTThreeDSecureCardNonce.h in Headers */, - 2D941D951B5D9F200016EFB4 /* BTThreeDSecureErrors.h in Headers */, - 2D941D971B5D9F200016EFB4 /* BTThreeDSecureLookupResult.h in Headers */, - 2D941D9D1B5D9F200016EFB4 /* BTWebViewController.h in Headers */, - 2D941D931B5D9F200016EFB4 /* BTThreeDSecureDriver.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2DE12F061B59BE0100EA1BCF /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 2DE12F451B59C36900EA1BCF /* BTAPIClient_Internal.h in Headers */, - A7D674731B84FDB400ED6C00 /* BTClientToken.h in Headers */, - 2DE12F431B59C36900EA1BCF /* BTAnalyticsMetadata.h in Headers */, - A77346261B7AA4F10083EC8D /* BTErrors.h in Headers */, - EEF1DE891E858A8D001BB924 /* BTEnums.h in Headers */, - 2DE12F581B59C36900EA1BCF /* BTPostalAddress.h in Headers */, - A7B1C1531B66F79900ED063C /* BTAppSwitch.h in Headers */, - A7B1C1431B66B3D000ED063C /* BTConfiguration.h in Headers */, - 2DE12F541B59C36900EA1BCF /* BTLogger_Internal.h in Headers */, - 2DE12F501B59C36900EA1BCF /* BTJSON.h in Headers */, - 2DE12F461B59C36900EA1BCF /* BTAPIClient.h in Headers */, - 2DE12F5A1B59C36900EA1BCF /* BTPaymentMethodNonce.h in Headers */, - 2DE12F521B59C36900EA1BCF /* BTKeychain.h in Headers */, - 418456E81BE42F1600C32391 /* BTViewControllerPresentingDelegate.h in Headers */, - 415924B41BA0F2D800C095F6 /* BTPaymentMethodNonceParser.h in Headers */, - 2DE12F551B59C36900EA1BCF /* BTLogger.h in Headers */, - A7C889F91B5F0B6A007A0E9C /* Braintree-Version.h in Headers */, - 2DE12F421B59C36900EA1BCF /* BraintreeCore.h in Headers */, - A74BF1C51C57F25F0049E149 /* BTAnalyticsService.h in Headers */, - 2DE12F4A1B59C36900EA1BCF /* BTClientMetadata.h in Headers */, - A77346301B7BB1A70083EC8D /* BTTokenizationService.h in Headers */, - 2DE12F4C1B59C36900EA1BCF /* BTHTTP.h in Headers */, - A71754301BDEF1EC00002676 /* BTURLUtils.h in Headers */, - 2DE12F481B59C36900EA1BCF /* BTAPIPinnedCertificates.h in Headers */, - 2DE12F4E1B59C36900EA1BCF /* BTHTTPErrors.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4164B99F1C9B658E006AE861 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 41472F971CB6D53400AFA75C /* BTConfiguration+UnionPay.h in Headers */, - 4164B9B01C9B6690006AE861 /* BraintreeUnionPay.h in Headers */, - 4164B9BA1C9B6988006AE861 /* BTCardClient+UnionPay.h in Headers */, - A774265A1CA207AE003CACBA /* BTCardCapabilities.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7EDE475E1CD2C3D00005E22B /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 03CFEF321CD30B15006D2DA5 /* PPOTJSONHelper.h in Headers */, - 03CFEF361CD30B15006D2DA5 /* PPOTString.h in Headers */, - 03CFEF391CD30B15006D2DA5 /* PPOTVersion.h in Headers */, - 03CFEF381CD30B15006D2DA5 /* PPOTURLSession.h in Headers */, - 03CFEF351CD30B15006D2DA5 /* PPOTSimpleKeychain.h in Headers */, - 03CFEF3B1CD30C28006D2DA5 /* PayPalUtils.h in Headers */, - 03CFEF311CD30B15006D2DA5 /* PPOTEncryptionHelper.h in Headers */, - 03CFEF331CD30B15006D2DA5 /* PPOTMacros.h in Headers */, - 03CFEF341CD30B15006D2DA5 /* PPOTPinnedCertificates.h in Headers */, - 03CFEF301CD30B15006D2DA5 /* PPOTDevice.h in Headers */, - 03CFEF371CD30B15006D2DA5 /* PPOTTime.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A50C3B6C1C1A29C500612D90 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - A7B462651C3C967400048423 /* PPOTAppSwitchResponse.h in Headers */, - A7B4626B1C3C967400048423 /* PPOTCheckoutSwitchRequest.h in Headers */, - A7B4626C1C3C967400048423 /* PPOTCore_Internal.h in Headers */, - A7B4626A1C3C967400048423 /* PPOTCheckoutRequest_Internal.h in Headers */, - A7B462731C3C967400048423 /* PPOTRequest_Internal.h in Headers */, - A50C3B981C1A2AD700612D90 /* PPOTCore.h in Headers */, - A76B99421C3F00AC00A584F6 /* PPDefaultConfigurationJSON.h in Headers */, - A76B99431C3F00AC00A584F6 /* PPFPTIData.h in Headers */, - A76B99441C3F00AC00A584F6 /* PPFPTITracker.h in Headers */, - A76B99451C3F00AC00A584F6 /* PPOTAnalyticsDefines.h in Headers */, - A76B99461C3F00AC00A584F6 /* PPOTAnalyticsTracker.h in Headers */, - A7B4626F1C3C967400048423 /* PPOTOAuth2AppSwitchRequest.h in Headers */, - A7B462691C3C967400048423 /* PPOTCheckoutBrowserSwitchRequest.h in Headers */, - A7B462741C3C967400048423 /* PPOTSwitchRequest.h in Headers */, - A7B462681C3C967400048423 /* PPOTCheckoutAppSwitchRequest.h in Headers */, - A7B4626D1C3C967400048423 /* PPOTResult_Internal.h in Headers */, - A50C3B991C1A2AD700612D90 /* PPOTResult.h in Headers */, - A50C3B9A1C1A2AD700612D90 /* PPOTRequest.h in Headers */, - A7B4638B1C3DCEAD00048423 /* PayPalOneTouch.h in Headers */, - A7B462671C3C967400048423 /* PPOTAuthorizationRequest_Internal.h in Headers */, - A7B462661C3C967400048423 /* PPOTAppSwitchUtil.h in Headers */, - A7B462701C3C967400048423 /* PPOTOAuth2BrowserSwitchRequest.h in Headers */, - A7B462711C3C967400048423 /* PPOTOAuth2SwitchRequest.h in Headers */, - A7B462721C3C967400048423 /* PPOTPersistentRequestData.h in Headers */, - A7B462641C3C967400048423 /* PPOTConfiguration.h in Headers */, - A7B4626E1C3C967400048423 /* PPOTError.h in Headers */, - A50C3B9B1C1A2AD700612D90 /* PPOTRequestFactory.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A76D7BFD1BB1CAB00000FA6A /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - A76D7C201BB1CBD50000FA6A /* BraintreeDataCollector.h in Headers */, - B61F67801CE4C20F0051A3BD /* BTConfiguration+DataCollector.h in Headers */, - A76D7C211BB1CBD50000FA6A /* BTDataCollector.h in Headers */, - A51527331D9C3DC600FF3F77 /* KDataCollector.h in Headers */, - 413CDF4F1C779ED400B89FCA /* BTDataCollector_Internal.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A77344F41B7A93A10083EC8D /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - A77345A31B7A93D00083EC8D /* BTUIPaymentButtonCollectionViewCell.h in Headers */, - 41913D9F1BB9D504004EF1BB /* BTUIPaymentOptionType.h in Headers */, - A77345C81B7A93D00083EC8D /* BTUIVenmoButton.h in Headers */, - A77345991B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationView.h in Headers */, - A77345E81B7A93D00083EC8D /* BTUIVisaVectorArtView.h in Headers */, - A77345BE1B7A93D00083EC8D /* BTUICoinbaseButton.h in Headers */, - A73012831BEBE0C50074C118 /* BTPaymentButton_Internal.h in Headers */, - A77345A71B7A93D00083EC8D /* BTUIFormField.h in Headers */, - 41913DA01BB9D504004EF1BB /* BTUIThemedView.h in Headers */, - A77345AA1B7A93D00083EC8D /* BTUIScrollView.h in Headers */, - A77345B01B7A93D00083EC8D /* BTUIVectorArtView.h in Headers */, - A78422731C98920500D3EBFF /* BTUIUnionPayVectorArtView.h in Headers */, - A77345AC1B7A93D00083EC8D /* BTUITextField.h in Headers */, - A77345B41B7A93D00083EC8D /* BTUICardExpiryField.h in Headers */, - A77345CE1B7A93D00083EC8D /* BTUICoinbaseMonogramCardView.h in Headers */, - A77345DC1B7A93D00083EC8D /* BTUIMaestroVectorArtView.h in Headers */, - A70241B91C598BA200875DB8 /* BTUIPayPalWordmarkVectorArtView.h in Headers */, - A773459B1B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationViewController.h in Headers */, - A77346121B7A9E340083EC8D /* BTDropInContentView.h in Headers */, - A77345B21B7A93D00083EC8D /* BTUICardCvvField.h in Headers */, - A77345D41B7A93D00083EC8D /* BTUICVVFrontVectorArtView.h in Headers */, - A77345D61B7A93D00083EC8D /* BTUIDinersClubVectorArtView.h in Headers */, - A77345891B7A93D00083EC8D /* BTUILocalizedString.h in Headers */, - A773461A1B7A9E340083EC8D /* BTDropInUtil.h in Headers */, - A77345921B7A93D00083EC8D /* BTUIUtil.h in Headers */, - A77345BC1B7A93D00083EC8D /* BTUICardHint.h in Headers */, - A77346201B7A9E340083EC8D /* BTDropInLocalizedString.h in Headers */, - A77345E41B7A93D00083EC8D /* BTUIUnknownCardVectorArtView.h in Headers */, - A77346141B7A9E340083EC8D /* BTDropInErrorAlert.h in Headers */, - A773458E1B7A93D00083EC8D /* BTUICardExpiryFormat.h in Headers */, - A77345971B7A93D00083EC8D /* UIColor+BTUI.h in Headers */, - A77345CC1B7A93D00083EC8D /* BTUICardVectorArtView.h in Headers */, - A77345A91B7A93D00083EC8D /* BTUIFormField_Protected.h in Headers */, - A773459D1B7A93D00083EC8D /* BTUIViewUtil.h in Headers */, - A77345BA1B7A93D00083EC8D /* BTUICardFormView.h in Headers */, - A773459F1B7A93D00083EC8D /* BTUIHorizontalButtonStackCollectionViewFlowLayout.h in Headers */, - A77345A11B7A93D00083EC8D /* BTUIHorizontalButtonStackSeparatorLineView.h in Headers */, - A77345A51B7A93D00083EC8D /* BTUIFloatLabel.h in Headers */, - A77345C41B7A93D00083EC8D /* BTUIPayPalButton.h in Headers */, - A7ECA5E51BEBD34100437A4F /* BTDropInViewController_Internal.h in Headers */, - A77345DE1B7A93D00083EC8D /* BTUIMasterCardVectorArtView.h in Headers */, - A773461C1B7A9E340083EC8D /* BTDropInViewController.h in Headers */, - A77345E61B7A93D00083EC8D /* BTUIVenmoWordmarkVectorArtView.h in Headers */, - A77345E01B7A93D00083EC8D /* BTUIPayPalMonogramCardView.h in Headers */, - A7F17A001BE98E1E00E91646 /* BTPaymentRequest.h in Headers */, - A77345CA1B7A93D00083EC8D /* BTUIAmExVectorArtView.h in Headers */, - A70241BD1C5A9A2F00875DB8 /* BTUIPayPalCompactButton.h in Headers */, - A773458C1B7A93D00083EC8D /* BTUICardExpirationValidator.h in Headers */, - A77345901B7A93D00083EC8D /* BTUICardType.h in Headers */, - A77345C01B7A93D00083EC8D /* BTUICTAControl.h in Headers */, - A77345C21B7A93D00083EC8D /* BTUIPaymentMethodView.h in Headers */, - A773461E1B7A9E340083EC8D /* BTPaymentButton.h in Headers */, - A77345D81B7A93D00083EC8D /* BTUIDiscoverVectorArtView.h in Headers */, - A77345D21B7A93D00083EC8D /* BTUICVVBackVectorArtView.h in Headers */, - 4107EB231C88C75000F32D81 /* BTUICardPhoneNumberField.h in Headers */, - A77346181B7A9E340083EC8D /* BTDropInSelectPaymentMethodViewController.h in Headers */, - A77344FA1B7A93A10083EC8D /* BraintreeUI.h in Headers */, - 035945571BE96345002116BB /* BTUIVenmoMonogramCardView.h in Headers */, - A77345B61B7A93D00083EC8D /* BTUICardNumberField.h in Headers */, - A77345E21B7A93D00083EC8D /* BTUIPayPalWordmarkCompactVectorArtView.h in Headers */, - A77345B81B7A93D00083EC8D /* BTUICardPostalCodeField.h in Headers */, - A77345DA1B7A93D00083EC8D /* BTUIJCBVectorArtView.h in Headers */, - A77345D01B7A93D00083EC8D /* BTUICoinbaseWordmarkVectorArtView.h in Headers */, - A77345C61B7A93D00083EC8D /* BTUISummaryView.h in Headers */, - A77345951B7A93D00083EC8D /* BTUI.h in Headers */, - A77346161B7A9E340083EC8D /* BTDropInErrorState.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A77AA2991B618C7700217B73 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - A77AA2AD1B618CFB00217B73 /* BTVenmoAccountNonce.h in Headers */, - A7B1C1471B66D94600ED063C /* BTConfiguration+Venmo.h in Headers */, - A77AA2AB1B618CFB00217B73 /* BTVenmoDriver.h in Headers */, - A77AA2A81B618CFB00217B73 /* BTVenmoAppSwitchReturnURL.h in Headers */, - 03D294FF1BE835C8004F90DA /* BTVenmoAccountNonce_Internal.h in Headers */, - A77AA2B61B61936A00217B73 /* BTVenmoDriver_Internal.h in Headers */, - A77AA2A61B618CFB00217B73 /* BTVenmoAppSwitchRequestURL.h in Headers */, - A77AA2AA1B618CFB00217B73 /* BraintreeVenmo.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7B462F31C3D9C2200048423 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - A7B463661C3DBF5E00048423 /* PPDataCollector.h in Headers */, - A79BB5BF1CE501D500CC6F0E /* PPDataCollector_Internal.h in Headers */, - A7B462FB1C3D9C2200048423 /* PPRCClientMetadataIDProvider.h in Headers */, - A7B463651C3DBF5E00048423 /* PayPalDataCollector.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7C889711B5EF5DE007A0E9C /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - A7C889801B5EF62C007A0E9C /* BTApplePayClient.h in Headers */, - A7B1C14F1B66E46900ED063C /* BTConfiguration+ApplePay.h in Headers */, - 412FE0571B9799EE008AAABE /* BTApplePayClient_Internal.h in Headers */, - A7C889821B5EF62C007A0E9C /* BTApplePayCardNonce.h in Headers */, - A7C889871B5EF65C007A0E9C /* BraintreeApplePay.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7C8898D1B5F043B007A0E9C /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 8498EC1B1BB46D4B007FFDEC /* BTCardClient_Internal.h in Headers */, - A751CAAF1CAC4667008603E5 /* BTCardRequest.h in Headers */, - A7C889AA1B5F04AE007A0E9C /* BraintreeCard.h in Headers */, - A7C889D81B5F0ACB007A0E9C /* BTCardNonce_Internal.h in Headers */, - A7C889A81B5F0471007A0E9C /* BTCardNonce.h in Headers */, - A7C889A51B5F0471007A0E9C /* BTCard_Internal.h in Headers */, - A7C889A31B5F0471007A0E9C /* BTCardClient.h in Headers */, - A7C889A61B5F0471007A0E9C /* BTCard.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 03F8B2651C23976000FD184B /* UITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 03F8B26F1C23976100FD184B /* Build configuration list for PBXNativeTarget "UITests" */; - buildPhases = ( - 03F8B2621C23976000FD184B /* Sources */, - 03F8B2631C23976000FD184B /* Frameworks */, - 03F8B2641C23976000FD184B /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - A7B4623E1C3C742900048423 /* PBXTargetDependency */, - ); - name = UITests; - productName = UITests; - productReference = 03F8B2661C23976000FD184B /* UITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; - 16CD2E9B1B4077FB00E68495 /* UnitTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 16CD2EA61B4077FC00E68495 /* Build configuration list for PBXNativeTarget "UnitTests" */; - buildPhases = ( - 80EBDB0F9969F80778684056 /* [CP] Check Pods Manifest.lock */, - 5E3DE597128C5D51E21FDBB5 /* [CP] Check Pods Manifest.lock */, - 16CD2E981B4077FB00E68495 /* Sources */, - 16CD2E991B4077FB00E68495 /* Frameworks */, - 16CD2E9A1B4077FB00E68495 /* Resources */, - 1AF31FFFC68A150437CF69D5 /* [CP] Embed Pods Frameworks */, - F178B60F8BB314C6327E6297 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - 03CFEF3D1CD31242006D2DA5 /* PBXTargetDependency */, - 4169A8F01CAB10600051DDAF /* PBXTargetDependency */, - A5D3A5A11C20BEDC003A25A1 /* PBXTargetDependency */, - 841CDCC41BCDBC6100A06B21 /* PBXTargetDependency */, - 41E3B35C1BA386DE0081824E /* PBXTargetDependency */, - 2D941D671B5D6C940016EFB4 /* PBXTargetDependency */, - A77AA2A51B618CB300217B73 /* PBXTargetDependency */, - A7C88A281B5F109B007A0E9C /* PBXTargetDependency */, - A7C88A2A1B5F109B007A0E9C /* PBXTargetDependency */, - 2D941DA21B5D9F470016EFB4 /* PBXTargetDependency */, - 2D941D631B5D6C850016EFB4 /* PBXTargetDependency */, - 41BC343B1BF69D3700161106 /* PBXTargetDependency */, - ); - name = UnitTests; - productName = "Braintree Unit Tests"; - productReference = 16CD2E9C1B4077FB00E68495 /* UnitTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 2D941D371B59C76A0016EFB4 /* BraintreePayPal */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2D941D3D1B59C76A0016EFB4 /* Build configuration list for PBXNativeTarget "BraintreePayPal" */; - buildPhases = ( - 2D941D331B59C76A0016EFB4 /* Sources */, - 2D941D341B59C76A0016EFB4 /* Frameworks */, - 2D941D351B59C76A0016EFB4 /* Headers */, - 2D941D361B59C76A0016EFB4 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 2D941D5A1B5D5F140016EFB4 /* PBXTargetDependency */, - A50C3BD11C1B454100612D90 /* PBXTargetDependency */, - ); - name = BraintreePayPal; - productName = BraintreePayPal; - productReference = 2D941D381B59C76A0016EFB4 /* BraintreePayPal.framework */; - productType = "com.apple.product-type.framework"; - }; - 2D941D871B5D9E8C0016EFB4 /* Braintree3DSecure */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2D941D8F1B5D9E8C0016EFB4 /* Build configuration list for PBXNativeTarget "Braintree3DSecure" */; - buildPhases = ( - 2D941D831B5D9E8C0016EFB4 /* Sources */, - 2D941D841B5D9E8C0016EFB4 /* Frameworks */, - 2D941D851B5D9E8C0016EFB4 /* Headers */, - 2D941D861B5D9E8C0016EFB4 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - A7B4630C1C3DA21200048423 /* PBXTargetDependency */, - 2D941DA51B5D9F790016EFB4 /* PBXTargetDependency */, - ); - name = Braintree3DSecure; - productName = Braintree3DSecure; - productReference = 2D941D881B5D9E8C0016EFB4 /* Braintree3DSecure.framework */; - productType = "com.apple.product-type.framework"; - }; - 2DE12F081B59BE0100EA1BCF /* BraintreeCore */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2DE12F101B59BE0100EA1BCF /* Build configuration list for PBXNativeTarget "BraintreeCore" */; - buildPhases = ( - 2DE12F041B59BE0100EA1BCF /* Sources */, - 2DE12F051B59BE0100EA1BCF /* Frameworks */, - 2DE12F061B59BE0100EA1BCF /* Headers */, - 2DE12F071B59BE0100EA1BCF /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = BraintreeCore; - productName = BraintreeCore; - productReference = 2DE12F091B59BE0100EA1BCF /* BraintreeCore.framework */; - productType = "com.apple.product-type.framework"; - }; - 4164B9951C9B658E006AE861 /* BraintreeUnionPay */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4164B9A91C9B658E006AE861 /* Build configuration list for PBXNativeTarget "BraintreeUnionPay" */; - buildPhases = ( - 4164B9981C9B658E006AE861 /* Sources */, - 4164B99D1C9B658E006AE861 /* Frameworks */, - 4164B99F1C9B658E006AE861 /* Headers */, - 4164B9A81C9B658E006AE861 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 4164B9B31C9B68D2006AE861 /* PBXTargetDependency */, - 4164B9961C9B658E006AE861 /* PBXTargetDependency */, - ); - name = BraintreeUnionPay; - productName = BraintreeCard; - productReference = 4164B9AC1C9B658E006AE861 /* BraintreeUnionPay.framework */; - productType = "com.apple.product-type.framework"; - }; - 417404481BB084D3008A5DEA /* Braintree */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4174044F1BB084D3008A5DEA /* Build configuration list for PBXNativeTarget "Braintree" */; - buildPhases = ( - 417404451BB084D3008A5DEA /* Sources */, - 417404461BB084D3008A5DEA /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - A7B4625F1C3C941D00048423 /* PBXTargetDependency */, - A7B462611C3C941D00048423 /* PBXTargetDependency */, - ); - name = Braintree; - productName = Braintree; - productReference = 417404491BB084D3008A5DEA /* libBraintree.a */; - productType = "com.apple.product-type.library.static"; - }; - 7EDE474C1CD2C3D00005E22B /* PayPalUtils */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7EDE476D1CD2C3D00005E22B /* Build configuration list for PBXNativeTarget "PayPalUtils" */; - buildPhases = ( - 7EDE474D1CD2C3D00005E22B /* Sources */, - 7EDE47581CD2C3D00005E22B /* Frameworks */, - 7EDE475E1CD2C3D00005E22B /* Headers */, - 7EDE476C1CD2C3D00005E22B /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PayPalUtils; - productName = PayPalRisk; - productReference = 7EDE47701CD2C3D00005E22B /* PayPalUtils.framework */; - productType = "com.apple.product-type.framework"; - }; - A50C3AD41C19F00600612D90 /* PayPalOneTouch-StaticLibrary */ = { - isa = PBXNativeTarget; - buildConfigurationList = A50C3ADB1C19F00600612D90 /* Build configuration list for PBXNativeTarget "PayPalOneTouch-StaticLibrary" */; - buildPhases = ( - A50C3AD11C19F00600612D90 /* Sources */, - A50C3AD21C19F00600612D90 /* Frameworks */, - A50C3AD31C19F00600612D90 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - A50C3BB41C1A322800612D90 /* PBXTargetDependency */, - ); - name = "PayPalOneTouch-StaticLibrary"; - productName = PayPalOneTouch; - productReference = A50C3AD51C19F00600612D90 /* libPayPalOneTouch-StaticLibrary.a */; - productType = "com.apple.product-type.library.static"; - }; - A50C3B041C19F55C00612D90 /* PayPalDataCollector-StaticLibrary */ = { - isa = PBXNativeTarget; - buildConfigurationList = A50C3B0B1C19F55C00612D90 /* Build configuration list for PBXNativeTarget "PayPalDataCollector-StaticLibrary" */; - buildPhases = ( - A50C3B011C19F55C00612D90 /* Sources */, - A50C3B021C19F55C00612D90 /* Frameworks */, - A50C3B031C19F55C00612D90 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "PayPalDataCollector-StaticLibrary"; - productName = PayPalRisk; - productReference = A50C3B051C19F55C00612D90 /* libPayPalDataCollector-StaticLibrary.a */; - productType = "com.apple.product-type.library.static"; - }; - A50C3B6E1C1A29C500612D90 /* PayPalOneTouch */ = { - isa = PBXNativeTarget; - buildConfigurationList = A50C3B741C1A29C500612D90 /* Build configuration list for PBXNativeTarget "PayPalOneTouch" */; - buildPhases = ( - A50C3B6A1C1A29C500612D90 /* Sources */, - A50C3B6B1C1A29C500612D90 /* Frameworks */, - A50C3B6C1C1A29C500612D90 /* Headers */, - A50C3B6D1C1A29C500612D90 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 7EDE47751CD2C5520005E22B /* PBXTargetDependency */, - 41D54D2F1C7F97680051C96B /* PBXTargetDependency */, - A7B463091C3D9FEE00048423 /* PBXTargetDependency */, - ); - name = PayPalOneTouch; - productName = PayPalOneTouch; - productReference = A50C3B6F1C1A29C500612D90 /* PayPalOneTouch.framework */; - productType = "com.apple.product-type.framework"; - }; - A76B198A1B79707700452CFA /* Demo */ = { - isa = PBXNativeTarget; - buildConfigurationList = A76B19A11B79707700452CFA /* Build configuration list for PBXNativeTarget "Demo" */; - buildPhases = ( - 813FB4CFB8D5035A45483333 /* [CP] Check Pods Manifest.lock */, - 81778A4B594659FDC565260B /* [CP] Check Pods Manifest.lock */, - A76B19871B79707700452CFA /* Sources */, - A76B19881B79707700452CFA /* Frameworks */, - A76B19891B79707700452CFA /* Resources */, - 413533751BF6C7290005D1BA /* Embed Frameworks */, - BB509ACD43F858A5E24B8434 /* [CP] Embed Pods Frameworks */, - 0E3747A662347DB932BAAA8A /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - 03EF62091DB4A90C004F4090 /* PBXTargetDependency */, - 03EF620D1DB4A90C004F4090 /* PBXTargetDependency */, - 03EF62111DB4A90C004F4090 /* PBXTargetDependency */, - 03EF62151DB4A90C004F4090 /* PBXTargetDependency */, - 03EF62191DB4A90C004F4090 /* PBXTargetDependency */, - 03EF621D1DB4A90C004F4090 /* PBXTargetDependency */, - 03EF62211DB4A90C004F4090 /* PBXTargetDependency */, - 03EF62251DB4A90C004F4090 /* PBXTargetDependency */, - 03EF62291DB4A90C004F4090 /* PBXTargetDependency */, - 03EF622D1DB4A90D004F4090 /* PBXTargetDependency */, - 03EF62311DB4A90D004F4090 /* PBXTargetDependency */, - 03EF62351DB4A90D004F4090 /* PBXTargetDependency */, - ); - name = Demo; - productName = "Braintree-Demo"; - productReference = A76B198B1B79707700452CFA /* Demo.app */; - productType = "com.apple.product-type.application"; - }; - A76D7BFF1BB1CAB00000FA6A /* BraintreeDataCollector */ = { - isa = PBXNativeTarget; - buildConfigurationList = A76D7C1B1BB1CAB00000FA6A /* Build configuration list for PBXNativeTarget "BraintreeDataCollector" */; - buildPhases = ( - A76D7BFB1BB1CAB00000FA6A /* Sources */, - A76D7BFC1BB1CAB00000FA6A /* Frameworks */, - A76D7BFD1BB1CAB00000FA6A /* Headers */, - A76D7BFE1BB1CAB00000FA6A /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 41935DE81D528B2C008D48FB /* PBXTargetDependency */, - ); - name = BraintreeDataCollector; - productName = BraintreeDataCollector; - productReference = A76D7C001BB1CAB00000FA6A /* BraintreeDataCollector.framework */; - productType = "com.apple.product-type.framework"; - }; - A77344F61B7A93A10083EC8D /* BraintreeUI */ = { - isa = PBXNativeTarget; - buildConfigurationList = A77345021B7A93A10083EC8D /* Build configuration list for PBXNativeTarget "BraintreeUI" */; - buildPhases = ( - A77344F21B7A93A10083EC8D /* Sources */, - A77344F31B7A93A10083EC8D /* Frameworks */, - A77344F41B7A93A10083EC8D /* Headers */, - A77344F51B7A93A10083EC8D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - A77120511CD95DCE0004FFD3 /* PBXTargetDependency */, - A7F570221C1611CA0007D018 /* PBXTargetDependency */, - ); - name = BraintreeUI; - productName = BraintreeUI; - productReference = A77344F71B7A93A10083EC8D /* BraintreeUI.framework */; - productType = "com.apple.product-type.framework"; - }; - A77AA29B1B618C7700217B73 /* BraintreeVenmo */ = { - isa = PBXNativeTarget; - buildConfigurationList = A77AA2A11B618C7700217B73 /* Build configuration list for PBXNativeTarget "BraintreeVenmo" */; - buildPhases = ( - A77AA2971B618C7700217B73 /* Sources */, - A77AA2981B618C7700217B73 /* Frameworks */, - A77AA2991B618C7700217B73 /* Headers */, - A77AA29A1B618C7700217B73 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - A77AA2B01B618D5000217B73 /* PBXTargetDependency */, - A77AA2B21B618D5000217B73 /* PBXTargetDependency */, - ); - name = BraintreeVenmo; - productName = BraintreeVenmo; - productReference = A77AA29C1B618C7700217B73 /* BraintreeVenmo.framework */; - productType = "com.apple.product-type.framework"; - }; - A7ABD6521B702FD800A1223C /* IntegrationTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = A7ABD65A1B702FD900A1223C /* Build configuration list for PBXNativeTarget "IntegrationTests" */; - buildPhases = ( - 629A6EB8F4008DD3E12EFAD8 /* [CP] Check Pods Manifest.lock */, - 32CEB6D06FB46630148B94D8 /* [CP] Check Pods Manifest.lock */, - A7ABD64F1B702FD800A1223C /* Sources */, - A7ABD6501B702FD800A1223C /* Frameworks */, - A7ABD6511B702FD800A1223C /* Resources */, - 07054A8503384810769C4EE6 /* [CP] Embed Pods Frameworks */, - 93625D459EC36DF23263ED6B /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - 4169A8F71CAB11280051DDAF /* PBXTargetDependency */, - 4169A8F31CAB11110051DDAF /* PBXTargetDependency */, - 4169A8F51CAB11110051DDAF /* PBXTargetDependency */, - A76D7C361BB318BF0000FA6A /* PBXTargetDependency */, - A71559561B72C2A7007DE6F0 /* PBXTargetDependency */, - A71559581B72C2A7007DE6F0 /* PBXTargetDependency */, - A715595E1B72C2A7007DE6F0 /* PBXTargetDependency */, - A71559601B72C2A7007DE6F0 /* PBXTargetDependency */, - A75319F21B715C4200E27B89 /* PBXTargetDependency */, - A7ABD6901B70304200A1223C /* PBXTargetDependency */, - A75538391B8BC9C600054F82 /* PBXTargetDependency */, - ); - name = IntegrationTests; - productName = BraintreeIntegrationTests; - productReference = A7ABD6531B702FD800A1223C /* IntegrationTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - A7B462E01C3D9C2200048423 /* PayPalDataCollector */ = { - isa = PBXNativeTarget; - buildConfigurationList = A7B463021C3D9C2200048423 /* Build configuration list for PBXNativeTarget "PayPalDataCollector" */; - buildPhases = ( - A7B462E11C3D9C2200048423 /* Sources */, - A7B462ED1C3D9C2200048423 /* Frameworks */, - A7B462F31C3D9C2200048423 /* Headers */, - A7B463011C3D9C2200048423 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 7EDE477B1CD2C5D00005E22B /* PBXTargetDependency */, - ); - name = PayPalDataCollector; - productName = PayPalRisk; - productReference = A7B463051C3D9C2200048423 /* PayPalDataCollector.framework */; - productType = "com.apple.product-type.framework"; - }; - A7C889731B5EF5DE007A0E9C /* BraintreeApplePay */ = { - isa = PBXNativeTarget; - buildConfigurationList = A7C889791B5EF5DE007A0E9C /* Build configuration list for PBXNativeTarget "BraintreeApplePay" */; - buildPhases = ( - A7C8896F1B5EF5DE007A0E9C /* Sources */, - A7C889701B5EF5DE007A0E9C /* Frameworks */, - A7C889711B5EF5DE007A0E9C /* Headers */, - A7C889721B5EF5DE007A0E9C /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - A7F5701E1C1611AA0007D018 /* PBXTargetDependency */, - ); - name = BraintreeApplePay; - productName = BraintreeApplePay; - productReference = A7C889741B5EF5DE007A0E9C /* BraintreeApplePay.framework */; - productType = "com.apple.product-type.framework"; - }; - A7C8898F1B5F043B007A0E9C /* BraintreeCard */ = { - isa = PBXNativeTarget; - buildConfigurationList = A7C889991B5F043B007A0E9C /* Build configuration list for PBXNativeTarget "BraintreeCard" */; - buildPhases = ( - A7C8898B1B5F043B007A0E9C /* Sources */, - A7C8898C1B5F043B007A0E9C /* Frameworks */, - A7C8898D1B5F043B007A0E9C /* Headers */, - A7C8898E1B5F043B007A0E9C /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - A7F570201C1611B20007D018 /* PBXTargetDependency */, - ); - name = BraintreeCard; - productName = BraintreeCard; - productReference = A7C889901B5F043B007A0E9C /* BraintreeCard.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - A75DA344192138F000D997A2 /* Project object */ = { - isa = PBXProject; - attributes = { - CLASSPREFIX = BT; - LastSwiftUpdateCheck = 0720; - LastUpgradeCheck = 0830; - TargetAttributes = { - 03F8B2651C23976000FD184B = { - CreatedOnToolsVersion = 7.2; - LastSwiftMigration = 0830; - TestTargetID = A76B198A1B79707700452CFA; - }; - 16CD2E9B1B4077FB00E68495 = { - CreatedOnToolsVersion = 7.0; - LastSwiftMigration = 0820; - TestTargetID = A76B198A1B79707700452CFA; - }; - 2D941D371B59C76A0016EFB4 = { - CreatedOnToolsVersion = 7.0; - }; - 2D941D871B5D9E8C0016EFB4 = { - CreatedOnToolsVersion = 7.0; - }; - 2DE12F081B59BE0100EA1BCF = { - CreatedOnToolsVersion = 7.0; - }; - 417404481BB084D3008A5DEA = { - CreatedOnToolsVersion = 7.0; - }; - A50C3AD41C19F00600612D90 = { - CreatedOnToolsVersion = 7.2; - }; - A50C3B041C19F55C00612D90 = { - CreatedOnToolsVersion = 7.2; - }; - A50C3B6E1C1A29C500612D90 = { - CreatedOnToolsVersion = 7.2; - }; - A76B198A1B79707700452CFA = { - CreatedOnToolsVersion = 7.0; - DevelopmentTeam = 43253H4X22; - SystemCapabilities = { - com.apple.OMC = { - enabled = 1; - }; - }; - }; - A76D7BFF1BB1CAB00000FA6A = { - CreatedOnToolsVersion = 7.0; - }; - A77344F61B7A93A10083EC8D = { - CreatedOnToolsVersion = 7.0; - }; - A77AA29B1B618C7700217B73 = { - CreatedOnToolsVersion = 7.0; - }; - A7ABD6521B702FD800A1223C = { - CreatedOnToolsVersion = 7.0; - TestTargetID = A76B198A1B79707700452CFA; - }; - A7C889731B5EF5DE007A0E9C = { - CreatedOnToolsVersion = 7.0; - }; - A7C8898F1B5F043B007A0E9C = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = A75DA347192138F000D997A2 /* Build configuration list for PBXProject "Braintree" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - en_US, - da_DK, - de_DE, - en_AU, - en_CA, - en_GB, - en_UK, - es_ES, - es_XC, - fr_CA, - fr_FR, - fr_XC, - he_IL, - it_IT, - nl_NL, - no_NO, - pl_PL, - pt_PT, - ru_RU, - sv_SE, - tr_TR, - zh_XC, - da, - de, - es, - fr, - he, - it, - nb, - nl, - pl, - pt, - ru, - sv, - tr, - "zh-Hans", - ); - mainGroup = A75DA343192138F000D997A2; - productRefGroup = A75DA3521921394200D997A2 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - A76B198A1B79707700452CFA /* Demo */, - A7ABD6521B702FD800A1223C /* IntegrationTests */, - 16CD2E9B1B4077FB00E68495 /* UnitTests */, - 417404481BB084D3008A5DEA /* Braintree */, - 2D941D871B5D9E8C0016EFB4 /* Braintree3DSecure */, - A7C889731B5EF5DE007A0E9C /* BraintreeApplePay */, - A7C8898F1B5F043B007A0E9C /* BraintreeCard */, - 2DE12F081B59BE0100EA1BCF /* BraintreeCore */, - A76D7BFF1BB1CAB00000FA6A /* BraintreeDataCollector */, - 2D941D371B59C76A0016EFB4 /* BraintreePayPal */, - A77AA29B1B618C7700217B73 /* BraintreeVenmo */, - A77344F61B7A93A10083EC8D /* BraintreeUI */, - 4164B9951C9B658E006AE861 /* BraintreeUnionPay */, - A50C3B041C19F55C00612D90 /* PayPalDataCollector-StaticLibrary */, - A7B462E01C3D9C2200048423 /* PayPalDataCollector */, - A50C3AD41C19F00600612D90 /* PayPalOneTouch-StaticLibrary */, - A50C3B6E1C1A29C500612D90 /* PayPalOneTouch */, - 7EDE474C1CD2C3D00005E22B /* PayPalUtils */, - 03F8B2651C23976000FD184B /* UITests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 03F8B2641C23976000FD184B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 16CD2E9A1B4077FB00E68495 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D941D361B59C76A0016EFB4 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D941D861B5D9E8C0016EFB4 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D941D901B5D9EB40016EFB4 /* Three-D-Secure.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2DE12F071B59BE0100EA1BCF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4164B9A81C9B658E006AE861 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7EDE476C1CD2C3D00005E22B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A50C3B6D1C1A29C500612D90 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A76B19891B79707700452CFA /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A76B1A1E1B79708A00452CFA /* BraintreeDemoCardTokenizationViewController.xib in Resources */, - A76B1A341B79708A00452CFA /* Main.strings in Resources */, - A76B1A2F1B79708A00452CFA /* Images.xcassets in Resources */, - A76B1A151B79708A00452CFA /* Settings.bundle in Resources */, - A76B1A131B79708A00452CFA /* Launch Screen.storyboard in Resources */, - A76B1A0B1B79708A00452CFA /* Braintree-Demo.entitlements in Resources */, - A76B1A2C1B79708A00452CFA /* UI.storyboard in Resources */, - A76B1A291B79708A00452CFA /* BraintreeDemoCreditCardEntryViewController.xib in Resources */, - A76B1A331B79708A00452CFA /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A76D7BFE1BB1CAB00000FA6A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A77344F51B7A93A10083EC8D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A77346221B7A9E340083EC8D /* Drop-In.strings in Resources */, - A773458B1B7A93D00083EC8D /* UI.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A77AA29A1B618C7700217B73 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7ABD6511B702FD800A1223C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A7ABD6881B702FF000A1223C /* good_site_key.pem in Resources */, - A7ABD6821B702FF000A1223C /* evil_site_cert.pem in Resources */, - A7ABD6891B702FF000A1223C /* good_site_request.pem in Resources */, - A7ABD6811B702FF000A1223C /* evil_root_key.pem in Resources */, - A7ABD6801B702FF000A1223C /* evil_root_cert.pem in Resources */, - A7ABD6851B702FF000A1223C /* good_root_cert.pem in Resources */, - A7ABD68A1B702FF000A1223C /* https_server.rb in Resources */, - A7ABD6861B702FF000A1223C /* good_root_key.pem in Resources */, - A7ABD6831B702FF000A1223C /* evil_site_key.pem in Resources */, - A7ABD6871B702FF000A1223C /* good_site_cert.pem in Resources */, - A7ABD68B1B702FF000A1223C /* make_certs.sh in Resources */, - A7ABD6841B702FF000A1223C /* evil_site_request.pem in Resources */, - A7ABD67E1B702FF000A1223C /* good_root_cert.der in Resources */, - A7ABD67F1B702FF000A1223C /* evil_root_cert.der in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7B463011C3D9C2200048423 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7C889721B5EF5DE007A0E9C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7C8898E1B5F043B007A0E9C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 07054A8503384810769C4EE6 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests-IntegrationTests/Pods-Tests-IntegrationTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 0E3747A662347DB932BAAA8A /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Demo/Pods-Demo-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 1AF31FFFC68A150437CF69D5 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests-UnitTests/Pods-Tests-UnitTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 32CEB6D06FB46630148B94D8 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 5E3DE597128C5D51E21FDBB5 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 629A6EB8F4008DD3E12EFAD8 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 80EBDB0F9969F80778684056 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 813FB4CFB8D5035A45483333 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 81778A4B594659FDC565260B /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 93625D459EC36DF23263ED6B /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests-IntegrationTests/Pods-Tests-IntegrationTests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - BB509ACD43F858A5E24B8434 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Demo/Pods-Demo-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - F178B60F8BB314C6327E6297 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Tests-UnitTests/Pods-Tests-UnitTests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 03F8B2621C23976000FD184B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 033800101C248B9C00CFF1D9 /* BraintreeDropInLegacy_UITests.swift in Sources */, - 0325AC241C289B5F00E90999 /* BraintreeThreeDSecure_UITests.swift in Sources */, - 0384E94D1C23BAFF001A3380 /* BraintreePayPal_UITests.swift in Sources */, - 0384E94F1C23C108001A3380 /* BTUITest.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 16CD2E981B4077FB00E68495 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 031B94CD1C3483E600F136C8 /* BTUICardExpiryFormatterSpec.m in Sources */, - 848470E21BE81893009B12AE /* BTFakeHTTP.m in Sources */, - A71F7DE71B6180A3005DA1B0 /* BTVenmoDriver_Tests.swift in Sources */, - 4149C91D1BA218830090665E /* BTPaymentMethodNonceParser_Tests.swift in Sources */, - 032C26881DDEEB5000BBC1C2 /* BTDropInUtil_Tests.swift in Sources */, - A7A6DD071B4308EB008857E1 /* BTPayPalDriver_Tests.swift in Sources */, - A74BCF031BE14C7000DC1CAE /* BTThreeDSecureDriver_Tests.swift in Sources */, - 031B94CC1C3482CC00F136C8 /* BTUICardExpirationValidatorSpec.m in Sources */, - A7AF0F601C20E80A00B3ADC6 /* BTThreeDSecureLookupResult_Tests.swift in Sources */, - A743CD211B449D8400757C9B /* BTAPIClient_Tests.m in Sources */, - 842B68F11BCF083E0039634F /* BTAPIClient_SwiftTests.swift in Sources */, - 031B94D11C34863200F136C8 /* BTUISpec.m in Sources */, - 031B94D01C3485ED00F136C8 /* EXPMatchers+haveKerning.m in Sources */, - A7E93E581B601EE900957223 /* BTURLUtils_Tests.swift in Sources */, - A7B462501C3C911200048423 /* PPOTConfigurationTest.m in Sources */, - A79AF9F31B56DB54007B1DF1 /* BTClientMetadataSpec.m in Sources */, - A7C823081B4DA9D7009D45D6 /* BTHTTPSpec.m in Sources */, - A71F7DE51B616BA0005DA1B0 /* BTVenmoAppSwitchURLSpec.m in Sources */, - 032D3A721C580B09000E5F6B /* PPDataCollectorTest.m in Sources */, - A7A094F61B8276E500D732CC /* BTCardNonce_Tests.swift in Sources */, - A7B7989C1C233C57001327FA /* BTConfiguration_Tests.swift in Sources */, - A7B4624D1C3C911200048423 /* PPOTAppSwitchUtilTest.m in Sources */, - A734A9911B87989400D2461B /* BTTestClientTokenFactory.m in Sources */, - A734A98E1B8797FD00D2461B /* BTClientTokenSpec.m in Sources */, - A7D6746D1B84073300ED6C00 /* MockDelegates.swift in Sources */, - A726BFE21B56D5E900B5C8F0 /* BTAnalyticsMetadataSpec.m in Sources */, - A7B798A01C238FC0001327FA /* BTTokenizationService_Tests.swift in Sources */, - A7D4630D1B4B16C100A09C46 /* BTHTTPTestProtocol.m in Sources */, - A7BC50BF1C29F6600024C870 /* BTDropInErrorState_Tests.m in Sources */, - A7B462591C3C911200048423 /* PPOTTimeTest.m in Sources */, - A7B4624A1C3C911200048423 /* PPOTAppSwitchResponseTest.m in Sources */, - 41D6E2A71B8D12CD00A3C2AE /* FakePayPalClasses.m in Sources */, - B67F983A1D762177007C1903 /* BTMacroTests.m in Sources */, - A79033981B45C968004C8234 /* BTCard_Tests.swift in Sources */, - A7AF0F621C222F9400B3ADC6 /* BTPaymentButton_Tests.swift in Sources */, - A7B462561C3C911200048423 /* PPOTErrorTest.m in Sources */, - 16CD2E9F1B4077FC00E68495 /* BTJSON_Tests.swift in Sources */, - 41B787BD1BAA20DB001AD351 /* BTDropInViewController_Tests.swift in Sources */, - A7CCE2AE1B67F26C006EA661 /* BTAppSwitch_Tests.swift in Sources */, - A71F7DE41B616BA0005DA1B0 /* BTVenmoAppSwitchReturnURLSpec.m in Sources */, - A5D3A5761C20975F003A25A1 /* PPFPTIDataTest.m in Sources */, - A7C8230E1B4DAAB2009D45D6 /* BTSpecHelper.m in Sources */, - A7B462531C3C911200048423 /* PPOTEncryptionTest.m in Sources */, - 031B94C41C34822800F136C8 /* BTUI_UIColor.m in Sources */, - 031B94CF1C34844700F136C8 /* BTUICardTypeSpec.m in Sources */, - A7B861BF1C24B19300A2422E /* BTVersion_Tests.swift in Sources */, - A7D64ABC1B4C93B6005168EF /* BTApplePay_Tests.swift in Sources */, - A75147E11B4217A00005BBBA /* BTCardClient_Tests.swift in Sources */, - A7B4AD571B4EFC76002FB23E /* MockAPIClient.swift in Sources */, - A7BC50BB1C29E4CD0024C870 /* BTLogger_Internal_Tests.m in Sources */, - 41F1D1FB1CAA005500DA34CB /* BTCardClient_UnionPayTests.swift in Sources */, - 844ED5E71BCC3F0B002B590C /* BTDataCollector_Tests.swift in Sources */, - A790339C1B45E16E004C8234 /* BTCard_Internal_Tests.m in Sources */, - A784965A1BD962260081531A /* BTCheckoutRequest_Tests.swift in Sources */, - A74BF1C81C57FBED0049E149 /* BTAnalyticsService_Tests.m in Sources */, - A5D3A5771C20975F003A25A1 /* PPFPTITrackerTest.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D941D331B59C76A0016EFB4 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A5FE18361E79B75500CBE9C7 /* BTPayPalCreditFinancingAmount.m in Sources */, - A7B1C14C1B66E11C00ED063C /* BTConfiguration+PayPal.m in Sources */, - A5FE18311E799EDF00CBE9C7 /* BTPayPalCreditFinancing.m in Sources */, - 2D941D451B59C8E60016EFB4 /* BTPayPalDriver.m in Sources */, - 2D941D421B59C8E60016EFB4 /* BTPayPalRequest.m in Sources */, - 2D941D4D1B59C8E60016EFB4 /* BTPayPalAccountNonce.m in Sources */, - 2D941D471B59C8E60016EFB4 /* BTPayPalRequestFactory.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D941D831B5D9E8C0016EFB4 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D941D961B5D9F200016EFB4 /* BTThreeDSecureErrors.m in Sources */, - 2D941DA01B5D9F200016EFB4 /* BTThreeDSecureLocalizedString.m in Sources */, - 2D941D981B5D9F200016EFB4 /* BTThreeDSecureLookupResult.m in Sources */, - 2D941D9C1B5D9F200016EFB4 /* BTThreeDSecureCardNonce.m in Sources */, - 2D941D941B5D9F200016EFB4 /* BTThreeDSecureDriver.m in Sources */, - 2D941D921B5D9F200016EFB4 /* BTThreeDSecureAuthenticationViewController.m in Sources */, - 2D941D9E1B5D9F200016EFB4 /* BTWebViewController.m in Sources */, - 2D941D9A1B5D9F200016EFB4 /* BTThreeDSecureResponse.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2DE12F041B59BE0100EA1BCF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2DE12F4F1B59C36900EA1BCF /* BTHTTPErrors.m in Sources */, - A7B1C1541B66F79900ED063C /* BTAppSwitch.m in Sources */, - 41211EF81BA0E45300DB1705 /* BTPaymentMethodNonce.m in Sources */, - 2DE12F531B59C36900EA1BCF /* BTKeychain.m in Sources */, - 2DE12F5C1B59C36900EA1BCF /* BTURLUtils.m in Sources */, - A74BF1C61C57F25F0049E149 /* BTAnalyticsService.m in Sources */, - A77346311B7BB1A70083EC8D /* BTTokenizationService.m in Sources */, - 2DE12F4D1B59C36900EA1BCF /* BTHTTP.m in Sources */, - 2DE12F511B59C36900EA1BCF /* BTJSON.m in Sources */, - 2DE12F561B59C36900EA1BCF /* BTLogger.m in Sources */, - 2DE12F591B59C36900EA1BCF /* BTPostalAddress.m in Sources */, - A77346241B7AA4D50083EC8D /* BTErrors.m in Sources */, - A7B1C1441B66B3D000ED063C /* BTConfiguration.m in Sources */, - 2DE12F491B59C36900EA1BCF /* BTAPIPinnedCertificates.m in Sources */, - 2DE12F441B59C36900EA1BCF /* BTAnalyticsMetadata.m in Sources */, - 415924B21BA0F2A900C095F6 /* BTPaymentMethodNonceParser.m in Sources */, - 2DE12F471B59C36900EA1BCF /* BTAPIClient.m in Sources */, - A7D674741B84FDB400ED6C00 /* BTClientToken.m in Sources */, - 2DE12F4B1B59C36900EA1BCF /* BTClientMetadata.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4164B9981C9B658E006AE861 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4164B9BB1C9B6988006AE861 /* BTCardClient+UnionPay.m in Sources */, - A77426581CA20793003CACBA /* BTCardCapabilities.m in Sources */, - 41472F951CB6D52200AFA75C /* BTConfiguration+UnionPay.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 417404451BB084D3008A5DEA /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4174052C1BB086B3008A5DEA /* BTUIDiscoverVectorArtView.m in Sources */, - 4174052E1BB086B3008A5DEA /* BTUIJCBVectorArtView.m in Sources */, - 417405301BB086B3008A5DEA /* BTUIMaestroVectorArtView.m in Sources */, - 417405321BB086B3008A5DEA /* BTUIMasterCardVectorArtView.m in Sources */, - 41472F941CB6D52200AFA75C /* BTConfiguration+UnionPay.m in Sources */, - 417405341BB086B3008A5DEA /* BTUIPayPalMonogramCardView.m in Sources */, - 417405361BB086B3008A5DEA /* BTUIPayPalWordmarkCompactVectorArtView.m in Sources */, - 417405381BB086B3008A5DEA /* BTUIUnknownCardVectorArtView.m in Sources */, - 4174053A1BB086B3008A5DEA /* BTUIVenmoWordmarkVectorArtView.m in Sources */, - 4174053C1BB086B3008A5DEA /* BTUIVisaVectorArtView.m in Sources */, - 0371D13D1CBECAEE006A0B5D /* BTUIPayPalCompactButton.m in Sources */, - 0371D13C1CBECACD006A0B5D /* BTUIPayPalWordmarkVectorArtView.m in Sources */, - 4174053E1BB086B3008A5DEA /* BTUIViewUtil.m in Sources */, - 417404D31BB0869C008A5DEA /* BTDropInLocalizedString.m in Sources */, - 417404D51BB0869C008A5DEA /* BTDropInContentView.m in Sources */, - A74BEE3F1C58005300DDAB52 /* BTAnalyticsService.m in Sources */, - 417404D71BB0869C008A5DEA /* BTDropInErrorAlert.m in Sources */, - 417404D91BB0869C008A5DEA /* BTDropInErrorState.m in Sources */, - 417404DB1BB0869C008A5DEA /* BTDropInSelectPaymentMethodViewController.m in Sources */, - 417404DD1BB0869C008A5DEA /* BTDropInUtil.m in Sources */, - 417404DE1BB0869C008A5DEA /* BTDropInViewController.m in Sources */, - 417404DF1BB0869C008A5DEA /* BTPaymentButton.m in Sources */, - 417404E11BB0869C008A5DEA /* BTUILocalizedString.m in Sources */, - 417404E31BB0869C008A5DEA /* BTUICardExpirationValidator.m in Sources */, - 417404E51BB0869C008A5DEA /* BTUICardExpiryFormat.m in Sources */, - 417404E71BB0869C008A5DEA /* BTUICardType.m in Sources */, - 417404E91BB0869C008A5DEA /* BTUIUtil.m in Sources */, - 417404F81BB0869C008A5DEA /* BTUI.m in Sources */, - 417404F91BB0869C008A5DEA /* UIColor+BTUI.m in Sources */, - 417404FB1BB0869C008A5DEA /* BTUIHorizontalButtonStackCollectionViewFlowLayout.m in Sources */, - 417404FD1BB0869C008A5DEA /* BTUIHorizontalButtonStackSeparatorLineView.m in Sources */, - 417404FF1BB0869C008A5DEA /* BTUIPaymentButtonCollectionViewCell.m in Sources */, - 417405011BB0869C008A5DEA /* BTUIFloatLabel.m in Sources */, - 417405031BB0869C008A5DEA /* BTUIFormField.m in Sources */, - 417405061BB0869C008A5DEA /* BTUIScrollView.m in Sources */, - 417405081BB0869C008A5DEA /* BTUITextField.m in Sources */, - 4174050A1BB0869C008A5DEA /* BTUIThemedView.m in Sources */, - A76D7C3A1BB31A2B0000FA6A /* BTDataCollector.m in Sources */, - 4174050C1BB0869C008A5DEA /* BTUIVectorArtView.m in Sources */, - A5FE18331E79A05D00CBE9C7 /* BTPayPalCreditFinancing.m in Sources */, - 4174050E1BB0869C008A5DEA /* BTUICardCvvField.m in Sources */, - 417405101BB0869C008A5DEA /* BTUICardExpiryField.m in Sources */, - 417405121BB0869D008A5DEA /* BTUICardNumberField.m in Sources */, - 417405141BB0869D008A5DEA /* BTUICardPostalCodeField.m in Sources */, - 417405151BB0869D008A5DEA /* BTUICardFormView.m in Sources */, - 417405161BB0869D008A5DEA /* BTUICTAControl.m in Sources */, - 417405171BB0869D008A5DEA /* BTUICardHint.m in Sources */, - 417405181BB0869D008A5DEA /* BTUICoinbaseButton.m in Sources */, - 417405191BB0869D008A5DEA /* BTUIPayPalButton.m in Sources */, - 4174051A1BB0869D008A5DEA /* BTUIPaymentMethodView.m in Sources */, - 4174051B1BB0869D008A5DEA /* BTUISummaryView.m in Sources */, - 4174051C1BB0869D008A5DEA /* BTUIVenmoButton.m in Sources */, - A774265B1CA207D2003CACBA /* BTCardCapabilities.m in Sources */, - 4174051E1BB0869D008A5DEA /* BTUIAmExVectorArtView.m in Sources */, - A751CAAC1CAC464C008603E5 /* BTCardRequest.m in Sources */, - 417405201BB0869D008A5DEA /* BTUICVVBackVectorArtView.m in Sources */, - 417405221BB0869D008A5DEA /* BTUICVVFrontVectorArtView.m in Sources */, - 46E2F0A01CF47D3300A5789D /* BTUIUnionPayVectorArtView.m in Sources */, - 41BC340D1BF695FC00161106 /* BTPaymentRequest.m in Sources */, - A5FE18351E79B75500CBE9C7 /* BTPayPalCreditFinancingAmount.m in Sources */, - 417405241BB0869D008A5DEA /* BTUICardVectorArtView.m in Sources */, - 417405261BB0869D008A5DEA /* BTUICoinbaseMonogramCardView.m in Sources */, - 417405281BB0869D008A5DEA /* BTUICoinbaseWordmarkVectorArtView.m in Sources */, - 4174052A1BB0869D008A5DEA /* BTUIDinersClubVectorArtView.m in Sources */, - 417404C71BB08658008A5DEA /* BTConfiguration+Venmo.m in Sources */, - 417404C91BB08658008A5DEA /* BTVenmoAppSwitchRequestURL.m in Sources */, - 417404CB1BB08658008A5DEA /* BTVenmoAppSwitchReturnURL.m in Sources */, - 417404CC1BB08658008A5DEA /* BTVenmoDriver.m in Sources */, - 417404CE1BB08658008A5DEA /* BTVenmoAccountNonce.m in Sources */, - 417404B71BB0864F008A5DEA /* BTConfiguration+PayPal.m in Sources */, - 417404B81BB0864F008A5DEA /* BTPayPalRequest.m in Sources */, - 417404B91BB0864F008A5DEA /* BTPayPalDriver.m in Sources */, - 417404BC1BB0864F008A5DEA /* BTPayPalRequestFactory.m in Sources */, - 417404BF1BB0864F008A5DEA /* BTPayPalAccountNonce.m in Sources */, - 4174047D1BB08629008A5DEA /* BTAnalyticsMetadata.m in Sources */, - 46E2F09F1CF47CF700A5789D /* BTUICardPhoneNumberField.m in Sources */, - 4174047F1BB08629008A5DEA /* BTAPIClient.m in Sources */, - 417404811BB08629008A5DEA /* BTAPIPinnedCertificates.m in Sources */, - 417404821BB08629008A5DEA /* BTAppSwitch.m in Sources */, - 417404831BB08629008A5DEA /* BTClientMetadata.m in Sources */, - 417404841BB08629008A5DEA /* BTClientToken.m in Sources */, - 417404851BB08629008A5DEA /* BTConfiguration.m in Sources */, - 417404871BB08629008A5DEA /* BTErrors.m in Sources */, - 4174048A1BB08629008A5DEA /* BTHTTP.m in Sources */, - 4174048B1BB08629008A5DEA /* BTHTTPErrors.m in Sources */, - 4174048C1BB08629008A5DEA /* BTJSON.m in Sources */, - 4174048E1BB08629008A5DEA /* BTKeychain.m in Sources */, - 417404901BB08629008A5DEA /* BTLogger.m in Sources */, - 417404911BB08629008A5DEA /* BTPostalAddress.m in Sources */, - 417404941BB08629008A5DEA /* BTPaymentMethodNonce.m in Sources */, - 417404951BB08629008A5DEA /* BTTokenizationService.m in Sources */, - 417404961BB08629008A5DEA /* BTPaymentMethodNonceParser.m in Sources */, - 413616EB1C1217F000D4C4A5 /* BTUIVenmoMonogramCardView.m in Sources */, - 417404971BB08629008A5DEA /* BTURLUtils.m in Sources */, - A5CEBBB11D8890A20064FD29 /* BTConfiguration+DataCollector.m in Sources */, - 417404741BB085F1008A5DEA /* BTCardClient.m in Sources */, - 417404751BB085F1008A5DEA /* BTCard.m in Sources */, - 4164B9C01C9B74D4006AE861 /* BTCardClient+UnionPay.m in Sources */, - 417404771BB085F1008A5DEA /* BTCardNonce.m in Sources */, - 4174046A1BB08530008A5DEA /* BTApplePayClient.m in Sources */, - 4174046C1BB08530008A5DEA /* BTConfiguration+ApplePay.m in Sources */, - 4174046D1BB08530008A5DEA /* BTApplePayCardNonce.m in Sources */, - 417404531BB08526008A5DEA /* BTThreeDSecureLocalizedString.m in Sources */, - 417404591BB08526008A5DEA /* BTThreeDSecureAuthenticationViewController.m in Sources */, - 4174045A1BB08526008A5DEA /* BTThreeDSecureDriver.m in Sources */, - 4174045B1BB08526008A5DEA /* BTThreeDSecureErrors.m in Sources */, - 4174045D1BB08526008A5DEA /* BTThreeDSecureLookupResult.m in Sources */, - 4174045F1BB08526008A5DEA /* BTThreeDSecureResponse.m in Sources */, - 417404601BB08526008A5DEA /* BTThreeDSecureCardNonce.m in Sources */, - 417404641BB08526008A5DEA /* BTWebViewController.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7EDE474D1CD2C3D00005E22B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7EDE474E1CD2C3D00005E22B /* PPOTSimpleKeychain.m in Sources */, - 7EDE474F1CD2C3D00005E22B /* PPOTDevice.m in Sources */, - 7EDE47501CD2C3D00005E22B /* PPOTString.m in Sources */, - 7EDE47511CD2C3D00005E22B /* PPOTEncryptionHelper.m in Sources */, - 7EDE47521CD2C3D00005E22B /* PPOTJSONHelper.m in Sources */, - 7EDE47531CD2C3D00005E22B /* PPOTURLSession.m in Sources */, - 7EDE47541CD2C3D00005E22B /* PPOTPinnedCertificates.m in Sources */, - 7EDE47561CD2C3D00005E22B /* PPOTMacros.m in Sources */, - 7EDE47571CD2C3D00005E22B /* PPOTTime.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A50C3AD11C19F00600612D90 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A50C3B581C1A1D1A00612D90 /* PPFPTIData.m in Sources */, - A50C3B591C1A1D1A00612D90 /* PPFPTITracker.m in Sources */, - A50C3B4C1C1A1CFC00612D90 /* PPOTRequest.m in Sources */, - A50C3B571C1A1CFC00612D90 /* PPOTAnalyticsTracker.m in Sources */, - A76B99351C3EF8E400A584F6 /* PPOTJSONHelper.m in Sources */, - A76B99371C3EF8E900A584F6 /* PPOTMacros.m in Sources */, - A50C3B3A1C1A1CDD00612D90 /* PPOTConfiguration.m in Sources */, - A50C3B3B1C1A1CDD00612D90 /* PPOTAppSwitchResponse.m in Sources */, - A76B993D1C3EF8F000A584F6 /* PPOTPinnedCertificates.m in Sources */, - A50C3B3C1C1A1CDD00612D90 /* PPOTAppSwitchUtil.m in Sources */, - A50C3B3D1C1A1CDD00612D90 /* PPOTCheckoutAppSwitchRequest.m in Sources */, - A50C3B3E1C1A1CDD00612D90 /* PPOTCheckoutBrowserSwitchRequest.m in Sources */, - A76B99311C3EF8DC00A584F6 /* PPOTDevice.m in Sources */, - A50C3B3F1C1A1CDD00612D90 /* PPOTCheckoutSwitchRequest.m in Sources */, - A50C3B401C1A1CDD00612D90 /* PPOTError.m in Sources */, - A50C3B411C1A1CDD00612D90 /* PPOTOAuth2AppSwitchRequest.m in Sources */, - A76B993E1C3EF8F000A584F6 /* PPOTSimpleKeychain.m in Sources */, - A76B993F1C3EF8F000A584F6 /* PPOTString.m in Sources */, - A50C3B421C1A1CDD00612D90 /* PPOTOAuth2BrowserSwitchRequest.m in Sources */, - A50C3B431C1A1CDD00612D90 /* PPOTOAuth2SwitchRequest.m in Sources */, - A76B99331C3EF8E000A584F6 /* PPOTEncryptionHelper.m in Sources */, - A50C3B441C1A1CDD00612D90 /* PPOTPersistentRequestData.m in Sources */, - A50C3B451C1A1CDD00612D90 /* PPOTSwitchRequest.m in Sources */, - A50C3B461C1A1CDD00612D90 /* PPOTAuthorizationRequest.m in Sources */, - A76B99411C3EF8F000A584F6 /* PPOTURLSession.m in Sources */, - A50C3B471C1A1CDD00612D90 /* PPOTBillingAgreementRequest.m in Sources */, - A50C3B481C1A1CDD00612D90 /* PPOTCheckoutRequest.m in Sources */, - A50C3B491C1A1CDD00612D90 /* PPOTCore.m in Sources */, - A50C3B4A1C1A1CDD00612D90 /* PPOTResult.m in Sources */, - A50C3B4B1C1A1CDD00612D90 /* PPOTRequestFactory.m in Sources */, - A76B99401C3EF8F000A584F6 /* PPOTTime.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A50C3B011C19F55C00612D90 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A76B99341C3EF8E300A584F6 /* PPOTJSONHelper.m in Sources */, - A76B993A1C3EF8EF00A584F6 /* PPOTString.m in Sources */, - A76B993B1C3EF8EF00A584F6 /* PPOTTime.m in Sources */, - A76B993C1C3EF8EF00A584F6 /* PPOTURLSession.m in Sources */, - A76B99321C3EF8DF00A584F6 /* PPOTEncryptionHelper.m in Sources */, - A76B99391C3EF8EF00A584F6 /* PPOTSimpleKeychain.m in Sources */, - A76B99381C3EF8EF00A584F6 /* PPOTPinnedCertificates.m in Sources */, - A76B99301C3EF8DB00A584F6 /* PPOTDevice.m in Sources */, - A76B99361C3EF8E800A584F6 /* PPOTMacros.m in Sources */, - A76B99191C3EF48600A584F6 /* PPDataCollector.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A50C3B6A1C1A29C500612D90 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A50C3B961C1A2AB000612D90 /* PPOTRequestFactory.m in Sources */, - A50C3B771C1A2A3E00612D90 /* PPOTConfiguration.m in Sources */, - A50C3B781C1A2A3E00612D90 /* PPOTAppSwitchResponse.m in Sources */, - A50C3B791C1A2A3E00612D90 /* PPOTAppSwitchUtil.m in Sources */, - A50C3B7A1C1A2A3E00612D90 /* PPOTCheckoutAppSwitchRequest.m in Sources */, - A50C3B7B1C1A2A3E00612D90 /* PPOTCheckoutBrowserSwitchRequest.m in Sources */, - A50C3B7C1C1A2A3E00612D90 /* PPOTCheckoutSwitchRequest.m in Sources */, - A50C3B7D1C1A2A3E00612D90 /* PPOTError.m in Sources */, - A50C3B7E1C1A2A3E00612D90 /* PPOTOAuth2AppSwitchRequest.m in Sources */, - A50C3B7F1C1A2A3E00612D90 /* PPOTOAuth2BrowserSwitchRequest.m in Sources */, - A50C3B801C1A2A3E00612D90 /* PPOTOAuth2SwitchRequest.m in Sources */, - A50C3B811C1A2A3E00612D90 /* PPOTPersistentRequestData.m in Sources */, - A50C3B821C1A2A3E00612D90 /* PPOTSwitchRequest.m in Sources */, - A50C3B831C1A2A3E00612D90 /* PPOTAuthorizationRequest.m in Sources */, - A50C3B841C1A2A3E00612D90 /* PPOTBillingAgreementRequest.m in Sources */, - A50C3B851C1A2A3E00612D90 /* PPOTCheckoutRequest.m in Sources */, - A50C3B861C1A2A3E00612D90 /* PPOTCore.m in Sources */, - A50C3B871C1A2A3E00612D90 /* PPOTResult.m in Sources */, - A50C3B881C1A2A3E00612D90 /* PPOTRequest.m in Sources */, - A50C3B931C1A2A3E00612D90 /* PPFPTIData.m in Sources */, - A50C3B941C1A2A3E00612D90 /* PPFPTITracker.m in Sources */, - A50C3B951C1A2A3E00612D90 /* PPOTAnalyticsTracker.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A76B19871B79707700452CFA /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A76B1A101B79708A00452CFA /* BraintreeDemoDemoContainmentViewController.m in Sources */, - A7A9C6D61B83CC6F00F5EBBA /* BraintreeDemoCardTokenizationViewController.m in Sources */, - A7A9C6D51B83C98000F5EBBA /* BraintreeDemoCustomVenmoButtonViewController.m in Sources */, - 03B368B31CAD95D300CDFC9C /* BraintreeDemoDropInLegacyViewController.m in Sources */, - A76B1A121B79708A00452CFA /* BraintreeDemoSlideNavigationController.m in Sources */, - A7A094FF1B839CC900D732CC /* BraintreeDemoApplePayPassKitViewController.m in Sources */, - A7A094FB1B8295E000D732CC /* BraintreeDemoCustomPayPalButtonViewController.m in Sources */, - A7A094FD1B829ACC00D732CC /* BraintreeDemoPayPalOneTimePaymentViewController.m in Sources */, - A7D674691B83E7F000ED6C00 /* BraintreeDemoCustomMultiPayViewController.m in Sources */, - A76B1A351B79708A00452CFA /* main.m in Sources */, - A76B1A111B79708A00452CFA /* BraintreeDemoIntegrationViewController.m in Sources */, - A73088361B86872C009487BA /* BraintreeDemoThreeDSecureViewController.m in Sources */, - A5FE183D1E79D5E700CBE9C7 /* BraintreeDemoPayPalCreditPaymentViewController.m in Sources */, - A76B1A0F1B79708A00452CFA /* BraintreeDemoAppDelegate.m in Sources */, - A7A094F81B828F4600D732CC /* BraintreeDemoBTUIPayPalButtonViewController.m in Sources */, - A76B1A141B79708A00452CFA /* BraintreeDemoSettings.m in Sources */, - A76B1A301B79708A00452CFA /* BraintreeDemoMerchantAPI.m in Sources */, - A51527381D9EEFE800FF3F77 /* BraintreeDemoDropInViewController.m in Sources */, - 03F54E121C499E1200F11033 /* BraintreeDemoPayPalForceFuturePaymentViewController.m in Sources */, - A7A9C6D01B83C6D600F5EBBA /* BraintreeDemoBTUIVenmoButtonViewController.m in Sources */, - A77524611CC99BA3002E4E62 /* BraintreeDemoUnionPayViewController.m in Sources */, - A7A094FC1B82983300D732CC /* BraintreeDemoPayPalScopesViewController.m in Sources */, - A7A094FA1B82919300D732CC /* BraintreeDemoPaymentButtonBaseViewController.m in Sources */, - A76B1A0C1B79708A00452CFA /* BraintreeDemoBaseViewController.m in Sources */, - A76D7C2F1BB217EE0000FA6A /* BraintreeDemoBTDataCollectorViewController.m in Sources */, - A7334F251BA38B0C0083C411 /* BraintreeDemoPayPalBillingAgreementViewController.m in Sources */, - A7D674681B83E5A100ED6C00 /* BraintreeDemoBTPaymentButtonViewController.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A76D7BFB1BB1CAB00000FA6A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A76D7C231BB1CBDC0000FA6A /* BTDataCollector.m in Sources */, - B61F67811CE4C20F0051A3BD /* BTConfiguration+DataCollector.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A77344F21B7A93A10083EC8D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A70241BA1C598BA200875DB8 /* BTUIPayPalWordmarkVectorArtView.m in Sources */, - A77345DB1B7A93D00083EC8D /* BTUIJCBVectorArtView.m in Sources */, - A773461F1B7A9E340083EC8D /* BTPaymentButton.m in Sources */, - A77345C91B7A93D00083EC8D /* BTUIVenmoButton.m in Sources */, - A773458F1B7A93D00083EC8D /* BTUICardExpiryFormat.m in Sources */, - A77346131B7A9E340083EC8D /* BTDropInContentView.m in Sources */, - A77345911B7A93D00083EC8D /* BTUICardType.m in Sources */, - A77345D31B7A93D00083EC8D /* BTUICVVBackVectorArtView.m in Sources */, - A77345931B7A93D00083EC8D /* BTUIUtil.m in Sources */, - A77345D91B7A93D00083EC8D /* BTUIDiscoverVectorArtView.m in Sources */, - A70241BE1C5A9A2F00875DB8 /* BTUIPayPalCompactButton.m in Sources */, - A77345C31B7A93D00083EC8D /* BTUIPaymentMethodView.m in Sources */, - A77345B91B7A93D00083EC8D /* BTUICardPostalCodeField.m in Sources */, - A77345E51B7A93D00083EC8D /* BTUIUnknownCardVectorArtView.m in Sources */, - 035945581BE96345002116BB /* BTUIVenmoMonogramCardView.m in Sources */, - A77345C51B7A93D00083EC8D /* BTUIPayPalButton.m in Sources */, - A773459E1B7A93D00083EC8D /* BTUIViewUtil.m in Sources */, - A77345B51B7A93D00083EC8D /* BTUICardExpiryField.m in Sources */, - A773461B1B7A9E340083EC8D /* BTDropInUtil.m in Sources */, - A77346171B7A9E340083EC8D /* BTDropInErrorState.m in Sources */, - A77345E91B7A93D00083EC8D /* BTUIVisaVectorArtView.m in Sources */, - A77345AD1B7A93D00083EC8D /* BTUITextField.m in Sources */, - A77345D71B7A93D00083EC8D /* BTUIDinersClubVectorArtView.m in Sources */, - A77345E11B7A93D00083EC8D /* BTUIPayPalMonogramCardView.m in Sources */, - A77345BF1B7A93D00083EC8D /* BTUICoinbaseButton.m in Sources */, - A77345AF1B7A93D00083EC8D /* BTUIThemedView.m in Sources */, - A77345A41B7A93D00083EC8D /* BTUIPaymentButtonCollectionViewCell.m in Sources */, - A77345A81B7A93D00083EC8D /* BTUIFormField.m in Sources */, - A77345C71B7A93D00083EC8D /* BTUISummaryView.m in Sources */, - A77345CF1B7A93D00083EC8D /* BTUICoinbaseMonogramCardView.m in Sources */, - A77346211B7A9E340083EC8D /* BTDropInLocalizedString.m in Sources */, - A77346151B7A9E340083EC8D /* BTDropInErrorAlert.m in Sources */, - A773461D1B7A9E340083EC8D /* BTDropInViewController.m in Sources */, - A77345BB1B7A93D00083EC8D /* BTUICardFormView.m in Sources */, - A77345D11B7A93D00083EC8D /* BTUICoinbaseWordmarkVectorArtView.m in Sources */, - A773458A1B7A93D00083EC8D /* BTUILocalizedString.m in Sources */, - A77345B71B7A93D00083EC8D /* BTUICardNumberField.m in Sources */, - A78422741C98920500D3EBFF /* BTUIUnionPayVectorArtView.m in Sources */, - A7F179FE1BE98E0E00E91646 /* BTPaymentRequest.m in Sources */, - A77345AB1B7A93D00083EC8D /* BTUIScrollView.m in Sources */, - A77345D51B7A93D00083EC8D /* BTUICVVFrontVectorArtView.m in Sources */, - A77345981B7A93D00083EC8D /* UIColor+BTUI.m in Sources */, - A77345A21B7A93D00083EC8D /* BTUIHorizontalButtonStackSeparatorLineView.m in Sources */, - A77345B31B7A93D00083EC8D /* BTUICardCvvField.m in Sources */, - A773458D1B7A93D00083EC8D /* BTUICardExpirationValidator.m in Sources */, - A77345C11B7A93D00083EC8D /* BTUICTAControl.m in Sources */, - A77346191B7A9E340083EC8D /* BTDropInSelectPaymentMethodViewController.m in Sources */, - A77345CB1B7A93D00083EC8D /* BTUIAmExVectorArtView.m in Sources */, - A77345961B7A93D00083EC8D /* BTUI.m in Sources */, - A77345CD1B7A93D00083EC8D /* BTUICardVectorArtView.m in Sources */, - A77345BD1B7A93D00083EC8D /* BTUICardHint.m in Sources */, - A77345DF1B7A93D00083EC8D /* BTUIMasterCardVectorArtView.m in Sources */, - A77345A61B7A93D00083EC8D /* BTUIFloatLabel.m in Sources */, - A77345E31B7A93D00083EC8D /* BTUIPayPalWordmarkCompactVectorArtView.m in Sources */, - A77345DD1B7A93D00083EC8D /* BTUIMaestroVectorArtView.m in Sources */, - A77345E71B7A93D00083EC8D /* BTUIVenmoWordmarkVectorArtView.m in Sources */, - A773459A1B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationView.m in Sources */, - A773459C1B7A93D00083EC8D /* BTMockApplePayPaymentAuthorizationViewController.m in Sources */, - A77345A01B7A93D00083EC8D /* BTUIHorizontalButtonStackCollectionViewFlowLayout.m in Sources */, - 4107EB241C88C75000F32D81 /* BTUICardPhoneNumberField.m in Sources */, - A77345B11B7A93D00083EC8D /* BTUIVectorArtView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A77AA2971B618C7700217B73 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A77AA2A71B618CFB00217B73 /* BTVenmoAppSwitchRequestURL.m in Sources */, - A77AA2AC1B618CFB00217B73 /* BTVenmoDriver.m in Sources */, - A77AA2A91B618CFB00217B73 /* BTVenmoAppSwitchReturnURL.m in Sources */, - A77AA2AE1B618CFB00217B73 /* BTVenmoAccountNonce.m in Sources */, - A7B1C1481B66D94600ED063C /* BTConfiguration+Venmo.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7ABD64F1B702FD800A1223C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A7ABD68E1B702FF000A1223C /* BraintreeCard_IntegrationTests.m in Sources */, - A7CB42D31B73E629002CCFDD /* BraintreePayPal_IntegrationTests.m in Sources */, - A71559421B729297007DE6F0 /* BTIntegrationTestsHelper.m in Sources */, - A7ABD6791B702FF000A1223C /* BTAPIClient_IntegrationTests.m in Sources */, - A78BF95D1CC6F32100DED8AA /* BraintreeUnionPay_IntegrationTests.m in Sources */, - A71559481B72B085007DE6F0 /* BraintreeApplePay_IntegrationTests.m in Sources */, - A7ABD67C1B702FF000A1223C /* BTHTTPSSLPinning_IntegrationTests.m in Sources */, - A76D7C341BB21CE90000FA6A /* BraintreeDataCollector_IntegrationTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7B462E11C3D9C2200048423 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A7B463601C3DBEFE00048423 /* PPDataCollector.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7C8896F1B5EF5DE007A0E9C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A7C889831B5EF62C007A0E9C /* BTApplePayCardNonce.m in Sources */, - A7B1C1501B66E46900ED063C /* BTConfiguration+ApplePay.m in Sources */, - A7C889811B5EF62C007A0E9C /* BTApplePayClient.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A7C8898B1B5F043B007A0E9C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A7C889A71B5F0471007A0E9C /* BTCard.m in Sources */, - A7C889A91B5F0471007A0E9C /* BTCardNonce.m in Sources */, - A751CAAD1CAC464C008603E5 /* BTCardRequest.m in Sources */, - A7C889A41B5F0471007A0E9C /* BTCardClient.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 03CFEF3D1CD31242006D2DA5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 7EDE474C1CD2C3D00005E22B /* PayPalUtils */; - targetProxy = 03CFEF3C1CD31242006D2DA5 /* PBXContainerItemProxy */; - }; - 03EF62091DB4A90C004F4090 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2DE12F081B59BE0100EA1BCF /* BraintreeCore */; - targetProxy = 03EF62081DB4A90C004F4090 /* PBXContainerItemProxy */; - }; - 03EF620D1DB4A90C004F4090 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2D941D371B59C76A0016EFB4 /* BraintreePayPal */; - targetProxy = 03EF620C1DB4A90C004F4090 /* PBXContainerItemProxy */; - }; - 03EF62111DB4A90C004F4090 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2D941D871B5D9E8C0016EFB4 /* Braintree3DSecure */; - targetProxy = 03EF62101DB4A90C004F4090 /* PBXContainerItemProxy */; - }; - 03EF62151DB4A90C004F4090 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A7C889731B5EF5DE007A0E9C /* BraintreeApplePay */; - targetProxy = 03EF62141DB4A90C004F4090 /* PBXContainerItemProxy */; - }; - 03EF62191DB4A90C004F4090 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A7C8898F1B5F043B007A0E9C /* BraintreeCard */; - targetProxy = 03EF62181DB4A90C004F4090 /* PBXContainerItemProxy */; - }; - 03EF621D1DB4A90C004F4090 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A77AA29B1B618C7700217B73 /* BraintreeVenmo */; - targetProxy = 03EF621C1DB4A90C004F4090 /* PBXContainerItemProxy */; - }; - 03EF62211DB4A90C004F4090 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A77344F61B7A93A10083EC8D /* BraintreeUI */; - targetProxy = 03EF62201DB4A90C004F4090 /* PBXContainerItemProxy */; - }; - 03EF62251DB4A90C004F4090 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A76D7BFF1BB1CAB00000FA6A /* BraintreeDataCollector */; - targetProxy = 03EF62241DB4A90C004F4090 /* PBXContainerItemProxy */; - }; - 03EF62291DB4A90C004F4090 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A50C3B6E1C1A29C500612D90 /* PayPalOneTouch */; - targetProxy = 03EF62281DB4A90C004F4090 /* PBXContainerItemProxy */; - }; - 03EF622D1DB4A90D004F4090 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A7B462E01C3D9C2200048423 /* PayPalDataCollector */; - targetProxy = 03EF622C1DB4A90D004F4090 /* PBXContainerItemProxy */; - }; - 03EF62311DB4A90D004F4090 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 7EDE474C1CD2C3D00005E22B /* PayPalUtils */; - targetProxy = 03EF62301DB4A90D004F4090 /* PBXContainerItemProxy */; - }; - 03EF62351DB4A90D004F4090 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4164B9951C9B658E006AE861 /* BraintreeUnionPay */; - targetProxy = 03EF62341DB4A90D004F4090 /* PBXContainerItemProxy */; - }; - 2D941D5A1B5D5F140016EFB4 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2DE12F081B59BE0100EA1BCF /* BraintreeCore */; - targetProxy = 2D941D591B5D5F140016EFB4 /* PBXContainerItemProxy */; - }; - 2D941D631B5D6C850016EFB4 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2D941D371B59C76A0016EFB4 /* BraintreePayPal */; - targetProxy = 2D941D621B5D6C850016EFB4 /* PBXContainerItemProxy */; - }; - 2D941D671B5D6C940016EFB4 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2DE12F081B59BE0100EA1BCF /* BraintreeCore */; - targetProxy = 2D941D661B5D6C940016EFB4 /* PBXContainerItemProxy */; - }; - 2D941DA21B5D9F470016EFB4 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2D941D871B5D9E8C0016EFB4 /* Braintree3DSecure */; - targetProxy = 2D941DA11B5D9F470016EFB4 /* PBXContainerItemProxy */; - }; - 2D941DA51B5D9F790016EFB4 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2DE12F081B59BE0100EA1BCF /* BraintreeCore */; - targetProxy = 2D941DA41B5D9F790016EFB4 /* PBXContainerItemProxy */; - }; - 4164B9961C9B658E006AE861 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2DE12F081B59BE0100EA1BCF /* BraintreeCore */; - targetProxy = 4164B9971C9B658E006AE861 /* PBXContainerItemProxy */; - }; - 4164B9B31C9B68D2006AE861 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A7C8898F1B5F043B007A0E9C /* BraintreeCard */; - targetProxy = 4164B9B21C9B68D2006AE861 /* PBXContainerItemProxy */; - }; - 4169A8F01CAB10600051DDAF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4164B9951C9B658E006AE861 /* BraintreeUnionPay */; - targetProxy = 4169A8EF1CAB10600051DDAF /* PBXContainerItemProxy */; - }; - 4169A8F31CAB11110051DDAF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A77344F61B7A93A10083EC8D /* BraintreeUI */; - targetProxy = 4169A8F21CAB11110051DDAF /* PBXContainerItemProxy */; - }; - 4169A8F51CAB11110051DDAF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4164B9951C9B658E006AE861 /* BraintreeUnionPay */; - targetProxy = 4169A8F41CAB11110051DDAF /* PBXContainerItemProxy */; - }; - 4169A8F71CAB11280051DDAF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A50C3B6E1C1A29C500612D90 /* PayPalOneTouch */; - targetProxy = 4169A8F61CAB11280051DDAF /* PBXContainerItemProxy */; - }; - 41935DE81D528B2C008D48FB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2DE12F081B59BE0100EA1BCF /* BraintreeCore */; - targetProxy = 41935DE71D528B2C008D48FB /* PBXContainerItemProxy */; - }; - 41BC343B1BF69D3700161106 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A76B198A1B79707700452CFA /* Demo */; - targetProxy = 41BC343A1BF69D3700161106 /* PBXContainerItemProxy */; - }; - 41D54D2F1C7F97680051C96B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2DE12F081B59BE0100EA1BCF /* BraintreeCore */; - targetProxy = 41D54D2E1C7F97680051C96B /* PBXContainerItemProxy */; - }; - 41E3B35C1BA386DE0081824E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A77344F61B7A93A10083EC8D /* BraintreeUI */; - targetProxy = 41E3B35B1BA386DE0081824E /* PBXContainerItemProxy */; - }; - 7EDE47751CD2C5520005E22B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 7EDE474C1CD2C3D00005E22B /* PayPalUtils */; - targetProxy = 7EDE47741CD2C5520005E22B /* PBXContainerItemProxy */; - }; - 7EDE477B1CD2C5D00005E22B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 7EDE474C1CD2C3D00005E22B /* PayPalUtils */; - targetProxy = 7EDE477A1CD2C5D00005E22B /* PBXContainerItemProxy */; - }; - 841CDCC41BCDBC6100A06B21 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A76D7BFF1BB1CAB00000FA6A /* BraintreeDataCollector */; - targetProxy = 841CDCC31BCDBC6100A06B21 /* PBXContainerItemProxy */; - }; - A50C3BB41C1A322800612D90 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A50C3B041C19F55C00612D90 /* PayPalDataCollector-StaticLibrary */; - targetProxy = A50C3BB31C1A322800612D90 /* PBXContainerItemProxy */; - }; - A50C3BD11C1B454100612D90 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A50C3B6E1C1A29C500612D90 /* PayPalOneTouch */; - targetProxy = A50C3BD01C1B454100612D90 /* PBXContainerItemProxy */; - }; - A5D3A5A11C20BEDC003A25A1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A50C3B6E1C1A29C500612D90 /* PayPalOneTouch */; - targetProxy = A5D3A5A01C20BEDC003A25A1 /* PBXContainerItemProxy */; - }; - A71559561B72C2A7007DE6F0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2D941D871B5D9E8C0016EFB4 /* Braintree3DSecure */; - targetProxy = A71559551B72C2A7007DE6F0 /* PBXContainerItemProxy */; - }; - A71559581B72C2A7007DE6F0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A7C889731B5EF5DE007A0E9C /* BraintreeApplePay */; - targetProxy = A70FADC11C03BE7A002752C9 /* PBXContainerItemProxy */; - }; - A715595E1B72C2A7007DE6F0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2D941D371B59C76A0016EFB4 /* BraintreePayPal */; - targetProxy = A715595D1B72C2A7007DE6F0 /* PBXContainerItemProxy */; - }; - A71559601B72C2A7007DE6F0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A77AA29B1B618C7700217B73 /* BraintreeVenmo */; - targetProxy = A715595F1B72C2A7007DE6F0 /* PBXContainerItemProxy */; - }; - A75319F21B715C4200E27B89 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A7C8898F1B5F043B007A0E9C /* BraintreeCard */; - targetProxy = A75319F11B715C4200E27B89 /* PBXContainerItemProxy */; - }; - A75538391B8BC9C600054F82 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A76B198A1B79707700452CFA /* Demo */; - targetProxy = A75538381B8BC9C600054F82 /* PBXContainerItemProxy */; - }; - A76D7C361BB318BF0000FA6A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A76D7BFF1BB1CAB00000FA6A /* BraintreeDataCollector */; - targetProxy = A76D7C351BB318BF0000FA6A /* PBXContainerItemProxy */; - }; - A77120511CD95DCE0004FFD3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A7C8898F1B5F043B007A0E9C /* BraintreeCard */; - targetProxy = A77120501CD95DCE0004FFD3 /* PBXContainerItemProxy */; - }; - A77AA2A51B618CB300217B73 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A77AA29B1B618C7700217B73 /* BraintreeVenmo */; - targetProxy = A77AA2A41B618CB300217B73 /* PBXContainerItemProxy */; - }; - A77AA2B01B618D5000217B73 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A7C8898F1B5F043B007A0E9C /* BraintreeCard */; - targetProxy = A77AA2AF1B618D5000217B73 /* PBXContainerItemProxy */; - }; - A77AA2B21B618D5000217B73 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2DE12F081B59BE0100EA1BCF /* BraintreeCore */; - targetProxy = A77AA2B11B618D5000217B73 /* PBXContainerItemProxy */; - }; - A7ABD6901B70304200A1223C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2DE12F081B59BE0100EA1BCF /* BraintreeCore */; - targetProxy = A7ABD68F1B70304200A1223C /* PBXContainerItemProxy */; - }; - A7B4623E1C3C742900048423 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A76B198A1B79707700452CFA /* Demo */; - targetProxy = A7B4623D1C3C742900048423 /* PBXContainerItemProxy */; - }; - A7B4625F1C3C941D00048423 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A50C3AD41C19F00600612D90 /* PayPalOneTouch-StaticLibrary */; - targetProxy = A7B4625E1C3C941D00048423 /* PBXContainerItemProxy */; - }; - A7B462611C3C941D00048423 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A50C3B041C19F55C00612D90 /* PayPalDataCollector-StaticLibrary */; - targetProxy = A7B462601C3C941D00048423 /* PBXContainerItemProxy */; - }; - A7B463091C3D9FEE00048423 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A7B462E01C3D9C2200048423 /* PayPalDataCollector */; - targetProxy = A7B463081C3D9FEE00048423 /* PBXContainerItemProxy */; - }; - A7B4630C1C3DA21200048423 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A7C8898F1B5F043B007A0E9C /* BraintreeCard */; - targetProxy = A7B4630B1C3DA21200048423 /* PBXContainerItemProxy */; - }; - A7C88A281B5F109B007A0E9C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A7C889731B5EF5DE007A0E9C /* BraintreeApplePay */; - targetProxy = A7C88A271B5F109B007A0E9C /* PBXContainerItemProxy */; - }; - A7C88A2A1B5F109B007A0E9C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = A7C8898F1B5F043B007A0E9C /* BraintreeCard */; - targetProxy = A7C88A291B5F109B007A0E9C /* PBXContainerItemProxy */; - }; - A7F5701E1C1611AA0007D018 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2DE12F081B59BE0100EA1BCF /* BraintreeCore */; - targetProxy = A7F5701D1C1611AA0007D018 /* PBXContainerItemProxy */; - }; - A7F570201C1611B20007D018 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2DE12F081B59BE0100EA1BCF /* BraintreeCore */; - targetProxy = A7F5701F1C1611B20007D018 /* PBXContainerItemProxy */; - }; - A7F570221C1611CA0007D018 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2DE12F081B59BE0100EA1BCF /* BraintreeCore */; - targetProxy = A7F570211C1611CA0007D018 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - A76B1A061B79708A00452CFA /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - A76B1A071B79708A00452CFA /* en */, - ); - name = InfoPlist.strings; - path = .; - sourceTree = ""; - }; - A76B1A081B79708A00452CFA /* Main.strings */ = { - isa = PBXVariantGroup; - children = ( - A76B1A091B79708A00452CFA /* en */, - ); - name = Main.strings; - path = .; - sourceTree = ""; - }; - A77345091B7A93D00083EC8D /* UI.strings */ = { - isa = PBXVariantGroup; - children = ( - A773450A1B7A93D00083EC8D /* da */, - A773450B1B7A93D00083EC8D /* de */, - A773450C1B7A93D00083EC8D /* en */, - A773450D1B7A93D00083EC8D /* en_AU */, - A773450E1B7A93D00083EC8D /* en_CA */, - A773450F1B7A93D00083EC8D /* en_GB */, - A77345101B7A93D00083EC8D /* es */, - A77345111B7A93D00083EC8D /* es_ES */, - A77345121B7A93D00083EC8D /* fr */, - A77345131B7A93D00083EC8D /* fr_CA */, - A77345141B7A93D00083EC8D /* fr_FR */, - A77345151B7A93D00083EC8D /* he */, - A77345161B7A93D00083EC8D /* it */, - A77345171B7A93D00083EC8D /* nb */, - A77345181B7A93D00083EC8D /* nl */, - A77345191B7A93D00083EC8D /* pl */, - A773451A1B7A93D00083EC8D /* pt */, - A773451B1B7A93D00083EC8D /* ru */, - A773451C1B7A93D00083EC8D /* sv */, - A773451D1B7A93D00083EC8D /* tr */, - A773451E1B7A93D00083EC8D /* zh-Hans */, - ); - name = UI.strings; - path = .; - sourceTree = ""; - }; - A77345FC1B7A9E340083EC8D /* Drop-In.strings */ = { - isa = PBXVariantGroup; - children = ( - A77345FD1B7A9E340083EC8D /* da */, - A77345FE1B7A9E340083EC8D /* de */, - A77345FF1B7A9E340083EC8D /* en */, - A77346001B7A9E340083EC8D /* en_AU */, - A77346011B7A9E340083EC8D /* en_CA */, - A77346021B7A9E340083EC8D /* en_GB */, - A77346031B7A9E340083EC8D /* es */, - A77346041B7A9E340083EC8D /* es_ES */, - A77346051B7A9E340083EC8D /* fr */, - A77346061B7A9E340083EC8D /* fr_CA */, - A77346071B7A9E340083EC8D /* fr_FR */, - A77346081B7A9E340083EC8D /* he */, - A77346091B7A9E340083EC8D /* it */, - A773460A1B7A9E340083EC8D /* nb */, - A773460B1B7A9E340083EC8D /* nl */, - A773460C1B7A9E340083EC8D /* pl */, - A773460D1B7A9E340083EC8D /* pt */, - A773460E1B7A9E340083EC8D /* ru */, - A773460F1B7A9E340083EC8D /* sv */, - A77346101B7A9E340083EC8D /* tr */, - A77346111B7A9E340083EC8D /* zh-Hans */, - ); - name = "Drop-In.strings"; - path = .; - sourceTree = ""; - }; - A79AFA4A1B56F822007B1DF1 /* Three-D-Secure.strings */ = { - isa = PBXVariantGroup; - children = ( - A79AFA4B1B56F822007B1DF1 /* da */, - A79AFA4C1B56F822007B1DF1 /* de */, - A79AFA4D1B56F822007B1DF1 /* en */, - A79AFA4E1B56F822007B1DF1 /* en_AU */, - A79AFA4F1B56F822007B1DF1 /* en_CA */, - A79AFA501B56F822007B1DF1 /* en_GB */, - A79AFA511B56F822007B1DF1 /* es */, - A79AFA521B56F822007B1DF1 /* es_ES */, - A79AFA531B56F822007B1DF1 /* fr */, - A79AFA541B56F822007B1DF1 /* fr_CA */, - A79AFA551B56F822007B1DF1 /* fr_FR */, - A79AFA561B56F822007B1DF1 /* he */, - A79AFA571B56F822007B1DF1 /* it */, - A79AFA581B56F822007B1DF1 /* nb */, - A79AFA591B56F822007B1DF1 /* nl */, - A79AFA5A1B56F822007B1DF1 /* pl */, - A79AFA5B1B56F822007B1DF1 /* pt */, - A79AFA5C1B56F823007B1DF1 /* ru */, - A79AFA5D1B56F823007B1DF1 /* sv */, - A79AFA5E1B56F823007B1DF1 /* tr */, - A79AFA5F1B56F823007B1DF1 /* zh-Hans */, - ); - name = "Three-D-Secure.strings"; - path = .; - sourceTree = ""; - }; - A7ABD6751B702FF000A1223C /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - A7ABD6761B702FF000A1223C /* en */, - ); - name = InfoPlist.strings; - path = .; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 03F8B26D1C23976100FD184B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = UITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.UITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TEST_TARGET_NAME = Demo; - USES_XCTRUNNER = YES; - }; - name = Debug; - }; - 03F8B26E1C23976100FD184B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = UITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.UITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; - TEST_TARGET_NAME = Demo; - USES_XCTRUNNER = YES; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 16CD2EA41B4077FC00E68495 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F856ADC418A9254523A85526 /* Pods-Tests-UnitTests.debug.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREFIX_HEADER = ""; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = UnitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.braintreepayments.Braintree-Unit-Tests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = YES; - SRCROOT = "$(PROJECT_DIR)"; - SWIFT_OBJC_BRIDGING_HEADER = "UnitTests/UnitTests-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Demo.app/Demo"; - }; - name = Debug; - }; - 16CD2EA51B4077FC00E68495 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4621B720EE8A9B65FFFE3632 /* Pods-Tests-UnitTests.release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = ""; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = UnitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.braintreepayments.Braintree-Unit-Tests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = YES; - SRCROOT = "$(PROJECT_DIR)"; - SWIFT_OBJC_BRIDGING_HEADER = "UnitTests/UnitTests-Bridging-Header.h"; - SWIFT_VERSION = 3.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Demo.app/Demo"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 2D941D3E1B59C76A0016EFB4 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = "$(SOURCE_ROOT)/**"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreePayPal; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 2D941D3F1B59C76A0016EFB4 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = "$(SOURCE_ROOT)/**"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreePayPal; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 2D941D8D1B5D9E8C0016EFB4 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.Braintree3DSecure; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 2D941D8E1B5D9E8C0016EFB4 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.Braintree3DSecure; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 2DE12F0E1B59BE0100EA1BCF /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREFIX_HEADER = ""; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = BraintreeCore/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreeCore; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 2DE12F0F1B59BE0100EA1BCF /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = ""; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = BraintreeCore/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreeCore; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 4164B9AA1C9B658E006AE861 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreeUnionPay; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = ""; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 4164B9AB1C9B658E006AE861 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreeUnionPay; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = ""; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 417404501BB084D3008A5DEA /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/BraintreePayPal/PayPalOneTouchCore", - "$(PROJECT_DIR)/BraintreeDataCollector/Kount", - ); - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 417404511BB084D3008A5DEA /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/BraintreePayPal/PayPalOneTouchCore", - "$(PROJECT_DIR)/BraintreeDataCollector/Kount", - ); - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7EDE476E1CD2C3D00005E22B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreePayPal/PayPalUtils/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/BraintreePayPal/PayPalDataCollector/Risk", - ); - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.paypal.PayPalUtils; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 7EDE476F1CD2C3D00005E22B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreePayPal/PayPalUtils/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/BraintreePayPal/PayPalDataCollector/Risk", - ); - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.paypal.PayPalUtils; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - A50C3ADC1C19F00600612D90 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - A50C3ADD1C19F00600612D90 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - A50C3B0C1C19F55C00612D90 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/PayPalDataCollector/Risk", - "$(PROJECT_DIR)/BraintreePayPal/PayPalDataCollector/Risk", - ); - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - A50C3B0D1C19F55C00612D90 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/PayPalDataCollector/Risk", - "$(PROJECT_DIR)/BraintreePayPal/PayPalDataCollector/Risk", - ); - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - A50C3B751C1A29C500612D90 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = BraintreePayPal/PayPalOneTouch/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ""; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.paypal.PayPalOneTouch; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - A50C3B761C1A29C500612D90 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = BraintreePayPal/PayPalOneTouch/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ""; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.paypal.PayPalOneTouch; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - A75DA348192138F000D997A2 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - ENABLE_BITCODE = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(TARGET_TYPE)/$(PRODUCT_NAME)/Supporting Files/$(PRODUCT_NAME)-Info.plist"; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - RUN_CLANG_STATIC_ANALYZER = YES; - SDKROOT = iphoneos; - TARGET_TYPE = Specs; - WARNING_CFLAGS = ( - "-Wall", - "-Wextra", - "-Werror", - ); - }; - name = Debug; - }; - A75DA349192138F000D997A2 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - ENABLE_BITCODE = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_NEWLINE = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(TARGET_TYPE)/$(PRODUCT_NAME)/Supporting Files/$(PRODUCT_NAME)-Info.plist"; - OTHER_CFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - RUN_CLANG_STATIC_ANALYZER = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGET_TYPE = Specs; - WARNING_CFLAGS = ( - "-Wall", - "-Wextra", - "-Werror", - ); - }; - name = Release; - }; - A76B199F1B79707700452CFA /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 10A1F947EB4DC18E4744F5FE /* Pods-Demo.debug.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_ENTITLEMENTS = "Demo/Braintree-Demo.entitlements"; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/Demo/Supporting Files/Braintree-Demo-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = "$(inherited)"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.Demo; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - A76B19A01B79707700452CFA /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D5477E9CCBB2B1B37661129D /* Pods-Demo.release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_ENTITLEMENTS = "Demo/Braintree-Demo.entitlements"; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/Demo/Supporting Files/Braintree-Demo-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = "$(inherited)"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.Demo; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE = ""; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - A76D7C171BB1CAB00000FA6A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/BraintreeDataCollector/Kount", - ); - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreeDataCollector; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - A76D7C181BB1CAB00000FA6A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/BraintreeDataCollector/Kount", - ); - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreeDataCollector; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - A77345001B7A93A10083EC8D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreeUI; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - A77345011B7A93A10083EC8D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreeUI; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - A77AA2A21B618C7700217B73 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreeVenmo; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - A77AA2A31B618C7700217B73 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreeVenmo; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - A7ABD65B1B702FD900A1223C /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D9AFC14FFCF2029AE39FA3BA /* Pods-Tests-IntegrationTests.debug.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = "$(PROJECT_DIR)/IntegrationTests/IntegrationTests.pch"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = IntegrationTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.IntegrationTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "IntegrationTests/IntegrationTests-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Demo.app/Demo"; - }; - name = Debug; - }; - A7ABD65C1B702FD900A1223C /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0CF0BA897F9E79A01D6A2C66 /* Pods-Tests-IntegrationTests.release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = "$(PROJECT_DIR)/IntegrationTests/IntegrationTests.pch"; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = IntegrationTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.IntegrationTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "IntegrationTests/IntegrationTests-Bridging-Header.h"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Demo.app/Demo"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - A7B463031C3D9C2200048423 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreePayPal/PayPalDataCollector/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/BraintreePayPal/PayPalDataCollector/Risk", - ); - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.paypal.PayPalDataCollector; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - A7B463041C3D9C2200048423 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreePayPal/PayPalDataCollector/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/BraintreePayPal/PayPalDataCollector/Risk", - ); - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.paypal.PayPalDataCollector; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - A7C8897A1B5EF5DE007A0E9C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreeApplePay; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - A7C8897B1B5EF5DE007A0E9C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreeApplePay; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - A7C8899A1B5F043B007A0E9C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreeCard; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = ""; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - A7C8899B1B5F043B007A0E9C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "$(SRCROOT)/BraintreeCore/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.braintreepayments.BraintreeCard; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = ""; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 03F8B26F1C23976100FD184B /* Build configuration list for PBXNativeTarget "UITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 03F8B26D1C23976100FD184B /* Debug */, - 03F8B26E1C23976100FD184B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 16CD2EA61B4077FC00E68495 /* Build configuration list for PBXNativeTarget "UnitTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 16CD2EA41B4077FC00E68495 /* Debug */, - 16CD2EA51B4077FC00E68495 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2D941D3D1B59C76A0016EFB4 /* Build configuration list for PBXNativeTarget "BraintreePayPal" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2D941D3E1B59C76A0016EFB4 /* Debug */, - 2D941D3F1B59C76A0016EFB4 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2D941D8F1B5D9E8C0016EFB4 /* Build configuration list for PBXNativeTarget "Braintree3DSecure" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2D941D8D1B5D9E8C0016EFB4 /* Debug */, - 2D941D8E1B5D9E8C0016EFB4 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2DE12F101B59BE0100EA1BCF /* Build configuration list for PBXNativeTarget "BraintreeCore" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2DE12F0E1B59BE0100EA1BCF /* Debug */, - 2DE12F0F1B59BE0100EA1BCF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4164B9A91C9B658E006AE861 /* Build configuration list for PBXNativeTarget "BraintreeUnionPay" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4164B9AA1C9B658E006AE861 /* Debug */, - 4164B9AB1C9B658E006AE861 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4174044F1BB084D3008A5DEA /* Build configuration list for PBXNativeTarget "Braintree" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 417404501BB084D3008A5DEA /* Debug */, - 417404511BB084D3008A5DEA /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7EDE476D1CD2C3D00005E22B /* Build configuration list for PBXNativeTarget "PayPalUtils" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7EDE476E1CD2C3D00005E22B /* Debug */, - 7EDE476F1CD2C3D00005E22B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A50C3ADB1C19F00600612D90 /* Build configuration list for PBXNativeTarget "PayPalOneTouch-StaticLibrary" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A50C3ADC1C19F00600612D90 /* Debug */, - A50C3ADD1C19F00600612D90 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A50C3B0B1C19F55C00612D90 /* Build configuration list for PBXNativeTarget "PayPalDataCollector-StaticLibrary" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A50C3B0C1C19F55C00612D90 /* Debug */, - A50C3B0D1C19F55C00612D90 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A50C3B741C1A29C500612D90 /* Build configuration list for PBXNativeTarget "PayPalOneTouch" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A50C3B751C1A29C500612D90 /* Debug */, - A50C3B761C1A29C500612D90 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A75DA347192138F000D997A2 /* Build configuration list for PBXProject "Braintree" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A75DA348192138F000D997A2 /* Debug */, - A75DA349192138F000D997A2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A76B19A11B79707700452CFA /* Build configuration list for PBXNativeTarget "Demo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A76B199F1B79707700452CFA /* Debug */, - A76B19A01B79707700452CFA /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A76D7C1B1BB1CAB00000FA6A /* Build configuration list for PBXNativeTarget "BraintreeDataCollector" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A76D7C171BB1CAB00000FA6A /* Debug */, - A76D7C181BB1CAB00000FA6A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A77345021B7A93A10083EC8D /* Build configuration list for PBXNativeTarget "BraintreeUI" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A77345001B7A93A10083EC8D /* Debug */, - A77345011B7A93A10083EC8D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A77AA2A11B618C7700217B73 /* Build configuration list for PBXNativeTarget "BraintreeVenmo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A77AA2A21B618C7700217B73 /* Debug */, - A77AA2A31B618C7700217B73 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A7ABD65A1B702FD900A1223C /* Build configuration list for PBXNativeTarget "IntegrationTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A7ABD65B1B702FD900A1223C /* Debug */, - A7ABD65C1B702FD900A1223C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A7B463021C3D9C2200048423 /* Build configuration list for PBXNativeTarget "PayPalDataCollector" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A7B463031C3D9C2200048423 /* Debug */, - A7B463041C3D9C2200048423 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A7C889791B5EF5DE007A0E9C /* Build configuration list for PBXNativeTarget "BraintreeApplePay" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A7C8897A1B5EF5DE007A0E9C /* Debug */, - A7C8897B1B5EF5DE007A0E9C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A7C889991B5F043B007A0E9C /* Build configuration list for PBXNativeTarget "BraintreeCard" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A7C8899A1B5F043B007A0E9C /* Debug */, - A7C8899B1B5F043B007A0E9C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = A75DA344192138F000D997A2 /* Project object */; -} diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcbaselines/16CD2E9B1B4077FB00E68495.xcbaseline/0AC71B63-8A4C-42F9-AD7C-1C7EF957B618.plist b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcbaselines/16CD2E9B1B4077FB00E68495.xcbaseline/0AC71B63-8A4C-42F9-AD7C-1C7EF957B618.plist deleted file mode 100755 index b6a208db..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcbaselines/16CD2E9B1B4077FB00E68495.xcbaseline/0AC71B63-8A4C-42F9-AD7C-1C7EF957B618.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - classNames - - BTAPIClient_SwiftTests - - testAPIClientInitialization_withValidClientToken_performanceMeetsExpectations() - - com.apple.XCTPerformanceMetric_WallClockTime - - baselineAverage - 0.00704 - baselineIntegrationDisplayName - Local Baseline - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcbaselines/16CD2E9B1B4077FB00E68495.xcbaseline/Info.plist b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcbaselines/16CD2E9B1B4077FB00E68495.xcbaseline/Info.plist deleted file mode 100755 index 369f98ce..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcbaselines/16CD2E9B1B4077FB00E68495.xcbaseline/Info.plist +++ /dev/null @@ -1,40 +0,0 @@ - - - - - runDestinationsByUUID - - 0AC71B63-8A4C-42F9-AD7C-1C7EF957B618 - - localComputer - - busSpeedInMHz - 100 - cpuCount - 1 - cpuKind - Intel Core i7 - cpuSpeedInMHz - 3100 - logicalCPUCoresPerPackage - 4 - modelCode - MacBookPro12,1 - physicalCPUCoresPerPackage - 2 - platformIdentifier - com.apple.platform.macosx - - targetArchitecture - x86_64 - targetDevice - - modelCode - iPhone9,2 - platformIdentifier - com.apple.platform.iphonesimulator - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/Braintree.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/Braintree.xcscheme deleted file mode 100755 index fad3e094..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/Braintree.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/Braintree3DSecure.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/Braintree3DSecure.xcscheme deleted file mode 100755 index 047b1069..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/Braintree3DSecure.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeApplePay.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeApplePay.xcscheme deleted file mode 100755 index 04aacd19..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeApplePay.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeCard.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeCard.xcscheme deleted file mode 100755 index 2e078490..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeCard.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeCore.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeCore.xcscheme deleted file mode 100755 index 6e9cac54..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeCore.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeDataCollector.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeDataCollector.xcscheme deleted file mode 100755 index a5456dd5..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeDataCollector.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreePayPal.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreePayPal.xcscheme deleted file mode 100755 index 37128d49..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreePayPal.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeUI.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeUI.xcscheme deleted file mode 100755 index e8659519..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeUI.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeUnionPay.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeUnionPay.xcscheme deleted file mode 100755 index 0ef7f0eb..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeUnionPay.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeVenmo.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeVenmo.xcscheme deleted file mode 100755 index 59f3bca9..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/BraintreeVenmo.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme deleted file mode 100755 index 03c97879..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/IntegrationTests.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/IntegrationTests.xcscheme deleted file mode 100755 index 10c126e6..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/IntegrationTests.xcscheme +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalDataCollector-StaticLibrary.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalDataCollector-StaticLibrary.xcscheme deleted file mode 100755 index c148e459..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalDataCollector-StaticLibrary.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalDataCollector.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalDataCollector.xcscheme deleted file mode 100755 index 94094ca7..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalDataCollector.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalOneTouch-StaticLibrary.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalOneTouch-StaticLibrary.xcscheme deleted file mode 100755 index 2a15814d..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalOneTouch-StaticLibrary.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalOneTouch.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalOneTouch.xcscheme deleted file mode 100755 index 8b22318b..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalOneTouch.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalUtils.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalUtils.xcscheme deleted file mode 100755 index 8c1b10c4..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/PayPalUtils.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/UITests.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/UITests.xcscheme deleted file mode 100755 index db788b8c..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/UITests.xcscheme +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/UnitTests.xcscheme b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/UnitTests.xcscheme deleted file mode 100755 index c2fb8da0..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcodeproj/xcshareddata/xcschemes/UnitTests.xcscheme +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcworkspace/contents.xcworkspacedata b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcworkspace/contents.xcworkspacedata deleted file mode 100755 index a633fa2f..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/examples/braintree/ios/Frameworks/Braintree/Braintree.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100755 index 08de0be8..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree/API/@Public/README.md b/examples/braintree/ios/Frameworks/Braintree/Braintree/API/@Public/README.md deleted file mode 100755 index 4d605dd3..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree/API/@Public/README.md +++ /dev/null @@ -1,4 +0,0 @@ -[The Braintree iOS SDK 3.x Card header files have moved here.](https://github.com/braintree/braintree_ios/tree/3.x/Braintree/API/@Public) - -Note: Those header files are for an old version of our SDK. We recommend upgrading to [the latest version](https://github.com/braintree/braintree_ios/) at your convenience. - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureAuthenticationViewController.h b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureAuthenticationViewController.h deleted file mode 100755 index 547eaa51..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureAuthenticationViewController.h +++ /dev/null @@ -1,106 +0,0 @@ -#import - -#import "BTThreeDSecureLookupResult.h" -#import "BTThreeDSecureErrors.h" -#import "BTThreeDSecureCardNonce.h" -#import "BTWebViewController.h" - -typedef NS_ENUM(NSInteger, BTThreeDSecureViewControllerCompletionStatus) { - BTThreeDSecureViewControllerCompletionStatusFailure = 0, - BTThreeDSecureViewControllerCompletionStatusSuccess, -}; - -@protocol BTThreeDSecureAuthenticationViewControllerDelegate; - -/*! - @brief A view controller that authenticates a cardholder for 3D Secure - - @discussion Initialize this view controller with a BTThreeDSecureLookupResult, which contains the - information that is needed to obtain cardholder authorization via the issuing bank's login - within a web view for a particular card. - - You can perform the prerequisite lookup via the - -[BTThreeDSecureDriver verifyCardWithNonce:amount:completion:] instance method. - - An initialized BTThreeDSecureViewController will challenge the user as soon as it is presented - and cannot be reused. - - On success, the original payment method nonce is consumed, and you will receive a new payment - method nonce. Transactions created with this nonce will be 3D Secure. - - This view controller is not always necessary to achieve a successful 3D Secure verification. Sometimes, - the lookup will consume the original nonce and return an upgraded 3D Secure nonce directly. - - @see BTThreeDSecureDriver - - @note Do not initialize this view controller directly. Instead, use `BTThreeDSecureDriver` to initiate the 3D Secure flow. -*/ -@interface BTThreeDSecureAuthenticationViewController : BTWebViewController - -/*! - @brief Initializes a 3D Secure authentication view controller - - @param lookupResult Contains the result of the 3D Secure lookup - - @return A view controller or nil when authentication is not possible and/or required. -*/ -- (instancetype)initWithLookupResult:(BTThreeDSecureLookupResult *)lookupResult NS_DESIGNATED_INITIALIZER; - -/*! - @discussion The delegate is notified when the 3D Secure authentication flow completes. - This is a strong reference, so to prevent a retain cycle, the delegate must not keep a strong - reference to the BTThreeDSecureAuthenticationViewController. - */ -@property (nonatomic, strong) id delegate; - -@end - -@protocol BTThreeDSecureAuthenticationViewControllerDelegate - -/*! - @brief The delegate will receive this message after the user has successfully authenticated with 3D Secure - - @discussion On Braintree's servers, this nonce will point to both a card and its 3D Secure verification. - - This implementation is responsible for receiving the 3D Secure payment method nonce and transmitting - it to your server for server-side operations. Upon completion, you must call the completionBlock. - - Do *not* dismiss the view controller in this method. See threeDSecureViewControllerDidFinish:. - - @param viewController The 3D Secure view controller - @param tokenizedCard The new payment method that should be used for creating a 3D Secure transaction - @param completionBlock A block that must be called upon completion of any asynchronous work that processes the received card -*/ -- (void)threeDSecureViewController:(BTThreeDSecureAuthenticationViewController *)viewController - didAuthenticateCard:(BTThreeDSecureCardNonce *)tokenizedCard - completion:(void (^)(BTThreeDSecureViewControllerCompletionStatus status))completionBlock; - -/*! - @brief The delegate will receive this message when 3D Secure authentication fails - - @discussion This can occur due to a system error, lack of issuer participation or failed user authentication. - - Do *not* dismiss the view controller in this method. See threeDSecureViewControllerDidFinish:. - - @param viewController The 3D Secure view controller - @param error The error that caused 3D Secure to fail -*/ -- (void)threeDSecureViewController:(BTThreeDSecureAuthenticationViewController *)viewController - didFailWithError:(NSError *)error; - -/*! - @brief The delegate will receive this message upon completion of the 3D Secure flow, possibly including async work that happens in your implementation of threeDSecureViewController:didAuthenticateNonce:completion: - - @discussion This method will be called in both success and failure cases. - - You should dismiss the provided view controller in your implementation. - - @param viewController The 3D Secure view controller -*/ -- (void)threeDSecureViewControllerDidFinish:(BTThreeDSecureAuthenticationViewController *)viewController; - -@optional - -- (void)threeDSecureViewController:(BTThreeDSecureAuthenticationViewController *)viewController didPresentErrorToUserForURLRequest:(NSURLRequest *)request; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureAuthenticationViewController.m b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureAuthenticationViewController.m deleted file mode 100755 index a1cea0e5..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureAuthenticationViewController.m +++ /dev/null @@ -1,122 +0,0 @@ -#import "BTThreeDSecureAuthenticationViewController.h" -#import "BTThreeDSecureResponse.h" -#import "BTWebViewController.h" -#import "BTURLUtils.h" -#import "BTCardNonce_Internal.h" - -@interface BTThreeDSecureAuthenticationViewController () -@end - -@implementation BTThreeDSecureAuthenticationViewController - -- (instancetype)initWithLookupResult:(BTThreeDSecureLookupResult *)lookupResult { - if (!lookupResult.requiresUserAuthentication) { - return nil; - } - - NSURLRequest *acsRequest = [self acsRequestForLookupResult:lookupResult]; - return [super initWithRequest:acsRequest]; -} - -- (instancetype)initWithRequest:(NSURLRequest *)request { - return [self initWithRequest:request]; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - - self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel - target:self - action:@selector(tappedCancel)]; -} - -- (NSURLRequest *)acsRequestForLookupResult:(BTThreeDSecureLookupResult *)lookupResult { - NSMutableURLRequest *acsRequest = [NSMutableURLRequest requestWithURL:lookupResult.acsURL]; - [acsRequest setHTTPMethod:@"POST"]; - NSDictionary *fields = @{ @"PaReq": lookupResult.PAReq, - @"TermUrl": lookupResult.termURL, - @"MD": lookupResult.MD }; - [acsRequest setHTTPBody:[[BTURLUtils queryStringWithDictionary:fields] dataUsingEncoding:NSUTF8StringEncoding]]; - [acsRequest setAllHTTPHeaderFields:@{ @"Accept": @"text/html", @"Content-Type": @"application/x-www-form-urlencoded"}]; - return acsRequest; -} - -- (void)didCompleteAuthentication:(BTThreeDSecureResponse *)response { - dispatch_async(dispatch_get_main_queue(), ^{ - if (response.success) { - if ([self.delegate respondsToSelector:@selector(threeDSecureViewController:didAuthenticateCard:completion:)]) { - [self.delegate threeDSecureViewController:self - didAuthenticateCard:response.tokenizedCard - completion:^(__unused BTThreeDSecureViewControllerCompletionStatus status) { - if ([self.delegate respondsToSelector:@selector(threeDSecureViewControllerDidFinish:)]) { - [self.delegate threeDSecureViewControllerDidFinish:self]; - } - }]; - } - } else { - NSMutableDictionary *userInfo = [NSMutableDictionary dictionaryWithCapacity:2]; - if (response.threeDSecureInfo) { - userInfo[BTThreeDSecureInfoKey] = response.threeDSecureInfo; - } - if (response.errorMessage) { - userInfo[NSLocalizedDescriptionKey] = response.errorMessage; - } - NSError *error = [NSError errorWithDomain:BTThreeDSecureErrorDomain - code:BTThreeDSecureErrorTypeFailedAuthentication - userInfo:userInfo]; - if ([self.delegate respondsToSelector:@selector(threeDSecureViewController:didFailWithError:)]) { - [self.delegate threeDSecureViewController:self didFailWithError:error]; - } else if ([self.delegate respondsToSelector:@selector(threeDSecureViewControllerDidFinish:)]) { - [self.delegate threeDSecureViewControllerDidFinish:self]; - } - } - }); -} - -#pragma mark UIWebViewDelegate - -- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { - if (navigationType == UIWebViewNavigationTypeFormSubmitted && [request.URL.path rangeOfString:@"authentication_complete_frame"].location != NSNotFound) { - - NSString *jsonAuthResponse = [BTURLUtils dictionaryForQueryString:request.URL.query][@"auth_response"]; - BTJSON *authBody = [[BTJSON alloc] initWithValue:[NSJSONSerialization JSONObjectWithData:[jsonAuthResponse dataUsingEncoding:NSUTF8StringEncoding] options:0 error:NULL]]; - - BTThreeDSecureResponse *authResponse = [[BTThreeDSecureResponse alloc] init]; - authResponse.success = [authBody[@"success"] isTrue]; - authResponse.threeDSecureInfo = [authBody[@"threeDSecureInfo"] asDictionary]; - authResponse.tokenizedCard = [BTThreeDSecureCardNonce cardNonceWithJSON:authBody[@"paymentMethod"]]; - authResponse.errorMessage = [authBody[@"error"][@"message"] asString]; - - [self didCompleteAuthentication:authResponse]; - - return NO; - } else { - return [super webView:webView shouldStartLoadWithRequest:request navigationType:navigationType]; - } -} - -- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { - if ([error.domain isEqualToString:@"WebKitErrorDomain"] && error.code == 102) { - // Not a real error; occurs when we return NO from webView:shouldStartLoadWithRequest:navigationType: - return; - } else if ([error.domain isEqualToString:BTThreeDSecureErrorDomain]) { - // Allow delegate to handle 3D Secure authentication errors - [self.delegate threeDSecureViewController:self didFailWithError:error]; - } else { - // Otherwise, allow the WebViewController to display the error to the user - if ([self.delegate respondsToSelector:@selector(threeDSecureViewController:didPresentErrorToUserForURLRequest:)]) { - [self.delegate threeDSecureViewController:self didPresentErrorToUserForURLRequest:webView.request]; - } - [super webView:webView didFailLoadWithError:error]; - } -} - -#pragma mark User Interaction - -- (void)tappedCancel { - if ([self.delegate respondsToSelector:@selector(threeDSecureViewControllerDidFinish:)]) { - [self.delegate threeDSecureViewControllerDidFinish:self]; - } -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureCardNonce.m b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureCardNonce.m deleted file mode 100755 index f1258540..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureCardNonce.m +++ /dev/null @@ -1,45 +0,0 @@ -#import "BTThreeDSecureCardNonce.h" -#if __has_include("BraintreeCard.h") -#import "BTCardNonce_Internal.h" -#else -#import -#endif - - -@interface BTThreeDSecureCardNonce () - -@property (nonatomic, strong) BTJSON *threeDSecureJSON; - -@end - -@implementation BTThreeDSecureCardNonce - -- (instancetype)initWithNonce:(NSString *)nonce - description:(NSString *)description - cardNetwork:(BTCardNetwork)cardNetwork - lastTwo:(NSString *)lastTwo - threeDSecureJSON:(BTJSON *)threeDSecureJSON - isDefault:(BOOL)isDefault -{ - self = [super initWithNonce:nonce description:description cardNetwork:cardNetwork lastTwo:lastTwo isDefault:isDefault]; - if (self) { - _threeDSecureJSON = threeDSecureJSON; - } - return self; -} - -+ (instancetype)cardNonceWithJSON:(BTJSON *)cardJSON { - BTThreeDSecureCardNonce *card = [super cardNonceWithJSON:cardJSON]; - card.threeDSecureJSON = cardJSON[@"threeDSecureInfo"]; - return card; -} - -- (BOOL)liabilityShifted { - return [self.threeDSecureJSON[@"liabilityShifted"] isTrue]; -} - -- (BOOL)liabilityShiftPossible { - return [self.threeDSecureJSON[@"liabilityShiftPossible"] isTrue]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureDriver.m b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureDriver.m deleted file mode 100755 index c4ad7270..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureDriver.m +++ /dev/null @@ -1,233 +0,0 @@ -#import "BTThreeDSecureDriver_Internal.h" -#if __has_include("BraintreeCore.h") -#import "BTAPIClient_Internal.h" -#else -#import -#endif -#if __has_include("BraintreeCard.h") -#import "BTCardNonce_Internal.h" -#else -#import -#endif -#import "BTLogger_Internal.h" -#import "BTThreeDSecureAuthenticationViewController.h" -#import "BTThreeDSecureDriver.h" -#import "BTThreeDSecureLookupResult.h" -#import "BTThreeDSecureCardNonce.h" - - -@interface BTThreeDSecureDriver () - -@end - -@implementation BTThreeDSecureDriver - -+ (void)load { - if (self == [BTThreeDSecureDriver class]) { - [[BTTokenizationService sharedService] registerType:@"ThreeDSecure" withTokenizationBlock:^(BTAPIClient *apiClient, __unused NSDictionary *options, void (^completionBlock)(BTPaymentMethodNonce *paymentMethodNonce, NSError *error)) { - if (options[BTTokenizationServiceViewPresentingDelegateOption] == nil || - [options[BTTokenizationServiceNonceOption] length] == 0 || - options[BTTokenizationServiceAmountOption] == nil) { - NSError *error = [NSError errorWithDomain:BTTokenizationServiceErrorDomain - code:BTTokenizationServiceErrorTypeNotRegistered - userInfo:@{NSLocalizedDescriptionKey: [NSString stringWithFormat:@"Invalid parameters"], - NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"BTThreeDSecureDriver has invalid parameters"], - NSLocalizedRecoverySuggestionErrorKey: [NSString stringWithFormat:@"Check options parmeters"] - }]; - completionBlock(nil, error); - } else { - BTThreeDSecureDriver *driver = [[BTThreeDSecureDriver alloc] initWithAPIClient:apiClient delegate:options[BTTokenizationServiceViewPresentingDelegateOption]]; - - [driver verifyCardWithNonce:options[BTTokenizationServiceNonceOption] - amount:options[BTTokenizationServiceAmountOption] - completion:completionBlock]; - } - }]; - } -} - -- (instancetype)init { - @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:@"-init is not available for BTThreeDSecureDriver. Use -initWithAPIClient:delegate: instead." userInfo:nil]; -} - -- (instancetype)initWithAPIClient:(BTAPIClient *)apiClient delegate:(id)delegate { - // Defensive programming: apiClient and delegate parameters are annotated as nonnull - if (apiClient == nil || delegate == nil) { - return nil; - } - if (self = [super init]) { - _apiClient = apiClient; - _delegate = delegate; - } - return self; -} - -#pragma mark - Custom accessors - -- (void)setDelegate:(id)delegate { - if (![delegate conformsToProtocol:@protocol(BTViewControllerPresentingDelegate)]) { - [[BTLogger sharedLogger] warning:@"Delegate does not conform to BTViewControllerPresentingDelegate"]; - } - _delegate = delegate; -} - -#pragma mark - Public methods - -- (void)verifyCardWithNonce:(NSString *)nonce - amount:(NSDecimalNumber *)amount - completion:(void (^)(BTThreeDSecureCardNonce *, NSError *))completionBlock -{ - [self lookupThreeDSecureForNonce:nonce - transactionAmount:amount - completion:^(BTThreeDSecureLookupResult *lookupResult, NSError *error) { - if (error) { - completionBlock(nil, error); - return; - } - - if (lookupResult.requiresUserAuthentication) { - self.completionBlockAfterAuthenticating = [completionBlock copy]; - - BTThreeDSecureAuthenticationViewController *authenticationViewController = [[BTThreeDSecureAuthenticationViewController alloc] initWithLookupResult:lookupResult]; - authenticationViewController.delegate = self; - UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:authenticationViewController]; - [self informDelegateRequestsPresentationOfViewController:navigationController]; - [self.apiClient sendAnalyticsEvent:@"ios.threedsecure.authentication-start"]; - } else { - completionBlock(lookupResult.tokenizedCard, nil); - } - }]; - -} - -- (void)lookupThreeDSecureForNonce:(NSString *)nonce - transactionAmount:(NSDecimalNumber *)amount - completion:(void (^)(BTThreeDSecureLookupResult *lookupResult, NSError *error))completionBlock -{ - if (!self.apiClient) { - NSError *error = [NSError errorWithDomain:BTThreeDSecureErrorDomain - code:BTThreeDSecureErrorTypeIntegration - userInfo:@{NSLocalizedDescriptionKey: @"BTThreeDSecureDriver failed because BTAPIClient is nil."}]; - completionBlock(nil, error); - return; - } - - [self.apiClient fetchOrReturnRemoteConfiguration:^(BTConfiguration *configuration, NSError *error) { - if (error) { - completionBlock(nil, error); - return; - } - - NSMutableDictionary *requestParameters = [@{ @"amount": amount } mutableCopy]; - - if (configuration.json[@"merchantAccountId"]) { - requestParameters[@"merchant_account_id"] = [configuration.json[@"merchantAccountId"] asString]; - } - NSString *urlSafeNonce = [nonce stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; - [self.apiClient POST:[NSString stringWithFormat:@"v1/payment_methods/%@/three_d_secure/lookup", urlSafeNonce] - parameters:requestParameters - completion:^(BTJSON *body, __unused NSHTTPURLResponse *response, NSError *error) { - - if (error) { - // Provide more context for card validation error when status code 422 - if ([error.domain isEqualToString:BTHTTPErrorDomain] && - error.code == BTHTTPErrorCodeClientError && - ((NSHTTPURLResponse *)error.userInfo[BTHTTPURLResponseKey]).statusCode == 422) { - - NSMutableDictionary *userInfo = [error.userInfo mutableCopy]; - BTJSON *errorBody = error.userInfo[BTHTTPJSONResponseBodyKey]; - - if ([errorBody[@"error"][@"message"] isString]) { - userInfo[NSLocalizedDescriptionKey] = [errorBody[@"error"][@"message"] asString]; - } - if ([errorBody[@"threeDSecureInfo"] isObject]) { - userInfo[BTThreeDSecureInfoKey] = [errorBody[@"threeDSecureInfo"] asDictionary]; - } - if ([errorBody[@"error"] isObject]) { - userInfo[BTThreeDSecureValidationErrorsKey] = [errorBody[@"error"] asDictionary]; - } - - error = [NSError errorWithDomain:BTThreeDSecureErrorDomain - code:BTThreeDSecureErrorTypeFailedLookup - userInfo:userInfo]; - } - - completionBlock(nil, error); - return; - } - - BTJSON *lookupJSON = body[@"lookup"]; - - BTThreeDSecureLookupResult *lookup = [[BTThreeDSecureLookupResult alloc] init]; - lookup.acsURL = [lookupJSON[@"acsUrl"] asURL]; - lookup.PAReq = [lookupJSON[@"pareq"] asString]; - lookup.MD = [lookupJSON[@"md"] asString]; - lookup.termURL = [lookupJSON[@"termUrl"] asURL]; - lookup.tokenizedCard = [BTThreeDSecureCardNonce cardNonceWithJSON:body[@"paymentMethod"]]; - - completionBlock(lookup, nil); - }]; - }]; -} - -#pragma mark BTThreeDSecureAuthenticationViewControllerDelegate - -- (void)threeDSecureViewController:(__unused BTThreeDSecureAuthenticationViewController *)viewController - didAuthenticateCard:(BTThreeDSecureCardNonce *)tokenizedCard - completion:(void (^)(BTThreeDSecureViewControllerCompletionStatus))completionBlock -{ - self.upgradedTokenizedCard = tokenizedCard; - completionBlock(BTThreeDSecureViewControllerCompletionStatusSuccess); - [self.apiClient sendAnalyticsEvent:@"ios.threedsecure.authenticated"]; -} - -- (void)threeDSecureViewController:(__unused BTThreeDSecureAuthenticationViewController *)viewController - didFailWithError:(NSError *)error { - if ([error.domain isEqualToString:BTThreeDSecureErrorDomain] && error.code == BTThreeDSecureErrorTypeFailedAuthentication) { - [self.apiClient sendAnalyticsEvent:@"ios.threedsecure.error.auth-failure"]; - } else { - [self.apiClient sendAnalyticsEvent:@"ios.threedsecure.error.unrecognized-error"]; - } - - self.upgradedTokenizedCard = nil; - self.completionBlockAfterAuthenticating(nil, error); - self.completionBlockAfterAuthenticating = nil; - [self informDelegateRequestsDismissalOfViewController:viewController]; -} - -- (void)threeDSecureViewControllerDidFinish:(BTThreeDSecureAuthenticationViewController *)viewController { - if (self.completionBlockAfterAuthenticating != nil) { - if (self.upgradedTokenizedCard) { - self.completionBlockAfterAuthenticating(self.upgradedTokenizedCard, nil); - } else { - self.completionBlockAfterAuthenticating(nil, nil); - [self.apiClient sendAnalyticsEvent:@"ios.threedsecure.canceled"]; - } - - self.completionBlockAfterAuthenticating = nil; - [self informDelegateRequestsDismissalOfViewController:viewController]; - } else { - [self.apiClient sendAnalyticsEvent:@"ios.threedsecure.error.finished-without-handler"]; - } -} - -- (void)threeDSecureViewController:(__unused BTThreeDSecureAuthenticationViewController *)viewController - didPresentErrorForURLRequest:(NSURLRequest *)request { - [self.apiClient sendAnalyticsEvent:[NSString stringWithFormat:@"ios.threedsecure.error.webview-error.%@", request.URL.host]]; -} - -#pragma mark Delegate informer helpers - -- (void)informDelegateRequestsPresentationOfViewController:(UIViewController *)viewController { - if ([self.delegate respondsToSelector:@selector(paymentDriver:requestsPresentationOfViewController:)]) { - [self.delegate paymentDriver:self requestsPresentationOfViewController:viewController]; - } -} - -- (void)informDelegateRequestsDismissalOfViewController:(UIViewController *)viewController { - if ([self.delegate respondsToSelector:@selector(paymentDriver:requestsDismissalOfViewController:)]) { - [self.delegate paymentDriver:self requestsDismissalOfViewController:viewController]; - } -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureDriver_Internal.h b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureDriver_Internal.h deleted file mode 100755 index 13ef3514..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureDriver_Internal.h +++ /dev/null @@ -1,14 +0,0 @@ -#import "BTThreeDSecureDriver.h" - -@class BTThreeDSecureAuthenticationViewController; - -@interface BTThreeDSecureDriver () - -@property (nonatomic, strong) BTAPIClient *apiClient; -@property (nonatomic, strong) BTThreeDSecureCardNonce *upgradedTokenizedCard; -@property (nonatomic, copy) void (^completionBlockAfterAuthenticating)(BTThreeDSecureCardNonce *, NSError *); - -- (void)threeDSecureViewControllerDidFinish:(BTThreeDSecureAuthenticationViewController *)viewController; - -@end - diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureErrors.m b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureErrors.m deleted file mode 100755 index 41dfadc7..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureErrors.m +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTThreeDSecureErrors.h" - -NSString * const BTThreeDSecureErrorDomain = @"com.braintreepayments.BTThreeDSecureErrorDomain"; -NSString * const BTThreeDSecureInfoKey = @"com.braintreepayments.BTThreeDSecureInfoKey"; -NSString * const BTThreeDSecureValidationErrorsKey = @"com.braintreepayments.BTThreeDSecureValidationErrorsKey"; diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureLookupResult.h b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureLookupResult.h deleted file mode 100755 index 88e129ef..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureLookupResult.h +++ /dev/null @@ -1,16 +0,0 @@ -#import - -#import "BTThreeDSecureCardNonce.h" - -@interface BTThreeDSecureLookupResult : NSObject - -@property (nonatomic, copy) NSString *PAReq; -@property (nonatomic, copy) NSString *MD; -@property (nonatomic, copy) NSURL *acsURL; -@property (nonatomic, copy) NSURL *termURL; - -@property (nonatomic, strong) BTThreeDSecureCardNonce *tokenizedCard; - -- (BOOL)requiresUserAuthentication; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureLookupResult.m b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureLookupResult.m deleted file mode 100755 index 126e6a30..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureLookupResult.m +++ /dev/null @@ -1,9 +0,0 @@ -#import "BTThreeDSecureLookupResult.h" - -@implementation BTThreeDSecureLookupResult - -- (BOOL)requiresUserAuthentication { - return self.acsURL != nil; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureResponse.h b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureResponse.h deleted file mode 100755 index b1fa48b9..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureResponse.h +++ /dev/null @@ -1,11 +0,0 @@ -#import -#import "BTThreeDSecureCardNonce.h" - -@interface BTThreeDSecureResponse : NSObject - -@property (nonatomic, assign) BOOL success; -@property (nonatomic, strong) NSDictionary *threeDSecureInfo; -@property (nonatomic, strong) BTThreeDSecureCardNonce *tokenizedCard; -@property (nonatomic, copy) NSString *errorMessage; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureResponse.m b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureResponse.m deleted file mode 100755 index 99ff0653..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTThreeDSecureResponse.m +++ /dev/null @@ -1,9 +0,0 @@ -#import "BTThreeDSecureResponse.h" - -@implementation BTThreeDSecureResponse - -- (NSString *)debugDescription { - return [NSString stringWithFormat:@"", self, self.success ? @"YES" : @"NO", self.tokenizedCard, self.errorMessage, self.threeDSecureInfo]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTWebViewController.h b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTWebViewController.h deleted file mode 100755 index 3e4d92d2..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTWebViewController.h +++ /dev/null @@ -1,25 +0,0 @@ -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface BTWebViewController : UIViewController - -#pragma mark - Designated initializers - -- (nonnull instancetype)initWithRequest:(nonnull NSURLRequest *)request NS_DESIGNATED_INITIALIZER; - -#pragma mark - Undesignated initializers (do not use) - -- (nullable instancetype)initWithCoder:(NSCoder *)decoder __attribute__((unavailable("Please use initWithRequest: instead."))); -- (instancetype)initWithNibName:(nullable NSString *)nibName bundle:(nullable NSBundle *)nibBundle __attribute__((unavailable("Please use initWithRequest: instead."))); - -#pragma mark Override Points for Subclasses - -- (BOOL)webView:(nonnull UIWebView *)webView shouldStartLoadWithRequest:(nonnull NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType __attribute__((objc_requires_super)); -- (void)webViewDidStartLoad:(nonnull UIWebView *)webView __attribute__((objc_requires_super)); -- (void)webViewDidFinishLoad:(nonnull UIWebView *)webView __attribute__((objc_requires_super)); -- (void)webView:(nonnull UIWebView *)webView didFailLoadWithError:(nonnull NSError *)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTWebViewController.m b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTWebViewController.m deleted file mode 100755 index bf8f5100..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/BTWebViewController.m +++ /dev/null @@ -1,216 +0,0 @@ -#import "BTWebViewController.h" -#import "BTThreeDSecureLocalizedString.h" - -static NSString *BTWebViewControllerPopupOpenDummyURLScheme = @"com.braintreepayments.popup.open"; -static NSString *BTWebViewControllerPopupCloseDummyURLScheme = @"com.braintreepayments.popup.close"; - -@protocol BTThreeDSecurePopupDelegate - -- (void)popupWebViewViewControllerDidFinish:(BTWebViewController *)viewController; - -@end - -@interface BTWebViewController () - -@property (nonatomic, strong) UIWebView *webView; - -@property (nonatomic, weak) id delegate; - -@end - -@implementation BTWebViewController - -- (instancetype)initWithCoder:(__unused NSCoder *)decoder { - @throw [[NSException alloc] initWithName:@"Invalid initializer" reason:@"Use designated initializer" userInfo:nil]; -} - -- (instancetype)initWithNibName:(__unused NSString *)nibName bundle:(__unused NSBundle *)nibBundle { - @throw [[NSException alloc] initWithName:@"Invalid initializer" reason:@"Use designated initializer" userInfo:nil]; -} - -- (instancetype)initWithRequest:(NSURLRequest *)request { - self = [super initWithNibName:nil bundle:nil]; - if (self) { - self.webView = [[UIWebView alloc] init]; - self.webView.accessibilityIdentifier = @"Web View"; - [self.webView loadRequest:request]; - } - return self; -} - -- (instancetype)initWithRequest:(NSURLRequest *)request delegate:(id)delegate { - self = [self initWithRequest:request]; - if (self) { - self.delegate = delegate; - } - return self; -} - -- (void)setDelegate:(id)delegate { - _delegate = delegate; - if (delegate) { - self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:BTThreeDSecureLocalizedString(ERROR_ALERT_CANCEL_BUTTON_TEXT) style:UIBarButtonItemStyleDone target:self action:@selector(informDelegateDidFinish)]; - } -} - -- (void)loadView { - self.view = self.webView; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - - self.webView.delegate = self; -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - [self updateNetworkActivityIndicatorForWebView:self.webView]; -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - [self.webView stopLoading]; - [self updateNetworkActivityIndicatorForWebView:self.webView]; -} - -- (void)updateNetworkActivityIndicatorForWebView:(UIWebView *)webView { - [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:webView.isLoading]; -} - - -#pragma mark Delegate Informers - -- (void)informDelegateDidFinish { - if ([self.delegate respondsToSelector:@selector(popupWebViewViewControllerDidFinish:)]) { - [self.delegate popupWebViewViewControllerDidFinish:self]; - } -} - - -#pragma mark UIWebViewDelegate - -- (BOOL)webView:(__unused UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(__unused UIWebViewNavigationType)navigationType { - NSURL *requestURL = request.URL; - if ([self isURLPopupOpenLink:requestURL]) { - [self openPopupWithURLRequest:request]; - return NO; - } else if ([self isURLPopupCloseLink:requestURL]) { - [self informDelegateDidFinish]; - return NO; - } - - return YES; -} - -- (void)webViewDidStartLoad:(UIWebView *)webView { - [self updateNetworkActivityIndicatorForWebView:webView]; - self.title = [self parseTitleFromWebView:webView];; -} - -- (void)webViewDidFinishLoad:(UIWebView *)webView { - [self updateNetworkActivityIndicatorForWebView:webView]; - [self prepareTargetLinks:webView]; - [self prepareWindowOpenAndClosePopupLinks:webView]; - self.title = [self parseTitleFromWebView:webView]; -} - -- (void)webView:(__unused UIWebView *)webView didFailLoadWithError:(__unused NSError *)error { - if ([error.domain isEqualToString:@"WebKitErrorDomain"] && error.code == 102) { - // Not a real error; occurs when webView:shouldStartLoadWithRequest:navigationType: returns NO - return; - } else { - if ([UIAlertController class]) { - UIAlertController *alert = [UIAlertController alertControllerWithTitle:error.localizedDescription - message:nil - preferredStyle:UIAlertControllerStyleAlert]; - [alert addAction:[UIAlertAction actionWithTitle:BTThreeDSecureLocalizedString(ERROR_ALERT_OK_BUTTON_TEXT) - style:UIAlertActionStyleCancel - handler:^(__unused UIAlertAction *action) { - }]]; - [self presentViewController:alert animated:YES completion:nil]; - } else { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [[[UIAlertView alloc] initWithTitle:error.localizedDescription - message:nil - delegate:nil - cancelButtonTitle:BTThreeDSecureLocalizedString(ERROR_ALERT_OK_BUTTON_TEXT) - otherButtonTitles:nil] show]; -#pragma clang diagnostic pop - } - } -} - - -#pragma mark Web View Inspection - -- (NSString *)parseTitleFromWebView:(UIWebView *)webView { - return [webView stringByEvaluatingJavaScriptFromString:@"document.title"]; -} - - -#pragma mark Web View Popup Links - -- (void)prepareTargetLinks:(UIWebView *)webView { - NSString *js = [NSString stringWithFormat:@"var as = document.getElementsByTagName('a');\ - for (var i = 0; i < as.length; i++) {\ - if (as[i]['target']) { as[i]['href'] = '%@+' + as[i]['href']; }\ - }\ - true;", BTWebViewControllerPopupOpenDummyURLScheme]; - [webView stringByEvaluatingJavaScriptFromString:js]; -} - -- (void)prepareWindowOpenAndClosePopupLinks:(UIWebView *)webView { - NSString *js = [NSString stringWithFormat:@"(function(window) {\ - function FakeWindow () {\ - var fakeWindow = {};\ - for (key in window) {\ - if (typeof window[key] == 'function') {\ - fakeWindow[key] = function() { console.log(\"FakeWindow received method call: \", key); };\ - }\ - }\ - return fakeWindow;\ - }\ - function absoluteUrl (relativeUrl) { var a = document.createElement('a'); a.href = relativeUrl; return a.href; }\ - window.open = function (url) { window.location = '%@+' + absoluteUrl(url); return new FakeWindow(); };\ - window.close = function () { window.location = '%@://'; };\ - })(window)", BTWebViewControllerPopupOpenDummyURLScheme, BTWebViewControllerPopupCloseDummyURLScheme]; - [webView stringByEvaluatingJavaScriptFromString:js]; -} - -- (BOOL)isURLPopupOpenLink:(NSURL *)URL { - NSString *schemePrefix = [[URL.scheme componentsSeparatedByString:@"+"] firstObject]; - return [schemePrefix isEqualToString:BTWebViewControllerPopupOpenDummyURLScheme]; -} - -- (BOOL)isURLPopupCloseLink:(NSURL *)URL { - NSString *schemePrefix = [[URL.scheme componentsSeparatedByString:@"+"] firstObject]; - return [schemePrefix isEqualToString:BTWebViewControllerPopupCloseDummyURLScheme]; -} - -- (NSURL *)extractPopupLinkURL:(NSURL *)URL { - NSURLComponents *c = [NSURLComponents componentsWithURL:URL resolvingAgainstBaseURL:NO]; - c.scheme = [[URL.scheme componentsSeparatedByString:@"+"] lastObject]; - - return c.URL; -} - -- (void)openPopupWithURLRequest:(NSURLRequest *)request { - NSMutableURLRequest *mutableRequest = request.mutableCopy; - mutableRequest.URL = [self extractPopupLinkURL:request.URL]; - request = mutableRequest.copy; - BTWebViewController *popup = [[BTWebViewController alloc] initWithRequest:request delegate:self]; - UINavigationController *navigationViewController = [[UINavigationController alloc] initWithRootViewController:popup]; - [self presentViewController:navigationViewController animated:YES completion:nil]; -} - - -#pragma mark delegate - -- (void)popupWebViewViewControllerDidFinish:(BTWebViewController *)viewController { - [viewController dismissViewControllerAnimated:YES completion:nil]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/BTThreeDSecureLocalizedString.h b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/BTThreeDSecureLocalizedString.h deleted file mode 100755 index b8127e0a..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/BTThreeDSecureLocalizedString.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -#define BTThreeDSecureLocalizedString(KEY) [BTThreeDSecureLocalizedString KEY] - -@interface BTThreeDSecureLocalizedString : NSObject - -+ (NSString *)ERROR_ALERT_OK_BUTTON_TEXT; -+ (NSString *)ERROR_ALERT_CANCEL_BUTTON_TEXT; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/BTThreeDSecureLocalizedString.m b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/BTThreeDSecureLocalizedString.m deleted file mode 100755 index 81d21430..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/BTThreeDSecureLocalizedString.m +++ /dev/null @@ -1,29 +0,0 @@ -#import "BTThreeDSecureLocalizedString.h" - -@implementation BTThreeDSecureLocalizedString - -+ (NSBundle *)localizationBundle { - - static NSString * bundleName = @"Braintree-3D-Secure-Localization"; - NSString *localizationBundlePath = [[NSBundle mainBundle] pathForResource:bundleName ofType:@"bundle"]; - if (!localizationBundlePath) { - localizationBundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:bundleName ofType:@"bundle"]; - } - - return localizationBundlePath ? [NSBundle bundleWithPath:localizationBundlePath] : [NSBundle mainBundle]; -} - -+ (NSString *)localizationTable { - return @"Three-D-Secure"; -} - -+ (NSString *)ERROR_ALERT_OK_BUTTON_TEXT { - return NSLocalizedStringWithDefaultValue(@"ERROR_ALERT_OK_BUTTON_TEXT", [self localizationTable], [self localizationBundle], @"OK", @"Button text to indicate acceptance of an alert condition"); -} - - -+ (NSString *)ERROR_ALERT_CANCEL_BUTTON_TEXT { - return NSLocalizedStringWithDefaultValue(@"ERROR_ALERT_CANCEL_BUTTON_TEXT", [self localizationTable], [self localizationBundle], @"Cancel", @"Button text to indicate acceptance of an alert condition"); -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/da.lproj/Three-D-Secure.strings b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/da.lproj/Three-D-Secure.strings deleted file mode 100755 index c9843b0e56cb1ec71d0db8270da84badca7e17c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmd6i!3x4K5JczPuLwEz;s=Nam7Ej%SQM{^#Uh#rRR7P==DH%bS-zxUSZS5cWTeFC6&FlArrGljdLZh zpd*MxtF`t;H{@H?0S?q!{&!LXBDIz`=nQ*&R)lAE027|GtJjk4)!$whwfo^Jn<|%l E0q8)LL$C9YBpE0 za@qq=1TD2Kx*=bqcCf<>{O_O!c)Y;tbc8K?7KEku1SU2{UEv;Y&iv|c@AKOHa98ds GmwW(b#6|=F diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/en.lproj/Three-D-Secure.strings b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/en.lproj/Three-D-Secure.strings deleted file mode 100755 index 752d686a087e637993bafcdc035cefc30c72445c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmd6i!3x4a3`FPLuPA%$#Sah_jeuYRox9z9CPOWsRJn%*Cp zsZyz>CPi$}1s2um2BvHP&!|T*sLi#K7_d%PcuO_qCA}vw@q|6vn5Tq1H%*B6Ye&WA zLPl0Q%;8?OHkmi%E7%saXrA}&)nE?I6Ri%QVb20L^nG5@lZ_~IrWb#Eozwbm He&6&2nW0C? diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/es_ES.lproj/Three-D-Secure.strings b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/es_ES.lproj/Three-D-Secure.strings deleted file mode 100755 index 394a3cb17811d0c17de3a5b28948da63dedba0ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmd6jK?}k#429o$zhd;bi$6d-OzBCnAQQZmQ6~t)$>_jeuYRox9z9CPOWsRJn%*Cp zsZyz>CPi$}1s2um2BvHP&!|T*sLi#K7_d%PcuO_qCA}vw@q|6vn5Tq1H%*B6Ye&WA zLPl0Q%;8?OHkmi%E7%saXrA}&)nE?I6Ri%QVb20L^nG5@lZ_~IrWb#Eozwbm He&6&2nW0C? diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/fr.lproj/Three-D-Secure.strings b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/fr.lproj/Three-D-Secure.strings deleted file mode 100755 index 5baa2015a720f0bf1ac21525e58b28c5d8824f21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 422 zcmd6i!3x4K5JczPuP8b8;s=Nam7Ej=`y~e5H0TTT=`y~e5H0TTT=`y~e5H0TTTO~rttt`p|X|Yf<&+jVT~Y&5sBb2wGb3MfL=mk|T6@)`8sa8uc zQLT+;WiV+(W%YW(mQC=D>IF{fO0VWkpw}JU(Y3s0_6nOe9;iLamQ?oIhD>}t8k{RR zc^yF@qSo3M-I8xn2iQ}K{O_a|1Zt7j>kK=5R)k}A1T&rk&Q42qSATn3(C&wuY^q%H E0YyYbRR910 diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/nb.lproj/Three-D-Secure.strings b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/nb.lproj/Three-D-Secure.strings deleted file mode 100755 index ddd86aa0286ef5c3e65a2401396c68f8edd31017..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmd6i!3qK~3`FO=U$OMK7e7EesPv>*kQKa@wXPtDD^f*&UVW)Q;88-RnIz0KueU~O zRBNW2GBM~3%j)$2ts1~1-94Dpm08W3h+Y?X$JFYY-2-Uc@I>!gR8rA3g-m`u8k{RR zd98^+MoqOWyrrJQR-mUB`QJt@5$Hu;uPx~CnUId%yLPxeac~-=T>b53L5m+QvaNE- E2e^Vo0ssI2 diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/nl.lproj/Three-D-Secure.strings b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/nl.lproj/Three-D-Secure.strings deleted file mode 100755 index b5253716fbd0d6888093fd48e2593aefeee41449..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 426 zcmd6iu?hk)5JacGuLvox@dLy{C6!`8POu9{j3CIJNDlmZ^(FcNmNM*QXLs4jK3|%t zmC;I*G8i?WvXUNf$wv4>^#n)twP$!ENV=hWx+OQvp5dYkU#Z>emRR?e4Vn0Ov^Y1i za@qq=1TD3#x+7nscCe!s_}@Vt@YDjY(-F4#EC|c&0H&{JBDb2ezxmtyyf#1FRi^4C EZ;lj3G5`Po diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/pl.lproj/Three-D-Secure.strings b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/pl.lproj/Three-D-Secure.strings deleted file mode 100755 index 0c25116c0f2d01a1ca8b029b240a5eae2b70c2a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmd6i!3x4K5JczPuLwEz;s=Nam7Ejve;7R4uRRJ%h##2ehe7NoB50$oOYR!{$m( zUVALyQA=$LZ^_rN9q7>__Z`$?0WA`}j-X@D0(bO%uNcTClsVI@zx^&~^TSuxRX%wG D&2UAd diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/ru.lproj/Three-D-Secure.strings b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/ru.lproj/Three-D-Secure.strings deleted file mode 100755 index 4a985e50512b1c21a9e95c709bfb26b516bd6f30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmd6iu?oUK5JacADxY8>N6IwXSZN9)S1BGy1iKJo0)iNk2!6f#?(zecvh3{6>@j=$ z{%EF5R)wA#h+a3?pjIz1bUk=MJ%f$vIJ4A-Xmy9zOha#Z+kt@xyrMm#OA~#A!$6KZ zGBzhl<#ZrCS!u0Z*kQKa@wXPtDD^f*&UVW)Q;88-RnIz0KueU~O zRBNW2GBM~3%j)$2ts1~1-94Dpm08W3h+Y?X$JFYY-2-Uc@I>!gR8rA3g-m`u8k{RR zd98^+MoqOWyrrJQR-mUB`QJt@5$Hu;uPx~CnUId%yLPxeac~-=T>b53L5m+QvaNE- E2e^Vo0ssI2 diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/tr.lproj/Three-D-Secure.strings b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Localization/tr.lproj/Three-D-Secure.strings deleted file mode 100755 index 0ead55b225f7a9d9b1b316701328bd1673090ecd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmd6iu?hk)5JboJz9OW&MtiYPNu?N&6YRnfPY_N|B!XYBzC?Rl8FqGOHtc4fFO5~p zXra3j7<54;b$Y_>jtsuAvB~}o$6^YOzcm@yVanzUe0B+?of9B7G zKbiMOBNZ~5>8=1ewWy#*JshhJKG8kEUUixovImW>=$dJ)4R4Qd)RE8hZpp -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface BTThreeDSecureCardNonce : BTCardNonce - -@property (nonatomic, readonly, assign) BOOL liabilityShifted; -@property (nonatomic, readonly, assign) BOOL liabilityShiftPossible; - -#pragma mark - Internal - -- (instancetype)initWithNonce:(NSString *)nonce - description:(nullable NSString *)description - cardNetwork:(BTCardNetwork)cardNetwork - lastTwo:(nullable NSString *)lastTwo - threeDSecureJSON:(BTJSON *)threeDSecureJSON - isDefault:(BOOL)isDefault; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Public/BTThreeDSecureDriver.h b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Public/BTThreeDSecureDriver.h deleted file mode 100755 index 53ebc7fb..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Public/BTThreeDSecureDriver.h +++ /dev/null @@ -1,102 +0,0 @@ -#import -#if __has_include("BraintreeCore.h") -#import "BraintreeCard.h" -#import "BraintreeCore.h" -#else -#import -#import -#endif -#import "BTThreeDSecureCardNonce.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol BTThreeDSecureDriverDelegate; -/*! - @brief 3D Secure Verification Driver - - @discussion 3D Secure is a protocol that enables cardholders and issuers to add a layer of security - to e-commerce transactions via password entry at checkout. - - One of the primary reasons to use 3D Secure is to benefit from a shift in liability from the - merchant to the issuer, which may result in interchange savings. Please read our online - documentation (https://developers.braintreepayments.com/ios/guides/3d-secure) for a full explanation of 3D Secure. - - After initializing this class with a Braintree client and delegate, you may verify Braintree - payment methods via the verifyCardWithNonce:amount: method. During verification, the delegate - may receive a request to present a view controller, as well as a success and failure messages. - - Verification is associated with a transaction amount and your merchant account. To specify a - different merchant account, you will need to specify the merchant account id - when generating a client token (See https://developers.braintreepayments.com/ios/sdk/overview/generate-client-token ). - - Your delegate must implement: - * paymentDriver:requestsPresentationOfViewController: - * paymentDriver:requestsDismissalOfViewController: - - When verification succeeds, the original payment method nonce is consumed, and you will receive - a new payment method nonce, which points to the original payment method, as well as the 3D - Secure Verification. Transactions created with this nonce are eligible for 3D Secure - liability shift. - - When verification fails, the original payment method nonce is not consumed. While you may choose - to proceed with transaction creation, using the original payment method nonce, this transaction - will not be associated with a 3D Secure Verification. - - @note The user authentication view controller is not always necessary to achieve the liabilty - shift. In these cases, your completionBlock will immediately be called. -*/ -@interface BTThreeDSecureDriver : NSObject - -/*! - @brief Initializes a 3D Secure verification manager - - @param apiClient The Braintree API Client - @param delegate The BTViewControllerPresentingDelegate - - @return An initialized instance of BTThreeDSecureDriver -*/ -- (instancetype)initWithAPIClient:(BTAPIClient *)apiClient delegate:(id)delegate NS_DESIGNATED_INITIALIZER; - -- (instancetype)init __attribute__((unavailable("Please use initWithAPIClient: instead."))); - -/*! - @brief Verify a card for a 3D Secure transaction, referring to the card by raw payment method nonce - - @discussion This method is useful for implementations where 3D Secure verification occurs after generating - a payment method nonce from a vaulted credit card on your backend. - - On success, you will receive an instance of `BTCardNonce`. Typically, an implementation will send this tokenized card to your own - server for further use. - On failure, you will receive an error. - - A failure may occur at any point during tokenization: - - Payment authorization is initiated with an incompatible configuration (e.g. no authorization - mechanism possible for specified provider) - - An authorization provider encounters an error - - A network or gateway error occurs - - The user-provided credentials led to a non-transactable payment method. - - On user cancellation, you will receive `nil` for both parameters. - - @note This method performs an asynchronous operation and may request presentation of a view - controller via the delegate. It is the caller's responsibility to present an activity - indication to the user in the meantime. - - @param nonce A payment method nonce - @param amount The amount of the transaction in the current merchant account's currency - @param completionBlock This completion will be invoked exactly once when authorization is complete, is cancelled, or an error occurs. -*/ -- (void)verifyCardWithNonce:(NSString *)nonce - amount:(NSDecimalNumber *)amount - completion:(void (^)(BTThreeDSecureCardNonce * _Nullable tokenizedCard, NSError * _Nullable error))completionBlock; - -#pragma mark - Delegate - -/*! - @brief A delegate that presents and dismisses a view controller, as necessary, for the 3D Secure verification flow. -*/ -@property (nonatomic, weak) id delegate; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Public/BTThreeDSecureErrors.h b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Public/BTThreeDSecureErrors.h deleted file mode 100755 index 66e2d6df..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Public/BTThreeDSecureErrors.h +++ /dev/null @@ -1,27 +0,0 @@ -#import - -/*! - @brief An error domain for 3D Secure errors - - @see BTThreeDSecure -*/ -extern NSString * const BTThreeDSecureErrorDomain; -extern NSString * const BTThreeDSecureInfoKey; -extern NSString * const BTThreeDSecureValidationErrorsKey; - -/*! - @brief Error codes that describe errors that occur during 3D Secure -*/ -typedef NS_ENUM(NSInteger, BTThreeDSecureErrorType){ - - BTThreeDSecureErrorTypeUnknown = 0, - - /// 3D Secure failed during the backend card lookup phase; please retry - BTThreeDSecureErrorTypeFailedLookup, - - /// 3D Secure failed during the user-facing authentication phase; please retry - BTThreeDSecureErrorTypeFailedAuthentication, - - /// Braintree SDK is integrated incorrectly - BTThreeDSecureErrorTypeIntegration, -}; diff --git a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Public/Braintree3DSecure.h b/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Public/Braintree3DSecure.h deleted file mode 100755 index ed79688e..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/Braintree3DSecure/Public/Braintree3DSecure.h +++ /dev/null @@ -1,14 +0,0 @@ -#import - -FOUNDATION_EXPORT double Braintree3DSecureVersionNumber; - -FOUNDATION_EXPORT const unsigned char Braintree3DSecureVersionString[]; - -#if __has_include("BraintreeCore.h") -#import "BraintreeCore.h" -#else -#import -#endif -#import "BTThreeDSecureDriver.h" -#import "BTThreeDSecureErrors.h" -#import "BTThreeDSecureCardNonce.h" diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTApplePayCardNonce.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTApplePayCardNonce.m deleted file mode 100755 index b2cac58b..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTApplePayCardNonce.m +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTApplePayCardNonce.h" - -@implementation BTApplePayCardNonce - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTApplePayClient.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTApplePayClient.m deleted file mode 100755 index aa3b6559..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTApplePayClient.m +++ /dev/null @@ -1,169 +0,0 @@ -#if __has_include("BraintreeCore.h") -#import "BTAPIClient_Internal.h" -#import "BTPaymentMethodNonce.h" -#else -#import -#import -#endif -#import "BTApplePayClient_Internal.h" -#import "BTConfiguration+ApplePay.h" - -NSString *const BTApplePayErrorDomain = @"com.braintreepayments.BTApplePayErrorDomain"; - -@interface BTApplePayClient () -@end - -@implementation BTApplePayClient - -#pragma mark - Initialization - -+ (void)load { - if (self == [BTApplePayClient class]) { - [[BTPaymentMethodNonceParser sharedParser] registerType:@"ApplePayCard" withParsingBlock:^BTPaymentMethodNonce * _Nullable(BTJSON * _Nonnull applePayCard) { - NSString *cardType = applePayCard[@"details"][@"cardType"] ? [applePayCard[@"details"][@"cardType"] asString] : @"ApplePayCard"; - return [[BTApplePayCardNonce alloc] initWithNonce:[applePayCard[@"nonce"] asString] localizedDescription:[applePayCard[@"description"] asString] type:cardType]; - }]; - } -} - -- (instancetype)initWithAPIClient:(BTAPIClient *)apiClient { - if (self = [super init]) { - _apiClient = apiClient; - } - return self; -} - -- (instancetype)init { - return nil; -} - -#pragma mark - Public methods - -- (void)paymentRequest:(void (^)(PKPaymentRequest * _Nullable, NSError * _Nullable))completion { - if (!self.apiClient) { - NSError *error = [NSError errorWithDomain:BTApplePayErrorDomain - code:BTApplePayErrorTypeIntegration - userInfo:@{NSLocalizedDescriptionKey: @"BTAPIClient is nil."}]; - [self invokeBlock:completion onMainThreadWithPaymentRequest:nil error:error]; - return; - } - - [self.apiClient fetchOrReturnRemoteConfiguration:^(BTConfiguration * _Nullable configuration, NSError * _Nullable error) { - if (error) { - [self.apiClient sendAnalyticsEvent:@"ios.apple-pay.error.configuration"]; - [self invokeBlock:completion onMainThreadWithPaymentRequest:nil error:error]; - return; - } - - if (!configuration.isApplePayEnabled) { - NSError *error = [NSError errorWithDomain:BTApplePayErrorDomain - code:BTApplePayErrorTypeUnsupported - userInfo:@{ NSLocalizedDescriptionKey: @"Apple Pay is not enabled for this merchant. Please ensure that Apple Pay is enabled in the control panel and then try saving an Apple Pay payment method again." }]; - [self invokeBlock:completion onMainThreadWithPaymentRequest:nil error:error]; - [self.apiClient sendAnalyticsEvent:@"ios.apple-pay.error.disabled"]; - return; - } - - PKPaymentRequest *paymentRequest = [[PKPaymentRequest alloc] init]; - paymentRequest.countryCode = configuration.applePayCountryCode; - paymentRequest.currencyCode = configuration.applePayCurrencyCode; - paymentRequest.merchantIdentifier = configuration.applePayMerchantIdentifier; - paymentRequest.supportedNetworks = configuration.applePaySupportedNetworks; - - [self invokeBlock:completion onMainThreadWithPaymentRequest:paymentRequest error:nil]; - }]; -} - -- (void)tokenizeApplePayPayment:(PKPayment *)payment completion:(void (^)(BTApplePayCardNonce *, NSError *))completionBlock { - if (!self.apiClient) { - NSError *error = [NSError errorWithDomain:BTApplePayErrorDomain - code:BTApplePayErrorTypeIntegration - userInfo:@{NSLocalizedDescriptionKey: @"BTApplePayClient tokenization failed because BTAPIClient is nil."}]; - completionBlock(nil, error); - return; - } - - [self.apiClient sendAnalyticsEvent:@"ios.apple-pay.start"]; - - if (!payment) { - NSError *error = [NSError errorWithDomain:BTApplePayErrorDomain - code:BTApplePayErrorTypeUnsupported - userInfo:@{NSLocalizedDescriptionKey: @"A valid PKPayment is required."}]; - completionBlock(nil, error); - [self.apiClient sendAnalyticsEvent:@"ios.apple-pay.error.invalid-payment"]; - return; - } - - [self.apiClient fetchOrReturnRemoteConfiguration:^(BTConfiguration *configuration, NSError *error) { - if (error) { - [self.apiClient sendAnalyticsEvent:@"ios.apple-pay.error.configuration"]; - completionBlock(nil, error); - return; - } - - if (![configuration.json[@"applePay"][@"status"] isString] || - [[configuration.json[@"applePay"][@"status"] asString] isEqualToString:@"off"]) { - NSError *error = [NSError errorWithDomain:BTApplePayErrorDomain - code:BTApplePayErrorTypeUnsupported - userInfo:@{ NSLocalizedDescriptionKey: @"Apple Pay is not enabled for this merchant. Please ensure that Apple Pay is enabled in the control panel and then try saving an Apple Pay payment method again." }]; - completionBlock(nil, error); - [self.apiClient sendAnalyticsEvent:@"ios.apple-pay.error.disabled"]; - return; - } - - NSMutableDictionary *parameters = [NSMutableDictionary new]; - parameters[@"applePaymentToken"] = [self parametersForPaymentToken:payment.token]; - parameters[@"_meta"] = @{ - @"source" : self.apiClient.metadata.sourceString, - @"integration" : self.apiClient.metadata.integrationString, - @"sessionId" : self.apiClient.metadata.sessionId, - }; - - [self.apiClient POST:@"v1/payment_methods/apple_payment_tokens" - parameters:parameters - completion:^(BTJSON *body, __unused NSHTTPURLResponse *response, NSError *error) { - if (error) { - completionBlock(nil, error); - [self.apiClient sendAnalyticsEvent:@"ios.apple-pay.error.tokenization"]; - return; - } - - BTJSON *applePayCard = body[@"applePayCards"][0]; - NSString *cardType = applePayCard[@"details"][@"cardType"] ? [applePayCard[@"details"][@"cardType"] asString] : @"ApplePayCard"; - BTApplePayCardNonce *tokenized = [[BTApplePayCardNonce alloc] initWithNonce:[applePayCard[@"nonce"] asString] localizedDescription:[applePayCard[@"description"] asString] type:cardType]; - - completionBlock(tokenized, nil); - [self.apiClient sendAnalyticsEvent:@"ios.apple-pay.success"]; - }]; - }]; -} - -#pragma mark - Helpers - -- (NSDictionary *)parametersForPaymentToken:(PKPaymentToken *)token { - NSMutableDictionary *mutableParameters = [NSMutableDictionary dictionary]; - - mutableParameters[@"paymentData"] = [token.paymentData base64EncodedStringWithOptions:0]; - mutableParameters[@"transactionIdentifier"] = token.transactionIdentifier; - - if ([PKPaymentMethod class]) { - mutableParameters[@"paymentInstrumentName"] = token.paymentMethod.displayName; - mutableParameters[@"paymentNetwork"] = token.paymentMethod.network; - } else { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - mutableParameters[@"paymentInstrumentName"] = token.paymentInstrumentName; - mutableParameters[@"paymentNetwork"] = token.paymentNetwork; -#pragma clang diagnostic pop - } - - return [mutableParameters copy]; -} - -- (void)invokeBlock:(nonnull void (^)(PKPaymentRequest * _Nullable, NSError * _Nullable))completion onMainThreadWithPaymentRequest:(nullable PKPaymentRequest *)paymentRequest error:(nullable NSError *)error { - dispatch_async(dispatch_get_main_queue(), ^{ - completion(paymentRequest, error); - }); -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTApplePayClient_Internal.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTApplePayClient_Internal.h deleted file mode 100755 index 466e9691..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTApplePayClient_Internal.h +++ /dev/null @@ -1,9 +0,0 @@ -#import "BTApplePayClient.h" - -@interface BTApplePayClient () -/*! - @brief Exposed for testing to get the instance of BTAPIClient -*/ -@property (nonatomic, strong) BTAPIClient *apiClient; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTConfiguration+ApplePay.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTConfiguration+ApplePay.m deleted file mode 100755 index 0164e33a..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/BTConfiguration+ApplePay.m +++ /dev/null @@ -1,47 +0,0 @@ -#import "BTConfiguration+ApplePay.h" -#import - -@implementation BTConfiguration (ApplePay) - -- (BOOL)isApplePayEnabled { - BTJSON *applePayConfiguration = self.json[@"applePay"]; - return [applePayConfiguration[@"status"] isString] && ![[applePayConfiguration[@"status"] asString] isEqualToString:@"off"]; -} - -- (BOOL)canMakeApplePayPayments { - return [PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:self.applePaySupportedNetworks]; -} - -- (NSString *)applePayCountryCode { - return [self.json[@"applePay"][@"countryCode"] asString]; -} - -- (NSString *)applePayCurrencyCode { - return [self.json[@"applePay"][@"currencyCode"] asString]; -} - -- (NSString *)applePayMerchantIdentifier { - return [self.json[@"applePay"][@"merchantIdentifier"] asString]; -} - -- (NSArray *)applePaySupportedNetworks { - NSArray *gatewaySupportedNetworks = [self.json[@"applePay"][@"supportedNetworks"] asStringArray]; - - NSMutableArray *supportedNetworks = [NSMutableArray new]; - - for (NSString *gatewaySupportedNetwork in gatewaySupportedNetworks) { - if ([gatewaySupportedNetwork localizedCaseInsensitiveCompare:@"visa"] == NSOrderedSame) { - [supportedNetworks addObject:PKPaymentNetworkVisa]; - } else if ([gatewaySupportedNetwork localizedCaseInsensitiveCompare:@"mastercard"] == NSOrderedSame) { - [supportedNetworks addObject:PKPaymentNetworkMasterCard]; - } else if ([gatewaySupportedNetwork localizedCaseInsensitiveCompare:@"amex"] == NSOrderedSame) { - [supportedNetworks addObject:PKPaymentNetworkAmex]; - } else if (&PKPaymentNetworkDiscover != NULL && [gatewaySupportedNetwork localizedCaseInsensitiveCompare:@"discover"] == NSOrderedSame) { // Very important to check that this constant is available first! - [supportedNetworks addObject:PKPaymentNetworkDiscover]; - } - } - - return [supportedNetworks copy]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BTApplePayCardNonce.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BTApplePayCardNonce.h deleted file mode 100755 index 94280f0c..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BTApplePayCardNonce.h +++ /dev/null @@ -1,14 +0,0 @@ -#import -#if __has_include("BraintreeCore.h") -#import "BraintreeCore.h" -#else -#import -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface BTApplePayCardNonce : BTPaymentMethodNonce - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BTApplePayClient.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BTApplePayClient.h deleted file mode 100755 index fe5d1a13..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BTApplePayClient.h +++ /dev/null @@ -1,57 +0,0 @@ -#import -#if __has_include("BraintreeCore.h") -#import "BraintreeCore.h" -#else -#import -#endif - -#import "BTApplePayCardNonce.h" - -NS_ASSUME_NONNULL_BEGIN - -extern NSString * const BTApplePayErrorDomain; -typedef NS_ENUM(NSInteger, BTApplePayErrorType) { - BTApplePayErrorTypeUnknown = 0, - - /// Apple Pay is disabled in the Braintree Control Panel - BTApplePayErrorTypeUnsupported, - - /// Braintree SDK is integrated incorrectly - BTApplePayErrorTypeIntegration, -}; - -@interface BTApplePayClient : NSObject - -/*! - @brief Creates an Apple Pay client. - - @param apiClient An API client -*/ -- (instancetype)initWithAPIClient:(BTAPIClient *)apiClient NS_DESIGNATED_INITIALIZER; - - -- (instancetype)init __attribute__((unavailable("Please use initWithAPIClient:"))); - -/*! - @brief Creates a `PKPaymentRequest` with values from your Braintree Apple Pay configuration. - - @discussion It populates the following values of `PKPaymentRequest`: `countryCode`, `currencyCode`, `merchantIdentifier`, `supportedNetworks`. - - @param completion A completion block that returns the payment request or an error. This block is invoked on the main thread. -*/ -- (void)paymentRequest:(void (^)(PKPaymentRequest * _Nullable paymentRequest, NSError * _Nullable error))completion; - -/*! - @brief Tokenizes an Apple Pay payment. - - @param payment A `PKPayment` instance, typically obtained by presenting a `PKPaymentAuthorizationViewController` - @param completionBlock A completion block that is invoked when tokenization has completed. If tokenization succeeds, - `tokenizedApplePayPayment` will contain a nonce and `error` will be `nil`; if it fails, - `tokenizedApplePayPayment` will be `nil` and `error` will describe the failure. -*/ -- (void)tokenizeApplePayPayment:(PKPayment *)payment - completion:(void (^)(BTApplePayCardNonce * _Nullable tokenizedApplePayPayment, NSError * _Nullable error))completionBlock; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BTConfiguration+ApplePay.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BTConfiguration+ApplePay.h deleted file mode 100755 index 71ee7da2..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BTConfiguration+ApplePay.h +++ /dev/null @@ -1,40 +0,0 @@ -#if __has_include("BraintreeCore.h") -#import "BraintreeCore.h" -#else -#import -#endif -#import - -@interface BTConfiguration (ApplePay) - -/*! - @brief Indicates whether Apple Pay is enabled for your merchant account. -*/ -@property (nonatomic, readonly, assign) BOOL isApplePayEnabled; - -/*! - @brief The Apple Pay payment networks supported by your Braintree merchant account. -*/ -@property (nonatomic, readonly, nullable) NSArray *applePaySupportedNetworks; - -/*! - @brief Indicates if the Apple Pay merchant enabled payment networks are supported on this device. -*/ -@property (nonatomic, readonly, assign) BOOL canMakeApplePayPayments; - -/*! - @brief The country code for your Braintree merchant account. -*/ -@property (nonatomic, readonly, nullable) NSString *applePayCountryCode; - -/*! - @brief The Apple Pay currency code supported by your Braintree merchant account. -*/ -@property (nonatomic, readonly, nullable) NSString *applePayCurrencyCode; - -/*! - @brief The Apple Pay merchant identifier associated with your Braintree merchant account. -*/ -@property (nonatomic, readonly, nullable) NSString *applePayMerchantIdentifier; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BraintreeApplePay.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BraintreeApplePay.h deleted file mode 100755 index 58e5bebe..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeApplePay/Public/BraintreeApplePay.h +++ /dev/null @@ -1,14 +0,0 @@ -#import - -FOUNDATION_EXPORT double BraintreeApplePayVersionNumber; - -FOUNDATION_EXPORT const unsigned char BraintreeApplePayVersionString[]; - -#if __has_include("BraintreeCore.h") -#import "BraintreeCore.h" -#else -#import -#endif -#import "BTApplePayClient.h" -#import "BTConfiguration+ApplePay.h" -#import "BTApplePayCardNonce.h" diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCard.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCard.m deleted file mode 100755 index 5980c1d2..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCard.m +++ /dev/null @@ -1,111 +0,0 @@ -#import "BTCard_Internal.h" -#import "BTJSON.h" - -@interface BTCard () -@property (nonatomic, strong) NSMutableDictionary *mutableParameters; -@end - -@implementation BTCard - -- (instancetype)init { - return [self initWithParameters:@{}]; -} - -- (nonnull instancetype)initWithParameters:(NSDictionary *)parameters { - if (self = [super init]) { - _mutableParameters = [parameters mutableCopy]; - _number = parameters[@"number"]; - NSArray *components = [parameters[@"expiration_date"] componentsSeparatedByString:@"/"]; - if (components.count == 2) { - _expirationMonth = components[0]; - _expirationYear = components[1]; - } - _postalCode = parameters[@"billing_address"][@"postal_code"]; - _cvv = parameters[@"cvv"]; - - _streetAddress = parameters[@"billing_address"][@"street_address"]; - _locality = parameters[@"billing_address"][@"locality"]; - _region = parameters[@"billing_address"][@"region"]; - _countryName = parameters[@"billing_address"][@"country_name"]; - _countryCodeAlpha2 = parameters[@"billing_address"][@"country_code_alpha2"]; - _cardholderName = parameters[@"cardholder_name"]; - - _shouldValidate = [parameters[@"options"][@"validate"] boolValue]; - } - return self; -} - -- (instancetype)initWithNumber:(NSString *)number - expirationMonth:(NSString *)expirationMonth - expirationYear:(NSString *)expirationYear - cvv:(NSString *)cvv -{ - if (self = [self initWithParameters:@{}]) { - _number = number; - _expirationMonth = expirationMonth; - _expirationYear = expirationYear; - _cvv = cvv; - } - return self; -} - -#pragma mark - - -- (NSDictionary *)parameters { - NSMutableDictionary *p = [self.mutableParameters mutableCopy]; - if (self.number) { - p[@"number"] = self.number; - } - if (self.expirationMonth && self.expirationYear) { - p[@"expiration_date"] = [NSString stringWithFormat:@"%@/%@", self.expirationMonth, self.expirationYear]; - } - if (self.cvv) { - p[@"cvv"] = self.cvv; - } - if (self.cardholderName) { - p[@"cardholder_name"] = self.cardholderName; - } - - NSMutableDictionary *billingAddressDictionary = [NSMutableDictionary new]; - if ([p[@"billing_address"] isKindOfClass:[NSDictionary class]]) { - [billingAddressDictionary addEntriesFromDictionary:p[@"billing_address"]]; - } - - if (self.postalCode) { - billingAddressDictionary[@"postal_code"] = self.postalCode; - } - - if (self.streetAddress) { - billingAddressDictionary[@"street_address"] = self.streetAddress; - } - - if (self.locality) { - billingAddressDictionary[@"locality"] = self.locality; - } - - if (self.region) { - billingAddressDictionary[@"region"] = self.region; - } - - if (self.countryName) { - billingAddressDictionary[@"country_name"] = self.countryName; - } - - if (self.countryCodeAlpha2) { - billingAddressDictionary[@"country_code_alpha2"] = self.countryCodeAlpha2; - } - - if (billingAddressDictionary.count > 0) { - p[@"billing_address"] = [billingAddressDictionary copy]; - } - - NSMutableDictionary *optionsDictionary = [NSMutableDictionary new]; - if ([p[@"options"] isKindOfClass:[NSDictionary class]]) { - [optionsDictionary addEntriesFromDictionary:p[@"options"]]; - } - optionsDictionary[@"validate"] = @(self.shouldValidate); - p[@"options"] = [optionsDictionary copy]; - return [p copy]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardClient.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardClient.m deleted file mode 100755 index 1d6691a7..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardClient.m +++ /dev/null @@ -1,163 +0,0 @@ -#import "BTErrors.h" -#import "BTCardClient_Internal.h" -#import "BTCardNonce_Internal.h" -#import "BTCardRequest.h" -#import "BTClientMetadata.h" -#import "BTHTTP.h" -#import "BTJSON.h" -#import "BTPaymentMethodNonceParser.h" -#import "BTTokenizationService.h" -#if __has_include("BraintreeCore.h") -#import "BTAPIClient_Internal.h" -#import "BTCard_Internal.h" -#else -#import -#import -#endif - -NSString *const BTCardClientErrorDomain = @"com.braintreepayments.BTCardClientErrorDomain"; - -@interface BTCardClient () -@end - -@implementation BTCardClient - -+ (void)load { - if (self == [BTCardClient class]) { - [[BTTokenizationService sharedService] registerType:@"Card" withTokenizationBlock:^(BTAPIClient *apiClient, NSDictionary *options, void (^completionBlock)(BTPaymentMethodNonce *paymentMethodNonce, NSError *error)) { - BTCardClient *client = [[BTCardClient alloc] initWithAPIClient:apiClient]; - [client tokenizeCard:[[BTCard alloc] initWithParameters:options] completion:completionBlock]; - }]; - - [[BTPaymentMethodNonceParser sharedParser] registerType:@"CreditCard" withParsingBlock:^BTPaymentMethodNonce * _Nullable(BTJSON * _Nonnull creditCard) { - return [BTCardNonce cardNonceWithJSON:creditCard]; - }]; - } -} - -- (instancetype)initWithAPIClient:(BTAPIClient *)apiClient { - if (!apiClient) { - return nil; - } - if (self = [super init]) { - self.apiClient = apiClient; - } - return self; -} - -- (instancetype)init { - return nil; -} - -- (void)tokenizeCard:(BTCard *)card completion:(void (^)(BTCardNonce *tokenizedCard, NSError *error))completion { - BTCardRequest *request = [[BTCardRequest alloc] initWithCard:card]; - [self tokenizeCard:request options:nil completion:completion]; -} - - -- (void)tokenizeCard:(BTCardRequest *)request options:(NSDictionary *)options completion:(void (^)(BTCardNonce * _Nullable, NSError * _Nullable))completionBlock -{ - if (!self.apiClient) { - NSError *error = [NSError errorWithDomain:BTCardClientErrorDomain - code:BTCardClientErrorTypeIntegration - userInfo:@{NSLocalizedDescriptionKey: @"BTCardClient tokenization failed because BTAPIClient is nil."}]; - completionBlock(nil, error); - return; - } - - NSMutableDictionary *parameters = [NSMutableDictionary new]; - if (request.card.parameters) { - NSMutableDictionary *mutableCardParameters = [request.card.parameters mutableCopy]; - - if (request.enrollmentID) { - // Convert the immutable options dictionary so to write to it without overwriting any existing options - NSMutableDictionary *unionPayEnrollment = [NSMutableDictionary new]; - unionPayEnrollment[@"id"] = request.enrollmentID; - if (request.smsCode) { - unionPayEnrollment[@"sms_code"] = request.smsCode; - } - mutableCardParameters[@"options"] = [mutableCardParameters[@"options"] mutableCopy]; - mutableCardParameters[@"options"][@"union_pay_enrollment"] = unionPayEnrollment; - } - - parameters[@"credit_card"] = [mutableCardParameters copy]; - } - parameters[@"_meta"] = @{ - @"source" : self.apiClient.metadata.sourceString, - @"integration" : self.apiClient.metadata.integrationString, - @"sessionId" : self.apiClient.metadata.sessionId, - }; - if (options) { - parameters[@"options"] = options; - } - [self.apiClient POST:@"v1/payment_methods/credit_cards" - parameters:parameters - completion:^(BTJSON *body, __unused NSHTTPURLResponse *response, NSError *error) - { - if (error != nil) { - NSHTTPURLResponse *response = error.userInfo[BTHTTPURLResponseKey]; - NSError *callbackError = error; - - if (response.statusCode == 422) { - callbackError = [NSError errorWithDomain:BTCardClientErrorDomain - code:BTCardClientErrorTypeCustomerInputInvalid - userInfo:[self.class validationErrorUserInfo:error.userInfo]]; - } - - if (request.enrollmentID) { - [self sendUnionPayAnalyticsEvent:NO]; - } else { - [self sendAnalyticsEventWithSuccess:NO]; - } - - completionBlock(nil, callbackError); - return; - } - - BTJSON *cardJSON = body[@"creditCards"][0]; - - if (request.enrollmentID) { - [self sendUnionPayAnalyticsEvent:!cardJSON.isError]; - } else { - [self sendAnalyticsEventWithSuccess:!cardJSON.isError]; - } - - // cardNonceWithJSON returns nil when cardJSON is nil, cardJSON.asError is nil when cardJSON is non-nil - completionBlock([BTCardNonce cardNonceWithJSON:cardJSON], cardJSON.asError); - }]; -} - -#pragma mark - Analytics - -- (void)sendAnalyticsEventWithSuccess:(BOOL)success { - NSString *event = [NSString stringWithFormat:@"ios.%@.card.%@", self.apiClient.metadata.integrationString, success ? @"succeeded" : @"failed"]; - [self.apiClient sendAnalyticsEvent:event]; -} - -- (void)sendUnionPayAnalyticsEvent:(BOOL)success { - NSString *event = [NSString stringWithFormat:@"ios.%@.unionpay.nonce-%@", self.apiClient.metadata.integrationString, success ? @"received" : @"failed"]; - [self.apiClient sendAnalyticsEvent:event]; -} - -#pragma mark - Helpers - -+ (NSDictionary *)validationErrorUserInfo:(NSDictionary *)userInfo { - NSMutableDictionary *mutableUserInfo = [userInfo mutableCopy]; - BTJSON *jsonResponse = userInfo[BTHTTPJSONResponseBodyKey]; - if ([jsonResponse asDictionary]) { - mutableUserInfo[BTCustomerInputBraintreeValidationErrorsKey] = [jsonResponse asDictionary]; - - BTJSON *fieldError = [[jsonResponse[@"fieldErrors"] asArray] firstObject]; - NSString *errorMessage = [jsonResponse[@"error"][@"message"] asString]; - if (errorMessage) { - mutableUserInfo[NSLocalizedDescriptionKey] = errorMessage; - } - NSString *firstFieldErrorMessage = [fieldError[@"fieldErrors"] firstObject][@"message"]; - if (firstFieldErrorMessage) { - mutableUserInfo[NSLocalizedFailureReasonErrorKey] = firstFieldErrorMessage; - } - } - return [mutableUserInfo copy]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardClient_Internal.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardClient_Internal.h deleted file mode 100755 index 799bacb4..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardClient_Internal.h +++ /dev/null @@ -1,19 +0,0 @@ -#import "BTCardClient.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface BTCardClient () - -/*! - @brief Exposed for testing to get the instance of BTAPIClient -*/ -@property (nonatomic, strong, readwrite) BTAPIClient *apiClient; - -/*! - @brief Convenience helper method for creating friendlier, more human-readable userInfo dictionaries for 422 HTTP errors -*/ -+ (NSDictionary *)validationErrorUserInfo:(NSDictionary *)userInfo; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardNonce.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardNonce.m deleted file mode 100755 index 429d4d28..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardNonce.m +++ /dev/null @@ -1,74 +0,0 @@ -#import "BTCardNonce_Internal.h" - -@implementation BTCardNonce - -- (instancetype)initWithNonce:(NSString *)nonce - description:(NSString *)description - cardNetwork:(BTCardNetwork)cardNetwork - lastTwo:(NSString *)lastTwo - isDefault:(BOOL)isDefault -{ - self = [super initWithNonce:nonce localizedDescription:description type:[BTCardNonce stringFromCardNetwork:cardNetwork] isDefault:isDefault]; - if (self) { - _cardNetwork = cardNetwork; - _lastTwo = lastTwo; - } - return self; -} - -+ (NSString *)stringFromCardNetwork:(BTCardNetwork)cardNetwork { - switch (cardNetwork) { - case BTCardNetworkAMEX: - return @"AMEX"; - case BTCardNetworkDinersClub: - return @"DinersClub"; - case BTCardNetworkDiscover: - return @"Discover"; - case BTCardNetworkMasterCard: - return @"MasterCard"; - case BTCardNetworkVisa: - return @"Visa"; - case BTCardNetworkJCB: - return @"JCB"; - case BTCardNetworkLaser: - return @"Laser"; - case BTCardNetworkMaestro: - return @"Maestro"; - case BTCardNetworkUnionPay: - return @"UnionPay"; - case BTCardNetworkSolo: - return @"Solo"; - case BTCardNetworkSwitch: - return @"Switch"; - case BTCardNetworkUKMaestro: - return @"UKMaestro"; - case BTCardNetworkUnknown: - default: - return @"Unknown"; - } -} - -+ (instancetype)cardNonceWithJSON:(BTJSON *)cardJSON { - // Normalize the card network string in cardJSON to be lowercase so that our enum mapping is case insensitive - BTJSON *cardType = [[BTJSON alloc] initWithValue:[cardJSON[@"details"][@"cardType"] asString].lowercaseString]; - return [[[self class] alloc] initWithNonce:[cardJSON[@"nonce"] asString] - description:[cardJSON[@"description"] asString] - cardNetwork:[cardType asEnum:@{ - @"american express": @(BTCardNetworkAMEX), - @"diners club": @(BTCardNetworkDinersClub), - @"unionpay": @(BTCardNetworkUnionPay), - @"discover": @(BTCardNetworkDiscover), - @"maestro": @(BTCardNetworkMaestro), - @"mastercard": @(BTCardNetworkMasterCard), - @"jcb": @(BTCardNetworkJCB), - @"laser": @(BTCardNetworkLaser), - @"solo": @(BTCardNetworkSolo), - @"switch": @(BTCardNetworkSwitch), - @"uk maestro": @(BTCardNetworkUKMaestro), - @"visa": @(BTCardNetworkVisa),} - orDefault:BTCardNetworkUnknown] - lastTwo:[cardJSON[@"details"][@"lastTwo"] asString] - isDefault:[cardJSON[@"default"] isTrue]]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardNonce_Internal.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardNonce_Internal.h deleted file mode 100755 index 62094092..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardNonce_Internal.h +++ /dev/null @@ -1,16 +0,0 @@ -#import "BTCardNonce.h" -#import "BTJSON.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface BTCardNonce () - -- (instancetype)initWithNonce:(nonnull NSString *)nonce - description:(nullable NSString *)description - cardNetwork:(BTCardNetwork)cardNetwork - lastTwo:(nullable NSString *)lastTwo - isDefault:(BOOL)isDefault; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardRequest.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardRequest.m deleted file mode 100755 index 03d8ed0b..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCardRequest.m +++ /dev/null @@ -1,15 +0,0 @@ -#import "BTCardRequest.h" - -@implementation BTCardRequest - -- (instancetype)initWithCard:(BTCard *)card { - if (!card) { - return nil; - } - if (self = [super init]) { - _card = card; - } - return self; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCard_Internal.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCard_Internal.h deleted file mode 100755 index d2f921f4..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/BTCard_Internal.h +++ /dev/null @@ -1,8 +0,0 @@ -#import "BTCard.h" -#import "BTJSON.h" - -@interface BTCard () - -- (NSDictionary *)parameters; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCard.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCard.h deleted file mode 100755 index 34422f1c..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCard.h +++ /dev/null @@ -1,92 +0,0 @@ -#import - -NS_ASSUME_NONNULL_BEGIN - -/*! - @class BTCard - @discussion The card tokenization request represents raw credit or debit card data provided by the customer. Its main purpose is to serve as the input for tokenization. -*/ -@interface BTCard : NSObject - -/*! - @brief A convenience initializer for creating a card tokenization request. -*/ -- (instancetype)initWithNumber:(NSString *)number - expirationMonth:(NSString *)expirationMonth - expirationYear:(NSString *)expirationYear - cvv:(nullable NSString *)cvv; - -- (instancetype)initWithParameters:(NSDictionary *)parameters NS_DESIGNATED_INITIALIZER; - -/*! - @brief The card number -*/ -@property (nonatomic, nullable, copy) NSString *number; - -/*! - @brief The expiration month as a one or two-digit number on the Gregorian calendar -*/ -@property (nonatomic, nullable, copy) NSString *expirationMonth; - -/*! - @brief The expiration year as a two or four-digit number on the Gregorian calendar -*/ -@property (nonatomic, nullable, copy) NSString *expirationYear; - -/*! - @brief The card CVV -*/ -@property (nonatomic, nullable, copy) NSString *cvv; - -/*! - @brief The postal code associated with the card's billing address -*/ - -@property (nonatomic, nullable, copy) NSString *postalCode; - -/*! - @brief Optional: the cardholder's name. -*/ -@property (nonatomic, nullable, copy) NSString *cardholderName; - -/*! - @brief Optional: the street address associated with the card's billing address -*/ -@property (nonatomic, nullable, copy) NSString *streetAddress; - -/*! - @brief Optional: the city associated with the card's billing address -*/ -@property (nonatomic, nullable, copy) NSString *locality; - -/*! - @brief Optional: the state/province associated with the card's billing address -*/ -@property (nonatomic, nullable, copy) NSString *region; - -/*! - @brief Optional: the country name associated with the card's billing address. - - @note Braintree only accepts specific country names. - @see https://developers.braintreepayments.com/reference/general/countries#list-of-countries -*/ -@property (nonatomic, nullable, copy) NSString *countryName; - -/*! - @brief Optional: the ISO 3166-1 alpha-2 country code specified in the card's billing address. - - @note Braintree only accepts specific alpha-2 values. - @see https://developers.braintreepayments.com/reference/general/countries#list-of-countries -*/ -@property (nonatomic, nullable, copy) NSString *countryCodeAlpha2; - -/*! - @brief Controls whether or not to return validations and/or verification results. By default, this is not enabled. - - @note Use this flag with caution. By enabling client-side validation, certain tokenize card requests may result in adding the card to the vault. These semantics are not currently documented. -*/ -@property (nonatomic, assign) BOOL shouldValidate; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCardClient.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCardClient.h deleted file mode 100755 index e1a5f5af..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCardClient.h +++ /dev/null @@ -1,64 +0,0 @@ -#import -#if __has_include("BraintreeCore.h") -#import "BraintreeCore.h" -#else -#import -#endif -#import "BTCard.h" -#import "BTCardNonce.h" - -@class BTCardRequest; - -NS_ASSUME_NONNULL_BEGIN - -extern NSString * const BTCardClientErrorDomain; - -typedef NS_ENUM(NSInteger, BTCardClientErrorType) { - BTCardClientErrorTypeUnknown = 0, - - /// Braintree SDK is integrated incorrectly - BTCardClientErrorTypeIntegration, - - /// Payment option (e.g. UnionPay) is not enabled for this merchant account - BTCardClientErrorTypePaymentOptionNotEnabled, - - /// Customer provided invalid input - BTCardClientErrorTypeCustomerInputInvalid, -}; - -@interface BTCardClient : NSObject - -/*! - @brief Creates a card client. - - @param apiClient An API client -*/ -- (instancetype)initWithAPIClient:(BTAPIClient *)apiClient NS_DESIGNATED_INITIALIZER; - -- (instancetype)init __attribute__((unavailable("Please use initWithAPIClient:"))); - -/*! - @brief Tokenizes a card. - - @param card The card to tokenize. It must have a valid number and expiration date. - @param completion A completion block that is invoked when card tokenization has completed. If tokenization succeeds, - `tokenizedCard` will contain a nonce and `error` will be `nil`; if it fails, `tokenizedCard` will be `nil` and `error` - will describe the failure. -*/ -- (void)tokenizeCard:(BTCard *)card completion:(void (^)(BTCardNonce * _Nullable tokenizedCard, NSError * _Nullable error))completion; - -/*! - @brief Tokenizes a card. - - @param request A card tokenization request that contains an enrolled card, the enrollment ID from `enrollUnionPayCard:completion:`, - and the enrollment auth code sent to the mobile phone number. - @param options A dictionary containing additional options to send when performing tokenization. Optional. - @param completion A completion block that is invoked when card tokenization has completed. If tokenization succeeds, `tokenizedCard` will contain a nonce and `error` will be `nil`; if it fails, `tokenizedCard` will be `nil` and `error` will describe the failure. -*/ -- (void)tokenizeCard:(BTCardRequest *)request - options:(nullable NSDictionary *)options - completion:(void (^)(BTCardNonce * _Nullable tokenizedCard, NSError * _Nullable error))completion; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCardNonce.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCardNonce.h deleted file mode 100755 index 3edb8e82..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCardNonce.h +++ /dev/null @@ -1,31 +0,0 @@ -#import -#if __has_include("BraintreeCore.h") -#import "BraintreeCore.h" -#else -#import -#endif - -NS_ASSUME_NONNULL_BEGIN - -@interface BTCardNonce : BTPaymentMethodNonce - -/*! - @brief The card network. -*/ -@property (nonatomic, readonly, assign) BTCardNetwork cardNetwork; - -/*! - @brief The last two digits of the card, if available. -*/ -@property (nonatomic, nullable, readonly, copy) NSString *lastTwo; - -#pragma mark - Internal - -/*! - @brief Create a `BTCardNonce` object from JSON. -*/ -+ (instancetype)cardNonceWithJSON:(BTJSON *)cardJSON; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCardRequest.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCardRequest.h deleted file mode 100755 index 689676fe..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BTCardRequest.h +++ /dev/null @@ -1,37 +0,0 @@ -#import "BTCard.h" -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface BTCardRequest : NSObject - -- (instancetype)initWithCard:(BTCard *)card; - -@property (nonatomic, strong) BTCard *card; - -#pragma mark - UnionPay properties - -/*! - @brief The mobile phone number to use to verify the enrollment via SMS. -*/ -@property (nonatomic, copy, nullable) NSString *mobilePhoneNumber; - -/*! - @brief The country code for the mobile phone number. This string should only contain digits. - @note By default, this is set to 62. -*/ -@property (nonatomic, copy, nullable) NSString *mobileCountryCode; - -/*! - @brief The enrollment verification code sent via SMS to the mobile phone number. The code is needed to tokenize a UnionPay card that requires enrollment. -*/ -@property (nonatomic, copy, nullable) NSString *smsCode; - -/*! - @brief The UnionPay enrollment ID -*/ -@property (nonatomic, copy, nullable) NSString *enrollmentID; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BraintreeCard.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BraintreeCard.h deleted file mode 100755 index f4160ef2..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCard/Public/BraintreeCard.h +++ /dev/null @@ -1,15 +0,0 @@ -#import - -FOUNDATION_EXPORT double BraintreeCardVersionNumber; - -FOUNDATION_EXPORT const unsigned char BraintreeCardVersionString[]; - -#if __has_include("BraintreeCore.h") -#import "BraintreeCore.h" -#else -#import -#endif -#import "BTCardClient.h" -#import "BTCard.h" -#import "BTCardNonce.h" -#import "BTCardRequest.h" diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIClient.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIClient.m deleted file mode 100755 index a89cd07f..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIClient.m +++ /dev/null @@ -1,328 +0,0 @@ -#import "BTAnalyticsMetadata.h" -#import "BTAnalyticsService.h" -#import "BTAPIClient_Internal.h" -#import "BTClientToken.h" -#import "BTLogger_Internal.h" -#import "BTPaymentMethodNonce.h" -#import "BTPaymentMethodNonceParser.h" - -NSString *const BTAPIClientErrorDomain = @"com.braintreepayments.BTAPIClientErrorDomain"; - -@interface BTAPIClient () -@property (nonatomic, strong) dispatch_queue_t configurationQueue; -@end - -@implementation BTAPIClient - -- (nullable instancetype)initWithAuthorization:(NSString *)authorization { - return [self initWithAuthorization:authorization sendAnalyticsEvent:YES]; -} - -- (nullable instancetype)initWithAuthorization:(NSString *)authorization sendAnalyticsEvent:(BOOL)sendAnalyticsEvent { - if(![authorization isKindOfClass:[NSString class]]) { - NSString *reason = @"BTClient could not initialize because the provided authorization was invalid"; - [[BTLogger sharedLogger] error:reason]; - return nil; - } - - if (self = [super init]) { - _metadata = [[BTClientMetadata alloc] init]; - _configurationQueue = dispatch_queue_create("com.braintreepayments.BTAPIClient", DISPATCH_QUEUE_SERIAL); - - NSRegularExpression *isTokenizationKeyRegExp = [NSRegularExpression regularExpressionWithPattern:@"^[a-zA-Z0-9]+_[a-zA-Z0-9]+_[a-zA-Z0-9_]+$" options:0 error:NULL]; - NSTextCheckingResult *tokenizationKeyMatch = [isTokenizationKeyRegExp firstMatchInString:authorization options:0 range: NSMakeRange(0, authorization.length)]; - - if (tokenizationKeyMatch) { - NSURL *baseURL = [BTAPIClient baseURLFromTokenizationKey:authorization]; - - if (!baseURL) { - NSString *reason = @"BTClient could not initialize because the provided tokenization key was invalid"; - [[BTLogger sharedLogger] error:reason]; - return nil; - } - - _tokenizationKey = authorization; - - _configurationHTTP = [[BTHTTP alloc] initWithBaseURL:baseURL tokenizationKey:authorization]; - - if (sendAnalyticsEvent) { - [self sendAnalyticsEvent:@"ios.started.client-key"]; - } - } else { - NSError *error; - _clientToken = [[BTClientToken alloc] initWithClientToken:authorization error:&error]; - if (error) { [[BTLogger sharedLogger] error:[error localizedDescription]]; } - if (!_clientToken) { - NSString *reason = @"BTClient could not initialize because the provided clientToken was invalid"; - [[BTLogger sharedLogger] error:reason]; - return nil; - } - - _configurationHTTP = [[BTHTTP alloc] initWithClientToken:self.clientToken]; - - if (sendAnalyticsEvent) { - [self sendAnalyticsEvent:@"ios.started.client-token"]; - } - } - - // BTHTTP's default NSURLSession does not cache responses, but we want the BTHTTP instance that fetches configuration to cache aggressively - NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; - static NSURLCache *configurationCache; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - configurationCache = [[NSURLCache alloc] initWithMemoryCapacity:1 * 1024 * 1024 diskCapacity:0 diskPath:nil]; - }); - configuration.URLCache = configurationCache; - configuration.requestCachePolicy = NSURLRequestReturnCacheDataElseLoad; - _configurationHTTP.session = [NSURLSession sessionWithConfiguration:configuration]; - - // Kickoff the background request to fetch the config - [self fetchOrReturnRemoteConfiguration:^(__unused BTConfiguration * _Nullable configuration, __unused NSError * _Nullable error) { - //noop - }]; - } - - return self; -} - -- (instancetype)copyWithSource:(BTClientMetadataSourceType)source - integration:(BTClientMetadataIntegrationType)integration -{ - BTAPIClient *copiedClient; - - if (self.clientToken) { - copiedClient = [[[self class] alloc] initWithAuthorization:self.clientToken.originalValue sendAnalyticsEvent:NO]; - } else if (self.tokenizationKey) { - copiedClient = [[[self class] alloc] initWithAuthorization:self.tokenizationKey sendAnalyticsEvent:NO]; - } else { - NSAssert(NO, @"Cannot copy an API client that does not specify a client token or tokenization key"); - } - - if (copiedClient) { - BTMutableClientMetadata *mutableMetadata = [self.metadata mutableCopy]; - mutableMetadata.source = source; - mutableMetadata.integration = integration; - copiedClient->_metadata = [mutableMetadata copy]; - } - - return copiedClient; -} - -#pragma mark - Base URL - -/// Gets base URL from tokenization key -/// -/// @param tokenizationKey The tokenization key -/// -/// @return Base URL for environment, or `nil` if tokenization key is invalid -+ (NSURL *)baseURLFromTokenizationKey:(NSString *)tokenizationKey { - NSRegularExpression *regExp = [NSRegularExpression regularExpressionWithPattern:@"([a-zA-Z0-9]+)_[a-zA-Z0-9]+_([a-zA-Z0-9_]+)" options:0 error:NULL]; - - NSArray *results = [regExp matchesInString:tokenizationKey options:0 range:NSMakeRange(0, tokenizationKey.length)]; - - if (results.count != 1 || [[results firstObject] numberOfRanges] != 3) { - return nil; - } - - NSString *environment = [tokenizationKey substringWithRange:[results[0] rangeAtIndex:1]]; - NSString *merchantID = [tokenizationKey substringWithRange:[results[0] rangeAtIndex:2]]; - - NSURLComponents *components = [[NSURLComponents alloc] init]; - components.scheme = [BTAPIClient schemeForEnvironmentString:environment]; - NSString *host = [BTAPIClient hostForEnvironmentString:environment]; - NSArray *hostComponents = [host componentsSeparatedByString:@":"]; - components.host = hostComponents[0]; - if (hostComponents.count > 1) { - components.port = hostComponents[1]; - } - components.path = [BTAPIClient clientApiBasePathForMerchantID:merchantID]; - if (!components.host || !components.path) { - return nil; - } - - return components.URL; -} - -+ (NSString *)schemeForEnvironmentString:(NSString *)environment { - if ([[environment lowercaseString] isEqualToString:@"development"]) { - return @"http"; - } - return @"https"; -} - -+ (NSString *)hostForEnvironmentString:(NSString *)environment { - if ([[environment lowercaseString] isEqualToString:@"sandbox"]) { - return @"sandbox.braintreegateway.com"; - } else if ([[environment lowercaseString] isEqualToString:@"production"]) { - return @"api.braintreegateway.com:443"; - } else if ([[environment lowercaseString] isEqualToString:@"development"]) { - return @"localhost:3000"; - } else { - return nil; - } -} - -+ (NSString *)clientApiBasePathForMerchantID:(NSString *)merchantID { - if (merchantID.length == 0) { - return nil; - } - - return [NSString stringWithFormat:@"/merchants/%@/client_api", merchantID]; -} - -# pragma mark - Payment Methods - -- (void)fetchPaymentMethodNonces:(void (^)(NSArray *, NSError *))completion { - [self fetchPaymentMethodNonces:NO completion:completion]; -} - -- (void)fetchPaymentMethodNonces:(BOOL)defaultFirst completion:(void (^)(NSArray *, NSError *))completion { - if (!self.clientToken) { - NSError *error = [NSError errorWithDomain:BTAPIClientErrorDomain code:BTAPIClientErrorTypeNotAuthorized userInfo:@{ NSLocalizedDescriptionKey : @"Cannot fetch payment method nonces with a tokenization key", NSLocalizedRecoverySuggestionErrorKey : @"This endpoint requires a client token for authorization"}]; - if (completion) { - completion(nil, error); - } - return; - } - - [self GET:@"v1/payment_methods" - parameters:@{@"default_first": @(defaultFirst), - @"session_id": self.metadata.sessionId} - completion:^(BTJSON * _Nullable body, __unused NSHTTPURLResponse * _Nullable response, NSError * _Nullable error) { - dispatch_async(dispatch_get_main_queue(), ^{ - if (completion) { - if (error) { - completion(nil, error); - } else { - NSMutableArray *paymentMethodNonces = [NSMutableArray array]; - for (NSDictionary *paymentInfo in [body[@"paymentMethods"] asArray]) { - BTJSON *paymentInfoJSON = [[BTJSON alloc] initWithValue:paymentInfo]; - BTPaymentMethodNonce *paymentMethodNonce = [[BTPaymentMethodNonceParser sharedParser] parseJSON:paymentInfoJSON withParsingBlockForType:[paymentInfoJSON[@"type"] asString]]; - if (paymentMethodNonce) { - [paymentMethodNonces addObject:paymentMethodNonce]; - } - } - completion(paymentMethodNonces, nil); - } - } - }); - }]; -} - -#pragma mark - Remote Configuration - -- (void)fetchOrReturnRemoteConfiguration:(void (^)(BTConfiguration *, NSError *))completionBlock { - // Guarantee that multiple calls to this method will successfully obtain configuration exactly once. - // - // Rules: - // - If cachedConfiguration is present, return it without a request - // - If cachedConfiguration is not present, fetch it and cache the succesful response - // - If fetching fails, return error and the next queued will try to fetch again - // - // Note: Configuration queue is SERIAL. This helps ensure that each request for configuration - // is processed independently. Thus, the check for cached configuration and the fetch is an - // atomic operation with respect to other calls to this method. - // - // Note: Uses dispatch_semaphore to block the configuration queue when the configuration fetch - // request is waiting to return. In this context, it is OK to block, as the configuration - // queue is a background queue to guarantee atomic access to the remote configuration resource. - dispatch_async(self.configurationQueue, ^{ - __block NSError *fetchError; - - dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); - __block BTConfiguration *configuration; - NSString *configPath = self.tokenizationKey ? @"v1/configuration" : [self.clientToken.configURL absoluteString]; - [self.configurationHTTP GET:configPath parameters:@{ @"configVersion": @"3" } completion:^(BTJSON * _Nullable body, NSHTTPURLResponse * _Nullable response, NSError * _Nullable error) { - if (error) { - fetchError = error; - } else if (response.statusCode != 200) { - NSError *configurationDomainError = - [NSError errorWithDomain:BTAPIClientErrorDomain - code:BTAPIClientErrorTypeConfigurationUnavailable - userInfo:@{ - NSLocalizedFailureReasonErrorKey: @"Unable to fetch remote configuration from Braintree API at this time." - }]; - fetchError = configurationDomainError; - } else { - configuration = [[BTConfiguration alloc] initWithJSON:body]; - if (!_http) { - NSURL *baseURL = [configuration.json[@"clientApiUrl"] asURL]; - if (self.clientToken) { - _http = [[BTHTTP alloc] initWithBaseURL:baseURL authorizationFingerprint:self.clientToken.authorizationFingerprint]; - } else if (self.tokenizationKey) { - _http = [[BTHTTP alloc] initWithBaseURL:baseURL tokenizationKey:self.tokenizationKey]; - } - } - } - - // Important: Unlock semaphore in all cases - dispatch_semaphore_signal(semaphore); - }]; - - dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); - - dispatch_async(dispatch_get_main_queue(), ^{ - completionBlock(configuration, fetchError); - }); - }); -} - -#pragma mark - Analytics - -/// By default, the `BTAnalyticsService` instance is static/shared so that only one queue of events exists. -/// The "singleton" is managed here because the analytics service depends on `BTAPIClient`. -- (BTAnalyticsService *)analyticsService { - static BTAnalyticsService *analyticsService; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - analyticsService = [[BTAnalyticsService alloc] initWithAPIClient:self]; - analyticsService.flushThreshold = 5; - }); - - // The analytics service may be overridden by unit tests. In that case, return the ivar and not the singleton - if (_analyticsService) return _analyticsService; - - return analyticsService; -} - -- (void)sendAnalyticsEvent:(NSString *)eventKind { - [self.analyticsService sendAnalyticsEvent:eventKind]; -} - -- (NSDictionary *)metaParameters { - NSMutableDictionary *metaParameters = [NSMutableDictionary dictionaryWithDictionary:self.metadata.parameters]; - [metaParameters addEntriesFromDictionary:[BTAnalyticsMetadata metadata]]; - - return [metaParameters copy]; -} - -#pragma mark - HTTP Operations - -- (void)GET:(NSString *)endpoint parameters:(NSDictionary *)parameters completion:(void(^)(BTJSON *body, NSHTTPURLResponse *response, NSError *error))completionBlock { - [self fetchOrReturnRemoteConfiguration:^(__unused BTConfiguration * _Nullable configuration, __unused NSError * _Nullable error) { - [self.http GET:endpoint parameters:parameters completion:completionBlock]; - }]; -} - -- (void)POST:(NSString *)endpoint parameters:(NSDictionary *)parameters completion:(void(^)(BTJSON *body, NSHTTPURLResponse *response, NSError *error))completionBlock { - [self fetchOrReturnRemoteConfiguration:^(__unused BTConfiguration * _Nullable configuration, __unused NSError * _Nullable error) { - NSMutableDictionary *mutableParameters = [NSMutableDictionary dictionary]; - mutableParameters[@"_meta"] = [self metaParameters]; - [mutableParameters addEntriesFromDictionary:parameters]; - [self.http POST:endpoint parameters:mutableParameters completion:completionBlock]; - }]; -} - -- (instancetype)init NS_UNAVAILABLE -{ - return nil; -} - -- (void)dealloc -{ - if (self.http && self.http.session) { - [self.http.session finishTasksAndInvalidate]; - } -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIClient_Internal.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIClient_Internal.h deleted file mode 100755 index d4b763a6..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIClient_Internal.h +++ /dev/null @@ -1,43 +0,0 @@ -#import "BTAnalyticsService.h" -#import "BTAPIClient.h" -#import "BTClientMetadata.h" -#import "BTClientToken.h" -#import "BTHTTP.h" -#import "BTJSON.h" - -NS_ASSUME_NONNULL_BEGIN - -@class BTPaymentMethodNonce; - -@interface BTAPIClient () - -@property (nonatomic, copy, nullable) NSString *tokenizationKey; -@property (nonatomic, strong, nullable) BTClientToken *clientToken; -@property (nonatomic, strong) BTHTTP *http; -@property (nonatomic, strong) BTHTTP *configurationHTTP; - -/*! - @brief Client metadata that is used for tracking the client session -*/ -@property (nonatomic, readonly, strong) BTClientMetadata *metadata; - -/*! - @brief Exposed for testing analytics -*/ -@property (nonatomic, strong) BTAnalyticsService *analyticsService; - -/*! - @brief Analytics should only be posted by internal clients. -*/ -- (void)sendAnalyticsEvent:(NSString *)eventName; - -/*! - @brief An internal initializer to toggle whether to send an analytics event during initialization. - @discussion This prevents copyWithSource:integration: from sending a duplicate event. It can also be used to suppress excessive network chatter during testing. -*/ - -- (nullable instancetype)initWithAuthorization:(NSString *)authorization sendAnalyticsEvent:(BOOL)sendAnalyticsEvent; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIPinnedCertificates.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIPinnedCertificates.h deleted file mode 100755 index 8d9f8886..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIPinnedCertificates.h +++ /dev/null @@ -1,21 +0,0 @@ -#import - -// :rotating_light THIS CODE IS GENERATED BY codify_certificates.sh :rotating_light: - -/*! - @class BTAPIPinnedCertificates - @brief Encapsualtes our trusted x509 Certificates for Secure SSL Communication with Braintree's servers. - - @discussion This class consists of code that is generated by the codify_certificates.sh script, which takes - a set of PEM formatted certificates and encodes them in code in order to avoid storing certificates - files in an NSBundle. -*/ -@interface BTAPIPinnedCertificates : NSObject - -/*! - @brief Returns the set of trusted root certificates based on the PEM files located in this directory. - - @return An array of trusted certificates encoded in the DER format, encapsulated in NSData objects. -*/ -+ (NSArray *)trustedCertificates; -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIPinnedCertificates.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIPinnedCertificates.m deleted file mode 100755 index da33f05e..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAPIPinnedCertificates.m +++ /dev/null @@ -1,1022 +0,0 @@ -#import "BTAPIPinnedCertificates.h" - -// :rotating_light THIS CODE IS GENERATED BY codify_certificates.sh :rotating_light: -@implementation BTAPIPinnedCertificates - -+ (NSArray *)trustedCertificates { - NSMutableArray *trustedCertificates = [NSMutableArray arrayWithCapacity:15]; - { -/* subject:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA 2 */ -/* issuer :/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA 2 */ -unsigned char XXX_certificate[874]={ -0x30,0x82,0x03,0x66,0x30,0x82,0x02,0x4E,0xA0,0x03,0x02,0x01,0x02,0x02,0x01,0x01, -0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30, -0x44,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x16, -0x30,0x14,0x06,0x03,0x55,0x04,0x0A,0x13,0x0D,0x47,0x65,0x6F,0x54,0x72,0x75,0x73, -0x74,0x20,0x49,0x6E,0x63,0x2E,0x31,0x1D,0x30,0x1B,0x06,0x03,0x55,0x04,0x03,0x13, -0x14,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x47,0x6C,0x6F,0x62,0x61,0x6C, -0x20,0x43,0x41,0x20,0x32,0x30,0x1E,0x17,0x0D,0x30,0x34,0x30,0x33,0x30,0x34,0x30, -0x35,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x31,0x39,0x30,0x33,0x30,0x34,0x30,0x35, -0x30,0x30,0x30,0x30,0x5A,0x30,0x44,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06, -0x13,0x02,0x55,0x53,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x0A,0x13,0x0D,0x47, -0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x49,0x6E,0x63,0x2E,0x31,0x1D,0x30,0x1B, -0x06,0x03,0x55,0x04,0x03,0x13,0x14,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20, -0x47,0x6C,0x6F,0x62,0x61,0x6C,0x20,0x43,0x41,0x20,0x32,0x30,0x82,0x01,0x22,0x30, -0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x82, -0x01,0x0F,0x00,0x30,0x82,0x01,0x0A,0x02,0x82,0x01,0x01,0x00,0xEF,0x3C,0x4D,0x40, -0x3D,0x10,0xDF,0x3B,0x53,0x00,0xE1,0x67,0xFE,0x94,0x60,0x15,0x3E,0x85,0x88,0xF1, -0x89,0x0D,0x90,0xC8,0x28,0x23,0x99,0x05,0xE8,0x2B,0x20,0x9D,0xC6,0xF3,0x60,0x46, -0xD8,0xC1,0xB2,0xD5,0x8C,0x31,0xD9,0xDC,0x20,0x79,0x24,0x81,0xBF,0x35,0x32,0xFC, -0x63,0x69,0xDB,0xB1,0x2A,0x6B,0xEE,0x21,0x58,0xF2,0x08,0xE9,0x78,0xCB,0x6F,0xCB, -0xFC,0x16,0x52,0xC8,0x91,0xC4,0xFF,0x3D,0x73,0xDE,0xB1,0x3E,0xA7,0xC2,0x7D,0x66, -0xC1,0xF5,0x7E,0x52,0x24,0x1A,0xE2,0xD5,0x67,0x91,0xD0,0x82,0x10,0xD7,0x78,0x4B, -0x4F,0x2B,0x42,0x39,0xBD,0x64,0x2D,0x40,0xA0,0xB0,0x10,0xD3,0x38,0x48,0x46,0x88, -0xA1,0x0C,0xBB,0x3A,0x33,0x2A,0x62,0x98,0xFB,0x00,0x9D,0x13,0x59,0x7F,0x6F,0x3B, -0x72,0xAA,0xEE,0xA6,0x0F,0x86,0xF9,0x05,0x61,0xEA,0x67,0x7F,0x0C,0x37,0x96,0x8B, -0xE6,0x69,0x16,0x47,0x11,0xC2,0x27,0x59,0x03,0xB3,0xA6,0x60,0xC2,0x21,0x40,0x56, -0xFA,0xA0,0xC7,0x7D,0x3A,0x13,0xE3,0xEC,0x57,0xC7,0xB3,0xD6,0xAE,0x9D,0x89,0x80, -0xF7,0x01,0xE7,0x2C,0xF6,0x96,0x2B,0x13,0x0D,0x79,0x2C,0xD9,0xC0,0xE4,0x86,0x7B, -0x4B,0x8C,0x0C,0x72,0x82,0x8A,0xFB,0x17,0xCD,0x00,0x6C,0x3A,0x13,0x3C,0xB0,0x84, -0x87,0x4B,0x16,0x7A,0x29,0xB2,0x4F,0xDB,0x1D,0xD4,0x0B,0xF3,0x66,0x37,0xBD,0xD8, -0xF6,0x57,0xBB,0x5E,0x24,0x7A,0xB8,0x3C,0x8B,0xB9,0xFA,0x92,0x1A,0x1A,0x84,0x9E, -0xD8,0x74,0x8F,0xAA,0x1B,0x7F,0x5E,0xF4,0xFE,0x45,0x22,0x21,0x02,0x03,0x01,0x00, -0x01,0xA3,0x63,0x30,0x61,0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04, -0x05,0x30,0x03,0x01,0x01,0xFF,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04, -0x14,0x71,0x38,0x36,0xF2,0x02,0x31,0x53,0x47,0x2B,0x6E,0xBA,0x65,0x46,0xA9,0x10, -0x15,0x58,0x20,0x05,0x09,0x30,0x1F,0x06,0x03,0x55,0x1D,0x23,0x04,0x18,0x30,0x16, -0x80,0x14,0x71,0x38,0x36,0xF2,0x02,0x31,0x53,0x47,0x2B,0x6E,0xBA,0x65,0x46,0xA9, -0x10,0x15,0x58,0x20,0x05,0x09,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01,0x01,0xFF, -0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D, -0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x03,0xF7,0xB5,0x2B,0xAB,0x5D, -0x10,0xFC,0x7B,0xB2,0xB2,0x5E,0xAC,0x9B,0x0E,0x7E,0x53,0x78,0x59,0x3E,0x42,0x04, -0xFE,0x75,0xA3,0xAD,0xAC,0x81,0x4E,0xD7,0x02,0x8B,0x5E,0xC4,0x2D,0xC8,0x52,0x76, -0xC7,0x2C,0x1F,0xFC,0x81,0x32,0x98,0xD1,0x4B,0xC6,0x92,0x93,0x33,0x35,0x31,0x2F, -0xFC,0xD8,0x1D,0x44,0xDD,0xE0,0x81,0x7F,0x9D,0xE9,0x8B,0xE1,0x64,0x91,0x62,0x0B, -0x39,0x08,0x8C,0xAC,0x74,0x9D,0x59,0xD9,0x7A,0x59,0x52,0x97,0x11,0xB9,0x16,0x7B, -0x6F,0x45,0xD3,0x96,0xD9,0x31,0x7D,0x02,0x36,0x0F,0x9C,0x3B,0x6E,0xCF,0x2C,0x0D, -0x03,0x46,0x45,0xEB,0xA0,0xF4,0x7F,0x48,0x44,0xC6,0x08,0x40,0xCC,0xDE,0x1B,0x70, -0xB5,0x29,0xAD,0xBA,0x8B,0x3B,0x34,0x65,0x75,0x1B,0x71,0x21,0x1D,0x2C,0x14,0x0A, -0xB0,0x96,0x95,0xB8,0xD6,0xEA,0xF2,0x65,0xFB,0x29,0xBA,0x4F,0xEA,0x91,0x93,0x74, -0x69,0xB6,0xF2,0xFF,0xE1,0x1A,0xD0,0x0C,0xD1,0x76,0x85,0xCB,0x8A,0x25,0xBD,0x97, -0x5E,0x2C,0x6F,0x15,0x99,0x26,0xE7,0xB6,0x29,0xFF,0x22,0xEC,0xC9,0x02,0xC7,0x56, -0x00,0xCD,0x49,0xB9,0xB3,0x6C,0x7B,0x53,0x04,0x1A,0xE2,0xA8,0xC9,0xAA,0x12,0x05, -0x23,0xC2,0xCE,0xE7,0xBB,0x04,0x02,0xCC,0xC0,0x47,0xA2,0xE4,0xC4,0x29,0x2F,0x5B, -0x45,0x57,0x89,0x51,0xEE,0x3C,0xEB,0x52,0x08,0xFF,0x07,0x35,0x1E,0x9F,0x35,0x6A, -0x47,0x4A,0x56,0x98,0xD1,0x5A,0x85,0x1F,0x8C,0xF5,0x22,0xBF,0xAB,0xCE,0x83,0xF3, -0xE2,0x22,0x29,0xAE,0x7D,0x83,0x40,0xA8,0xBA,0x6C, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA */ -/* issuer :/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA */ -unsigned char XXX_certificate[856]={ -0x30,0x82,0x03,0x54,0x30,0x82,0x02,0x3C,0xA0,0x03,0x02,0x01,0x02,0x02,0x03,0x02, -0x34,0x56,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05, -0x00,0x30,0x42,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53, -0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x0A,0x13,0x0D,0x47,0x65,0x6F,0x54,0x72, -0x75,0x73,0x74,0x20,0x49,0x6E,0x63,0x2E,0x31,0x1B,0x30,0x19,0x06,0x03,0x55,0x04, -0x03,0x13,0x12,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x47,0x6C,0x6F,0x62, -0x61,0x6C,0x20,0x43,0x41,0x30,0x1E,0x17,0x0D,0x30,0x32,0x30,0x35,0x32,0x31,0x30, -0x34,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x32,0x32,0x30,0x35,0x32,0x31,0x30,0x34, -0x30,0x30,0x30,0x30,0x5A,0x30,0x42,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06, -0x13,0x02,0x55,0x53,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x0A,0x13,0x0D,0x47, -0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x49,0x6E,0x63,0x2E,0x31,0x1B,0x30,0x19, -0x06,0x03,0x55,0x04,0x03,0x13,0x12,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20, -0x47,0x6C,0x6F,0x62,0x61,0x6C,0x20,0x43,0x41,0x30,0x82,0x01,0x22,0x30,0x0D,0x06, -0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0F, -0x00,0x30,0x82,0x01,0x0A,0x02,0x82,0x01,0x01,0x00,0xDA,0xCC,0x18,0x63,0x30,0xFD, -0xF4,0x17,0x23,0x1A,0x56,0x7E,0x5B,0xDF,0x3C,0x6C,0x38,0xE4,0x71,0xB7,0x78,0x91, -0xD4,0xBC,0xA1,0xD8,0x4C,0xF8,0xA8,0x43,0xB6,0x03,0xE9,0x4D,0x21,0x07,0x08,0x88, -0xDA,0x58,0x2F,0x66,0x39,0x29,0xBD,0x05,0x78,0x8B,0x9D,0x38,0xE8,0x05,0xB7,0x6A, -0x7E,0x71,0xA4,0xE6,0xC4,0x60,0xA6,0xB0,0xEF,0x80,0xE4,0x89,0x28,0x0F,0x9E,0x25, -0xD6,0xED,0x83,0xF3,0xAD,0xA6,0x91,0xC7,0x98,0xC9,0x42,0x18,0x35,0x14,0x9D,0xAD, -0x98,0x46,0x92,0x2E,0x4F,0xCA,0xF1,0x87,0x43,0xC1,0x16,0x95,0x57,0x2D,0x50,0xEF, -0x89,0x2D,0x80,0x7A,0x57,0xAD,0xF2,0xEE,0x5F,0x6B,0xD2,0x00,0x8D,0xB9,0x14,0xF8, -0x14,0x15,0x35,0xD9,0xC0,0x46,0xA3,0x7B,0x72,0xC8,0x91,0xBF,0xC9,0x55,0x2B,0xCD, -0xD0,0x97,0x3E,0x9C,0x26,0x64,0xCC,0xDF,0xCE,0x83,0x19,0x71,0xCA,0x4E,0xE6,0xD4, -0xD5,0x7B,0xA9,0x19,0xCD,0x55,0xDE,0xC8,0xEC,0xD2,0x5E,0x38,0x53,0xE5,0x5C,0x4F, -0x8C,0x2D,0xFE,0x50,0x23,0x36,0xFC,0x66,0xE6,0xCB,0x8E,0xA4,0x39,0x19,0x00,0xB7, -0x95,0x02,0x39,0x91,0x0B,0x0E,0xFE,0x38,0x2E,0xD1,0x1D,0x05,0x9A,0xF6,0x4D,0x3E, -0x6F,0x0F,0x07,0x1D,0xAF,0x2C,0x1E,0x8F,0x60,0x39,0xE2,0xFA,0x36,0x53,0x13,0x39, -0xD4,0x5E,0x26,0x2B,0xDB,0x3D,0xA8,0x14,0xBD,0x32,0xEB,0x18,0x03,0x28,0x52,0x04, -0x71,0xE5,0xAB,0x33,0x3D,0xE1,0x38,0xBB,0x07,0x36,0x84,0x62,0x9C,0x79,0xEA,0x16, -0x30,0xF4,0x5F,0xC0,0x2B,0xE8,0x71,0x6B,0xE4,0xF9,0x02,0x03,0x01,0x00,0x01,0xA3, -0x53,0x30,0x51,0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04,0x05,0x30, -0x03,0x01,0x01,0xFF,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0xC0, -0x7A,0x98,0x68,0x8D,0x89,0xFB,0xAB,0x05,0x64,0x0C,0x11,0x7D,0xAA,0x7D,0x65,0xB8, -0xCA,0xCC,0x4E,0x30,0x1F,0x06,0x03,0x55,0x1D,0x23,0x04,0x18,0x30,0x16,0x80,0x14, -0xC0,0x7A,0x98,0x68,0x8D,0x89,0xFB,0xAB,0x05,0x64,0x0C,0x11,0x7D,0xAA,0x7D,0x65, -0xB8,0xCA,0xCC,0x4E,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01, -0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x35,0xE3,0x29,0x6A,0xE5,0x2F,0x5D,0x54, -0x8E,0x29,0x50,0x94,0x9F,0x99,0x1A,0x14,0xE4,0x8F,0x78,0x2A,0x62,0x94,0xA2,0x27, -0x67,0x9E,0xD0,0xCF,0x1A,0x5E,0x47,0xE9,0xC1,0xB2,0xA4,0xCF,0xDD,0x41,0x1A,0x05, -0x4E,0x9B,0x4B,0xEE,0x4A,0x6F,0x55,0x52,0xB3,0x24,0xA1,0x37,0x0A,0xEB,0x64,0x76, -0x2A,0x2E,0x2C,0xF3,0xFD,0x3B,0x75,0x90,0xBF,0xFA,0x71,0xD8,0xC7,0x3D,0x37,0xD2, -0xB5,0x05,0x95,0x62,0xB9,0xA6,0xDE,0x89,0x3D,0x36,0x7B,0x38,0x77,0x48,0x97,0xAC, -0xA6,0x20,0x8F,0x2E,0xA6,0xC9,0x0C,0xC2,0xB2,0x99,0x45,0x00,0xC7,0xCE,0x11,0x51, -0x22,0x22,0xE0,0xA5,0xEA,0xB6,0x15,0x48,0x09,0x64,0xEA,0x5E,0x4F,0x74,0xF7,0x05, -0x3E,0xC7,0x8A,0x52,0x0C,0xDB,0x15,0xB4,0xBD,0x6D,0x9B,0xE5,0xC6,0xB1,0x54,0x68, -0xA9,0xE3,0x69,0x90,0xB6,0x9A,0xA5,0x0F,0xB8,0xB9,0x3F,0x20,0x7D,0xAE,0x4A,0xB5, -0xB8,0x9C,0xE4,0x1D,0xB6,0xAB,0xE6,0x94,0xA5,0xC1,0xC7,0x83,0xAD,0xDB,0xF5,0x27, -0x87,0x0E,0x04,0x6C,0xD5,0xFF,0xDD,0xA0,0x5D,0xED,0x87,0x52,0xB7,0x2B,0x15,0x02, -0xAE,0x39,0xA6,0x6A,0x74,0xE9,0xDA,0xC4,0xE7,0xBC,0x4D,0x34,0x1E,0xA9,0x5C,0x4D, -0x33,0x5F,0x92,0x09,0x2F,0x88,0x66,0x5D,0x77,0x97,0xC7,0x1D,0x76,0x13,0xA9,0xD5, -0xE5,0xF1,0x16,0x09,0x11,0x35,0xD5,0xAC,0xDB,0x24,0x71,0x70,0x2C,0x98,0x56,0x0B, -0xD9,0x17,0xB4,0xD1,0xE3,0x51,0x2B,0x5E,0x75,0xE8,0xD5,0xD0,0xDC,0x4F,0x34,0xED, -0xC2,0x05,0x66,0x80,0xA1,0xCB,0xE6,0x33, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=GeoTrust Inc./CN=GeoTrust Universal CA 2 */ -/* issuer :/C=US/O=GeoTrust Inc./CN=GeoTrust Universal CA 2 */ -unsigned char XXX_certificate[1392]={ -0x30,0x82,0x05,0x6C,0x30,0x82,0x03,0x54,0xA0,0x03,0x02,0x01,0x02,0x02,0x01,0x01, -0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30, -0x47,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x16, -0x30,0x14,0x06,0x03,0x55,0x04,0x0A,0x13,0x0D,0x47,0x65,0x6F,0x54,0x72,0x75,0x73, -0x74,0x20,0x49,0x6E,0x63,0x2E,0x31,0x20,0x30,0x1E,0x06,0x03,0x55,0x04,0x03,0x13, -0x17,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x55,0x6E,0x69,0x76,0x65,0x72, -0x73,0x61,0x6C,0x20,0x43,0x41,0x20,0x32,0x30,0x1E,0x17,0x0D,0x30,0x34,0x30,0x33, -0x30,0x34,0x30,0x35,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x32,0x39,0x30,0x33,0x30, -0x34,0x30,0x35,0x30,0x30,0x30,0x30,0x5A,0x30,0x47,0x31,0x0B,0x30,0x09,0x06,0x03, -0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x0A, -0x13,0x0D,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x49,0x6E,0x63,0x2E,0x31, -0x20,0x30,0x1E,0x06,0x03,0x55,0x04,0x03,0x13,0x17,0x47,0x65,0x6F,0x54,0x72,0x75, -0x73,0x74,0x20,0x55,0x6E,0x69,0x76,0x65,0x72,0x73,0x61,0x6C,0x20,0x43,0x41,0x20, -0x32,0x30,0x82,0x02,0x22,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, -0x01,0x01,0x05,0x00,0x03,0x82,0x02,0x0F,0x00,0x30,0x82,0x02,0x0A,0x02,0x82,0x02, -0x01,0x00,0xB3,0x54,0x52,0xC1,0xC9,0x3E,0xF2,0xD9,0xDC,0xB1,0x53,0x1A,0x59,0x29, -0xE7,0xB1,0xC3,0x45,0x28,0xE5,0xD7,0xD1,0xED,0xC5,0xC5,0x4B,0xA1,0xAA,0x74,0x7B, -0x57,0xAF,0x4A,0x26,0xFC,0xD8,0xF5,0x5E,0xA7,0x6E,0x19,0xDB,0x74,0x0C,0x4F,0x35, -0x5B,0x32,0x0B,0x01,0xE3,0xDB,0xEB,0x7A,0x77,0x35,0xEA,0xAA,0x5A,0xE0,0xD6,0xE8, -0xA1,0x57,0x94,0xF0,0x90,0xA3,0x74,0x56,0x94,0x44,0x30,0x03,0x1E,0x5C,0x4E,0x2B, -0x85,0x26,0x74,0x82,0x7A,0x0C,0x76,0xA0,0x6F,0x4D,0xCE,0x41,0x2D,0xA0,0x15,0x06, -0x14,0x5F,0xB7,0x42,0xCD,0x7B,0x8F,0x58,0x61,0x34,0xDC,0x2A,0x08,0xF9,0x2E,0xC3, -0x01,0xA6,0x22,0x44,0x1C,0x4C,0x07,0x82,0xE6,0x5B,0xCE,0xD0,0x4A,0x7C,0x04,0xD3, -0x19,0x73,0x27,0xF0,0xAA,0x98,0x7F,0x2E,0xAF,0x4E,0xEB,0x87,0x1E,0x24,0x77,0x6A, -0x5D,0xB6,0xE8,0x5B,0x45,0xBA,0xDC,0xC3,0xA1,0x05,0x6F,0x56,0x8E,0x8F,0x10,0x26, -0xA5,0x49,0xC3,0x2E,0xD7,0x41,0x87,0x22,0xE0,0x4F,0x86,0xCA,0x60,0xB5,0xEA,0xA1, -0x63,0xC0,0x01,0x97,0x10,0x79,0xBD,0x00,0x3C,0x12,0x6D,0x2B,0x15,0xB1,0xAC,0x4B, -0xB1,0xEE,0x18,0xB9,0x4E,0x96,0xDC,0xDC,0x76,0xFF,0x3B,0xBE,0xCF,0x5F,0x03,0xC0, -0xFC,0x3B,0xE8,0xBE,0x46,0x1B,0xFF,0xDA,0x40,0xC2,0x52,0xF7,0xFE,0xE3,0x3A,0xF7, -0x6A,0x77,0x35,0xD0,0xDA,0x8D,0xEB,0x5E,0x18,0x6A,0x31,0xC7,0x1E,0xBA,0x3C,0x1B, -0x28,0xD6,0x6B,0x54,0xC6,0xAA,0x5B,0xD7,0xA2,0x2C,0x1B,0x19,0xCC,0xA2,0x02,0xF6, -0x9B,0x59,0xBD,0x37,0x6B,0x86,0xB5,0x6D,0x82,0xBA,0xD8,0xEA,0xC9,0x56,0xBC,0xA9, -0x36,0x58,0xFD,0x3E,0x19,0xF3,0xED,0x0C,0x26,0xA9,0x93,0x38,0xF8,0x4F,0xC1,0x5D, -0x22,0x06,0xD0,0x97,0xEA,0xE1,0xAD,0xC6,0x55,0xE0,0x81,0x2B,0x28,0x83,0x3A,0xFA, -0xF4,0x7B,0x21,0x51,0x00,0xBE,0x52,0x38,0xCE,0xCD,0x66,0x79,0xA8,0xF4,0x81,0x56, -0xE2,0xD0,0x83,0x09,0x47,0x51,0x5B,0x50,0x6A,0xCF,0xDB,0x48,0x1A,0x5D,0x3E,0xF7, -0xCB,0xF6,0x65,0xF7,0x6C,0xF1,0x95,0xF8,0x02,0x3B,0x32,0x56,0x82,0x39,0x7A,0x5B, -0xBD,0x2F,0x89,0x1B,0xBF,0xA1,0xB4,0xE8,0xFF,0x7F,0x8D,0x8C,0xDF,0x03,0xF1,0x60, -0x4E,0x58,0x11,0x4C,0xEB,0xA3,0x3F,0x10,0x2B,0x83,0x9A,0x01,0x73,0xD9,0x94,0x6D, -0x84,0x00,0x27,0x66,0xAC,0xF0,0x70,0x40,0x09,0x42,0x92,0xAD,0x4F,0x93,0x0D,0x61, -0x09,0x51,0x24,0xD8,0x92,0xD5,0x0B,0x94,0x61,0xB2,0x87,0xB2,0xED,0xFF,0x9A,0x35, -0xFF,0x85,0x54,0xCA,0xED,0x44,0x43,0xAC,0x1B,0x3C,0x16,0x6B,0x48,0x4A,0x0A,0x1C, -0x40,0x88,0x1F,0x92,0xC2,0x0B,0x00,0x05,0xFF,0xF2,0xC8,0x02,0x4A,0xA4,0xAA,0xA9, -0xCC,0x99,0x96,0x9C,0x2F,0x58,0xE0,0x7D,0xE1,0xBE,0xBB,0x07,0xDC,0x5F,0x04,0x72, -0x5C,0x31,0x34,0xC3,0xEC,0x5F,0x2D,0xE0,0x3D,0x64,0x90,0x22,0xE6,0xD1,0xEC,0xB8, -0x2E,0xDD,0x59,0xAE,0xD9,0xA1,0x37,0xBF,0x54,0x35,0xDC,0x73,0x32,0x4F,0x8C,0x04, -0x1E,0x33,0xB2,0xC9,0x46,0xF1,0xD8,0x5C,0xC8,0x55,0x50,0xC9,0x68,0xBD,0xA8,0xBA, -0x36,0x09,0x02,0x03,0x01,0x00,0x01,0xA3,0x63,0x30,0x61,0x30,0x0F,0x06,0x03,0x55, -0x1D,0x13,0x01,0x01,0xFF,0x04,0x05,0x30,0x03,0x01,0x01,0xFF,0x30,0x1D,0x06,0x03, -0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0x76,0xF3,0x55,0xE1,0xFA,0xA4,0x36,0xFB,0xF0, -0x9F,0x5C,0x62,0x71,0xED,0x3C,0xF4,0x47,0x38,0x10,0x2B,0x30,0x1F,0x06,0x03,0x55, -0x1D,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0x76,0xF3,0x55,0xE1,0xFA,0xA4,0x36,0xFB, -0xF0,0x9F,0x5C,0x62,0x71,0xED,0x3C,0xF4,0x47,0x38,0x10,0x2B,0x30,0x0E,0x06,0x03, -0x55,0x1D,0x0F,0x01,0x01,0xFF,0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0D,0x06,0x09, -0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x02,0x01,0x00, -0x66,0xC1,0xC6,0x23,0xF3,0xD9,0xE0,0x2E,0x6E,0x5F,0xE8,0xCF,0xAE,0xB0,0xB0,0x25, -0x4D,0x2B,0xF8,0x3B,0x58,0x9B,0x40,0x24,0x37,0x5A,0xCB,0xAB,0x16,0x49,0xFF,0xB3, -0x75,0x79,0x33,0xA1,0x2F,0x6D,0x70,0x17,0x34,0x91,0xFE,0x67,0x7E,0x8F,0xEC,0x9B, -0xE5,0x5E,0x82,0xA9,0x55,0x1F,0x2F,0xDC,0xD4,0x51,0x07,0x12,0xFE,0xAC,0x16,0x3E, -0x2C,0x35,0xC6,0x63,0xFC,0xDC,0x10,0xEB,0x0D,0xA3,0xAA,0xD0,0x7C,0xCC,0xD1,0xD0, -0x2F,0x51,0x2E,0xC4,0x14,0x5A,0xDE,0xE8,0x19,0xE1,0x3E,0xC6,0xCC,0xA4,0x29,0xE7, -0x2E,0x84,0xAA,0x06,0x30,0x78,0x76,0x54,0x73,0x28,0x98,0x59,0x38,0xE0,0x00,0x0D, -0x62,0xD3,0x42,0x7D,0x21,0x9F,0xAE,0x3D,0x3A,0x8C,0xD5,0xFA,0x77,0x0D,0x18,0x2B, -0x16,0x0E,0x5F,0x36,0xE1,0xFC,0x2A,0xB5,0x30,0x24,0xCF,0xE0,0x63,0x0C,0x7B,0x58, -0x1A,0xFE,0x99,0xBA,0x42,0x12,0xB1,0x91,0xF4,0x7C,0x68,0xE2,0xC8,0xE8,0xAF,0x2C, -0xEA,0xC9,0x7E,0xAE,0xBB,0x2A,0x3D,0x0D,0x15,0xDC,0x34,0x95,0xB6,0x18,0x74,0xA8, -0x6A,0x0F,0xC7,0xB4,0xF4,0x13,0xC4,0xE4,0x5B,0xED,0x0A,0xD2,0xA4,0x97,0x4C,0x2A, -0xED,0x2F,0x6C,0x12,0x89,0x3D,0xF1,0x27,0x70,0xAA,0x6A,0x03,0x52,0x21,0x9F,0x40, -0xA8,0x67,0x50,0xF2,0xF3,0x5A,0x1F,0xDF,0xDF,0x23,0xF6,0xDC,0x78,0x4E,0xE6,0x98, -0x4F,0x55,0x3A,0x53,0xE3,0xEF,0xF2,0xF4,0x9F,0xC7,0x7C,0xD8,0x58,0xAF,0x29,0x22, -0x97,0xB8,0xE0,0xBD,0x91,0x2E,0xB0,0x76,0xEC,0x57,0x11,0xCF,0xEF,0x29,0x44,0xF3, -0xE9,0x85,0x7A,0x60,0x63,0xE4,0x5D,0x33,0x89,0x17,0xD9,0x31,0xAA,0xDA,0xD6,0xF3, -0x18,0x35,0x72,0xCF,0x87,0x2B,0x2F,0x63,0x23,0x84,0x5D,0x84,0x8C,0x3F,0x57,0xA0, -0x88,0xFC,0x99,0x91,0x28,0x26,0x69,0x99,0xD4,0x8F,0x97,0x44,0xBE,0x8E,0xD5,0x48, -0xB1,0xA4,0x28,0x29,0xF1,0x15,0xB4,0xE1,0xE5,0x9E,0xDD,0xF8,0x8F,0xA6,0x6F,0x26, -0xD7,0x09,0x3C,0x3A,0x1C,0x11,0x0E,0xA6,0x6C,0x37,0xF7,0xAD,0x44,0x87,0x2C,0x28, -0xC7,0xD8,0x74,0x82,0xB3,0xD0,0x6F,0x4A,0x57,0xBB,0x35,0x29,0x27,0xA0,0x8B,0xE8, -0x21,0xA7,0x87,0x64,0x36,0x5D,0xCC,0xD8,0x16,0xAC,0xC7,0xB2,0x27,0x40,0x92,0x55, -0x38,0x28,0x8D,0x51,0x6E,0xDD,0x14,0x67,0x53,0x6C,0x71,0x5C,0x26,0x84,0x4D,0x75, -0x5A,0xB6,0x7E,0x60,0x56,0xA9,0x4D,0xAD,0xFB,0x9B,0x1E,0x97,0xF3,0x0D,0xD9,0xD2, -0x97,0x54,0x77,0xDA,0x3D,0x12,0xB7,0xE0,0x1E,0xEF,0x08,0x06,0xAC,0xF9,0x85,0x87, -0xE9,0xA2,0xDC,0xAF,0x7E,0x18,0x12,0x83,0xFD,0x56,0x17,0x41,0x2E,0xD5,0x29,0x82, -0x7D,0x99,0xF4,0x31,0xF6,0x71,0xA9,0xCF,0x2C,0x01,0x27,0xA5,0x05,0xB9,0xAA,0xB2, -0x48,0x4E,0x2A,0xEF,0x9F,0x93,0x52,0x51,0x95,0x3C,0x52,0x73,0x8E,0x56,0x4C,0x17, -0x40,0xC0,0x09,0x28,0xE4,0x8B,0x6A,0x48,0x53,0xDB,0xEC,0xCD,0x55,0x55,0xF1,0xC6, -0xF8,0xE9,0xA2,0x2C,0x4C,0xA6,0xD1,0x26,0x5F,0x7E,0xAF,0x5A,0x4C,0xDA,0x1F,0xA6, -0xF2,0x1C,0x2C,0x7E,0xAE,0x02,0x16,0xD2,0x56,0xD0,0x2F,0x57,0x53,0x47,0xE8,0x92, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=GeoTrust Inc./CN=GeoTrust Universal CA */ -/* issuer :/C=US/O=GeoTrust Inc./CN=GeoTrust Universal CA */ -unsigned char XXX_certificate[1388]={ -0x30,0x82,0x05,0x68,0x30,0x82,0x03,0x50,0xA0,0x03,0x02,0x01,0x02,0x02,0x01,0x01, -0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30, -0x45,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x16, -0x30,0x14,0x06,0x03,0x55,0x04,0x0A,0x13,0x0D,0x47,0x65,0x6F,0x54,0x72,0x75,0x73, -0x74,0x20,0x49,0x6E,0x63,0x2E,0x31,0x1E,0x30,0x1C,0x06,0x03,0x55,0x04,0x03,0x13, -0x15,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x55,0x6E,0x69,0x76,0x65,0x72, -0x73,0x61,0x6C,0x20,0x43,0x41,0x30,0x1E,0x17,0x0D,0x30,0x34,0x30,0x33,0x30,0x34, -0x30,0x35,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x32,0x39,0x30,0x33,0x30,0x34,0x30, -0x35,0x30,0x30,0x30,0x30,0x5A,0x30,0x45,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04, -0x06,0x13,0x02,0x55,0x53,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x0A,0x13,0x0D, -0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x49,0x6E,0x63,0x2E,0x31,0x1E,0x30, -0x1C,0x06,0x03,0x55,0x04,0x03,0x13,0x15,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74, -0x20,0x55,0x6E,0x69,0x76,0x65,0x72,0x73,0x61,0x6C,0x20,0x43,0x41,0x30,0x82,0x02, -0x22,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00, -0x03,0x82,0x02,0x0F,0x00,0x30,0x82,0x02,0x0A,0x02,0x82,0x02,0x01,0x00,0xA6,0x15, -0x55,0xA0,0xA3,0xC6,0xE0,0x1F,0x8C,0x9D,0x21,0x50,0xD7,0xC1,0xBE,0x2B,0x5B,0xB5, -0xA4,0x9E,0xA1,0xD9,0x72,0x58,0xBD,0x00,0x1B,0x4C,0xBF,0x61,0xC9,0x14,0x1D,0x45, -0x82,0xAB,0xC6,0x1D,0x80,0xD6,0x3D,0xEB,0x10,0x9C,0x3A,0xAF,0x6D,0x24,0xF8,0xBC, -0x71,0x01,0x9E,0x06,0xF5,0x7C,0x5F,0x1E,0xC1,0x0E,0x55,0xCA,0x83,0x9A,0x59,0x30, -0xAE,0x19,0xCB,0x30,0x48,0x95,0xED,0x22,0x37,0x8D,0xF4,0x4A,0x9A,0x72,0x66,0x3E, -0xAD,0x95,0xC0,0xE0,0x16,0x00,0xE0,0x10,0x1F,0x2B,0x31,0x0E,0xD7,0x94,0x54,0xD3, -0x42,0x33,0xA0,0x34,0x1D,0x1E,0x45,0x76,0xDD,0x4F,0xCA,0x18,0x37,0xEC,0x85,0x15, -0x7A,0x19,0x08,0xFC,0xD5,0xC7,0x9C,0xF0,0xF2,0xA9,0x2E,0x10,0xA9,0x92,0xE6,0x3D, -0x58,0x3D,0xA9,0x16,0x68,0x3C,0x2F,0x75,0x21,0x18,0x7F,0x28,0x77,0xA5,0xE1,0x61, -0x17,0xB7,0xA6,0xE9,0xF8,0x1E,0x99,0xDB,0x73,0x6E,0xF4,0x0A,0xA2,0x21,0x6C,0xEE, -0xDA,0xAA,0x85,0x92,0x66,0xAF,0xF6,0x7A,0x6B,0x82,0xDA,0xBA,0x22,0x08,0x35,0x0F, -0xCF,0x42,0xF1,0x35,0xFA,0x6A,0xEE,0x7E,0x2B,0x25,0xCC,0x3A,0x11,0xE4,0x6D,0xAF, -0x73,0xB2,0x76,0x1D,0xAD,0xD0,0xB2,0x78,0x67,0x1A,0xA4,0x39,0x1C,0x51,0x0B,0x67, -0x56,0x83,0xFD,0x38,0x5D,0x0D,0xCE,0xDD,0xF0,0xBB,0x2B,0x96,0x1F,0xDE,0x7B,0x32, -0x52,0xFD,0x1D,0xBB,0xB5,0x06,0xA1,0xB2,0x21,0x5E,0xA5,0xD6,0x95,0x68,0x7F,0xF0, -0x99,0x9E,0xDC,0x45,0x08,0x3E,0xE7,0xD2,0x09,0x0D,0x35,0x94,0xDD,0x80,0x4E,0x53, -0x97,0xD7,0xB5,0x09,0x44,0x20,0x64,0x16,0x17,0x03,0x02,0x4C,0x53,0x0D,0x68,0xDE, -0xD5,0xAA,0x72,0x4D,0x93,0x6D,0x82,0x0E,0xDB,0x9C,0xBD,0xCF,0xB4,0xF3,0x5C,0x5D, -0x54,0x7A,0x69,0x09,0x96,0xD6,0xDB,0x11,0xC1,0x8D,0x75,0xA8,0xB4,0xCF,0x39,0xC8, -0xCE,0x3C,0xBC,0x24,0x7C,0xE6,0x62,0xCA,0xE1,0xBD,0x7D,0xA7,0xBD,0x57,0x65,0x0B, -0xE4,0xFE,0x25,0xED,0xB6,0x69,0x10,0xDC,0x28,0x1A,0x46,0xBD,0x01,0x1D,0xD0,0x97, -0xB5,0xE1,0x98,0x3B,0xC0,0x37,0x64,0xD6,0x3D,0x94,0xEE,0x0B,0xE1,0xF5,0x28,0xAE, -0x0B,0x56,0xBF,0x71,0x8B,0x23,0x29,0x41,0x8E,0x86,0xC5,0x4B,0x52,0x7B,0xD8,0x71, -0xAB,0x1F,0x8A,0x15,0xA6,0x3B,0x83,0x5A,0xD7,0x58,0x01,0x51,0xC6,0x4C,0x41,0xD9, -0x7F,0xD8,0x41,0x67,0x72,0xA2,0x28,0xDF,0x60,0x83,0xA9,0x9E,0xC8,0x7B,0xFC,0x53, -0x73,0x72,0x59,0xF5,0x93,0x7A,0x17,0x76,0x0E,0xCE,0xF7,0xE5,0x5C,0xD9,0x0B,0x55, -0x34,0xA2,0xAA,0x5B,0xB5,0x6A,0x54,0xE7,0x13,0xCA,0x57,0xEC,0x97,0x6D,0xF4,0x5E, -0x06,0x2F,0x45,0x8B,0x58,0xD4,0x23,0x16,0x92,0xE4,0x16,0x6E,0x28,0x63,0x59,0x30, -0xDF,0x50,0x01,0x9C,0x63,0x89,0x1A,0x9F,0xDB,0x17,0x94,0x82,0x70,0x37,0xC3,0x24, -0x9E,0x9A,0x47,0xD6,0x5A,0xCA,0x4E,0xA8,0x69,0x89,0x72,0x1F,0x91,0x6C,0xDB,0x7E, -0x9E,0x1B,0xAD,0xC7,0x1F,0x73,0xDD,0x2C,0x4F,0x19,0x65,0xFD,0x7F,0x93,0x40,0x10, -0x2E,0xD2,0xF0,0xED,0x3C,0x9E,0x2E,0x28,0x3E,0x69,0x26,0x33,0xC5,0x7B,0x02,0x03, -0x01,0x00,0x01,0xA3,0x63,0x30,0x61,0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01, -0xFF,0x04,0x05,0x30,0x03,0x01,0x01,0xFF,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04, -0x16,0x04,0x14,0xDA,0xBB,0x2E,0xAA,0xB0,0x0C,0xB8,0x88,0x26,0x51,0x74,0x5C,0x6D, -0x03,0xD3,0xC0,0xD8,0x8F,0x7A,0xD6,0x30,0x1F,0x06,0x03,0x55,0x1D,0x23,0x04,0x18, -0x30,0x16,0x80,0x14,0xDA,0xBB,0x2E,0xAA,0xB0,0x0C,0xB8,0x88,0x26,0x51,0x74,0x5C, -0x6D,0x03,0xD3,0xC0,0xD8,0x8F,0x7A,0xD6,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01, -0x01,0xFF,0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86, -0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x02,0x01,0x00,0x31,0x78,0xE6,0xC7, -0xB5,0xDF,0xB8,0x94,0x40,0xC9,0x71,0xC4,0xA8,0x35,0xEC,0x46,0x1D,0xC2,0x85,0xF3, -0x28,0x58,0x86,0xB0,0x0B,0xFC,0x8E,0xB2,0x39,0x8F,0x44,0x55,0xAB,0x64,0x84,0x5C, -0x69,0xA9,0xD0,0x9A,0x38,0x3C,0xFA,0xE5,0x1F,0x35,0xE5,0x44,0xE3,0x80,0x79,0x94, -0x68,0xA4,0xBB,0xC4,0x9F,0x3D,0xE1,0x34,0xCD,0x30,0x46,0x8B,0x54,0x2B,0x95,0xA5, -0xEF,0xF7,0x3F,0x99,0x84,0xFD,0x35,0xE6,0xCF,0x31,0xC6,0xDC,0x6A,0xBF,0xA7,0xD7, -0x23,0x08,0xE1,0x98,0x5E,0xC3,0x5A,0x08,0x76,0xA9,0xA6,0xAF,0x77,0x2F,0xB7,0x60, -0xBD,0x44,0x46,0x6A,0xEF,0x97,0xFF,0x73,0x95,0xC1,0x8E,0xE8,0x93,0xFB,0xFD,0x31, -0xB7,0xEC,0x57,0x11,0x11,0x45,0x9B,0x30,0xF1,0x1A,0x88,0x39,0xC1,0x4F,0x3C,0xA7, -0x00,0xD5,0xC7,0xFC,0xAB,0x6D,0x80,0x22,0x70,0xA5,0x0C,0xE0,0x5D,0x04,0x29,0x02, -0xFB,0xCB,0xA0,0x91,0xD1,0x7C,0xD6,0xC3,0x7E,0x50,0xD5,0x9D,0x58,0xBE,0x41,0x38, -0xEB,0xB9,0x75,0x3C,0x15,0xD9,0x9B,0xC9,0x4A,0x83,0x59,0xC0,0xDA,0x53,0xFD,0x33, -0xBB,0x36,0x18,0x9B,0x85,0x0F,0x15,0xDD,0xEE,0x2D,0xAC,0x76,0x93,0xB9,0xD9,0x01, -0x8D,0x48,0x10,0xA8,0xFB,0xF5,0x38,0x86,0xF1,0xDB,0x0A,0xC6,0xBD,0x84,0xA3,0x23, -0x41,0xDE,0xD6,0x77,0x6F,0x85,0xD4,0x85,0x1C,0x50,0xE0,0xAE,0x51,0x8A,0xBA,0x8D, -0x3E,0x76,0xE2,0xB9,0xCA,0x27,0xF2,0x5F,0x9F,0xEF,0x6E,0x59,0x0D,0x06,0xD8,0x2B, -0x17,0xA4,0xD2,0x7C,0x6B,0xBB,0x5F,0x14,0x1A,0x48,0x8F,0x1A,0x4C,0xE7,0xB3,0x47, -0x1C,0x8E,0x4C,0x45,0x2B,0x20,0xEE,0x48,0xDF,0xE7,0xDD,0x09,0x8E,0x18,0xA8,0xDA, -0x40,0x8D,0x92,0x26,0x11,0x53,0x61,0x73,0x5D,0xEB,0xBD,0xE7,0xC4,0x4D,0x29,0x37, -0x61,0xEB,0xAC,0x39,0x2D,0x67,0x2E,0x16,0xD6,0xF5,0x00,0x83,0x85,0xA1,0xCC,0x7F, -0x76,0xC4,0x7D,0xE4,0xB7,0x4B,0x66,0xEF,0x03,0x45,0x60,0x69,0xB6,0x0C,0x52,0x96, -0x92,0x84,0x5E,0xA6,0xA3,0xB5,0xA4,0x3E,0x2B,0xD9,0xCC,0xD8,0x1B,0x47,0xAA,0xF2, -0x44,0xDA,0x4F,0xF9,0x03,0xE8,0xF0,0x14,0xCB,0x3F,0xF3,0x83,0xDE,0xD0,0xC1,0x54, -0xE3,0xB7,0xE8,0x0A,0x37,0x4D,0x8B,0x20,0x59,0x03,0x30,0x19,0xA1,0x2C,0xC8,0xBD, -0x11,0x1F,0xDF,0xAE,0xC9,0x4A,0xC5,0xF3,0x27,0x66,0x66,0x86,0xAC,0x68,0x91,0xFF, -0xD9,0xE6,0x53,0x1C,0x0F,0x8B,0x5C,0x69,0x65,0x0A,0x26,0xC8,0x1E,0x34,0xC3,0x5D, -0x51,0x7B,0xD7,0xA9,0x9C,0x06,0xA1,0x36,0xDD,0xD5,0x89,0x94,0xBC,0xD9,0xE4,0x2D, -0x0C,0x5E,0x09,0x6C,0x08,0x97,0x7C,0xA3,0x3D,0x7C,0x93,0xFF,0x3F,0xA1,0x14,0xA7, -0xCF,0xB5,0x5D,0xEB,0xDB,0xDB,0x1C,0xC4,0x76,0xDF,0x88,0xB9,0xBD,0x45,0x05,0x95, -0x1B,0xAE,0xFC,0x46,0x6A,0x4C,0xAF,0x48,0xE3,0xCE,0xAE,0x0F,0xD2,0x7E,0xEB,0xE6, -0x6C,0x9C,0x4F,0x81,0x6A,0x7A,0x64,0xAC,0xBB,0x3E,0xD5,0xE7,0xCB,0x76,0x2E,0xC5, -0xA7,0x48,0xC1,0x5C,0x90,0x0F,0xCB,0xC8,0x3F,0xFA,0xE6,0x32,0xE1,0x8D,0x1B,0x6F, -0xA4,0xE6,0x8E,0xD8,0xF9,0x29,0x48,0x8A,0xCE,0x73,0xFE,0x2C, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./CN=Go Daddy Root Certificate Authority - G2 */ -/* issuer :/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./CN=Go Daddy Root Certificate Authority - G2 */ -unsigned char XXX_certificate[969]={ -0x30,0x82,0x03,0xC5,0x30,0x82,0x02,0xAD,0xA0,0x03,0x02,0x01,0x02,0x02,0x01,0x00, -0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0B,0x05,0x00,0x30, -0x81,0x83,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31, -0x10,0x30,0x0E,0x06,0x03,0x55,0x04,0x08,0x13,0x07,0x41,0x72,0x69,0x7A,0x6F,0x6E, -0x61,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x07,0x13,0x0A,0x53,0x63,0x6F,0x74, -0x74,0x73,0x64,0x61,0x6C,0x65,0x31,0x1A,0x30,0x18,0x06,0x03,0x55,0x04,0x0A,0x13, -0x11,0x47,0x6F,0x44,0x61,0x64,0x64,0x79,0x2E,0x63,0x6F,0x6D,0x2C,0x20,0x49,0x6E, -0x63,0x2E,0x31,0x31,0x30,0x2F,0x06,0x03,0x55,0x04,0x03,0x13,0x28,0x47,0x6F,0x20, -0x44,0x61,0x64,0x64,0x79,0x20,0x52,0x6F,0x6F,0x74,0x20,0x43,0x65,0x72,0x74,0x69, -0x66,0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79, -0x20,0x2D,0x20,0x47,0x32,0x30,0x1E,0x17,0x0D,0x30,0x39,0x30,0x39,0x30,0x31,0x30, -0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x33,0x37,0x31,0x32,0x33,0x31,0x32,0x33, -0x35,0x39,0x35,0x39,0x5A,0x30,0x81,0x83,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04, -0x06,0x13,0x02,0x55,0x53,0x31,0x10,0x30,0x0E,0x06,0x03,0x55,0x04,0x08,0x13,0x07, -0x41,0x72,0x69,0x7A,0x6F,0x6E,0x61,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x07, -0x13,0x0A,0x53,0x63,0x6F,0x74,0x74,0x73,0x64,0x61,0x6C,0x65,0x31,0x1A,0x30,0x18, -0x06,0x03,0x55,0x04,0x0A,0x13,0x11,0x47,0x6F,0x44,0x61,0x64,0x64,0x79,0x2E,0x63, -0x6F,0x6D,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x31,0x30,0x2F,0x06,0x03,0x55,0x04, -0x03,0x13,0x28,0x47,0x6F,0x20,0x44,0x61,0x64,0x64,0x79,0x20,0x52,0x6F,0x6F,0x74, -0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74, -0x68,0x6F,0x72,0x69,0x74,0x79,0x20,0x2D,0x20,0x47,0x32,0x30,0x82,0x01,0x22,0x30, -0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x82, -0x01,0x0F,0x00,0x30,0x82,0x01,0x0A,0x02,0x82,0x01,0x01,0x00,0xBF,0x71,0x62,0x08, -0xF1,0xFA,0x59,0x34,0xF7,0x1B,0xC9,0x18,0xA3,0xF7,0x80,0x49,0x58,0xE9,0x22,0x83, -0x13,0xA6,0xC5,0x20,0x43,0x01,0x3B,0x84,0xF1,0xE6,0x85,0x49,0x9F,0x27,0xEA,0xF6, -0x84,0x1B,0x4E,0xA0,0xB4,0xDB,0x70,0x98,0xC7,0x32,0x01,0xB1,0x05,0x3E,0x07,0x4E, -0xEE,0xF4,0xFA,0x4F,0x2F,0x59,0x30,0x22,0xE7,0xAB,0x19,0x56,0x6B,0xE2,0x80,0x07, -0xFC,0xF3,0x16,0x75,0x80,0x39,0x51,0x7B,0xE5,0xF9,0x35,0xB6,0x74,0x4E,0xA9,0x8D, -0x82,0x13,0xE4,0xB6,0x3F,0xA9,0x03,0x83,0xFA,0xA2,0xBE,0x8A,0x15,0x6A,0x7F,0xDE, -0x0B,0xC3,0xB6,0x19,0x14,0x05,0xCA,0xEA,0xC3,0xA8,0x04,0x94,0x3B,0x46,0x7C,0x32, -0x0D,0xF3,0x00,0x66,0x22,0xC8,0x8D,0x69,0x6D,0x36,0x8C,0x11,0x18,0xB7,0xD3,0xB2, -0x1C,0x60,0xB4,0x38,0xFA,0x02,0x8C,0xCE,0xD3,0xDD,0x46,0x07,0xDE,0x0A,0x3E,0xEB, -0x5D,0x7C,0xC8,0x7C,0xFB,0xB0,0x2B,0x53,0xA4,0x92,0x62,0x69,0x51,0x25,0x05,0x61, -0x1A,0x44,0x81,0x8C,0x2C,0xA9,0x43,0x96,0x23,0xDF,0xAC,0x3A,0x81,0x9A,0x0E,0x29, -0xC5,0x1C,0xA9,0xE9,0x5D,0x1E,0xB6,0x9E,0x9E,0x30,0x0A,0x39,0xCE,0xF1,0x88,0x80, -0xFB,0x4B,0x5D,0xCC,0x32,0xEC,0x85,0x62,0x43,0x25,0x34,0x02,0x56,0x27,0x01,0x91, -0xB4,0x3B,0x70,0x2A,0x3F,0x6E,0xB1,0xE8,0x9C,0x88,0x01,0x7D,0x9F,0xD4,0xF9,0xDB, -0x53,0x6D,0x60,0x9D,0xBF,0x2C,0xE7,0x58,0xAB,0xB8,0x5F,0x46,0xFC,0xCE,0xC4,0x1B, -0x03,0x3C,0x09,0xEB,0x49,0x31,0x5C,0x69,0x46,0xB3,0xE0,0x47,0x02,0x03,0x01,0x00, -0x01,0xA3,0x42,0x30,0x40,0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04, -0x05,0x30,0x03,0x01,0x01,0xFF,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01,0x01,0xFF, -0x04,0x04,0x03,0x02,0x01,0x06,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04, -0x14,0x3A,0x9A,0x85,0x07,0x10,0x67,0x28,0xB6,0xEF,0xF6,0xBD,0x05,0x41,0x6E,0x20, -0xC1,0x94,0xDA,0x0F,0xDE,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, -0x01,0x0B,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x99,0xDB,0x5D,0x79,0xD5,0xF9,0x97, -0x59,0x67,0x03,0x61,0xF1,0x7E,0x3B,0x06,0x31,0x75,0x2D,0xA1,0x20,0x8E,0x4F,0x65, -0x87,0xB4,0xF7,0xA6,0x9C,0xBC,0xD8,0xE9,0x2F,0xD0,0xDB,0x5A,0xEE,0xCF,0x74,0x8C, -0x73,0xB4,0x38,0x42,0xDA,0x05,0x7B,0xF8,0x02,0x75,0xB8,0xFD,0xA5,0xB1,0xD7,0xAE, -0xF6,0xD7,0xDE,0x13,0xCB,0x53,0x10,0x7E,0x8A,0x46,0xD1,0x97,0xFA,0xB7,0x2E,0x2B, -0x11,0xAB,0x90,0xB0,0x27,0x80,0xF9,0xE8,0x9F,0x5A,0xE9,0x37,0x9F,0xAB,0xE4,0xDF, -0x6C,0xB3,0x85,0x17,0x9D,0x3D,0xD9,0x24,0x4F,0x79,0x91,0x35,0xD6,0x5F,0x04,0xEB, -0x80,0x83,0xAB,0x9A,0x02,0x2D,0xB5,0x10,0xF4,0xD8,0x90,0xC7,0x04,0x73,0x40,0xED, -0x72,0x25,0xA0,0xA9,0x9F,0xEC,0x9E,0xAB,0x68,0x12,0x99,0x57,0xC6,0x8F,0x12,0x3A, -0x09,0xA4,0xBD,0x44,0xFD,0x06,0x15,0x37,0xC1,0x9B,0xE4,0x32,0xA3,0xED,0x38,0xE8, -0xD8,0x64,0xF3,0x2C,0x7E,0x14,0xFC,0x02,0xEA,0x9F,0xCD,0xFF,0x07,0x68,0x17,0xDB, -0x22,0x90,0x38,0x2D,0x7A,0x8D,0xD1,0x54,0xF1,0x69,0xE3,0x5F,0x33,0xCA,0x7A,0x3D, -0x7B,0x0A,0xE3,0xCA,0x7F,0x5F,0x39,0xE5,0xE2,0x75,0xBA,0xC5,0x76,0x18,0x33,0xCE, -0x2C,0xF0,0x2F,0x4C,0xAD,0xF7,0xB1,0xE7,0xCE,0x4F,0xA8,0xC4,0x9B,0x4A,0x54,0x06, -0xC5,0x7F,0x7D,0xD5,0x08,0x0F,0xE2,0x1C,0xFE,0x7E,0x17,0xB8,0xAC,0x5E,0xF6,0xD4, -0x16,0xB2,0x43,0x09,0x0C,0x4D,0xF6,0xA7,0x6B,0xB4,0x99,0x84,0x65,0xCA,0x7A,0x88, -0xE2,0xE2,0x44,0xBE,0x5C,0xF7,0xEA,0x1C,0xF5, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=SecureTrust Corporation/CN=SecureTrust CA */ -/* issuer :/C=US/O=SecureTrust Corporation/CN=SecureTrust CA */ -unsigned char XXX_certificate[956]={ -0x30,0x82,0x03,0xB8,0x30,0x82,0x02,0xA0,0xA0,0x03,0x02,0x01,0x02,0x02,0x10,0x0C, -0xF0,0x8E,0x5C,0x08,0x16,0xA5,0xAD,0x42,0x7F,0xF0,0xEB,0x27,0x18,0x59,0xD0,0x30, -0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x48, -0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x20,0x30, -0x1E,0x06,0x03,0x55,0x04,0x0A,0x13,0x17,0x53,0x65,0x63,0x75,0x72,0x65,0x54,0x72, -0x75,0x73,0x74,0x20,0x43,0x6F,0x72,0x70,0x6F,0x72,0x61,0x74,0x69,0x6F,0x6E,0x31, -0x17,0x30,0x15,0x06,0x03,0x55,0x04,0x03,0x13,0x0E,0x53,0x65,0x63,0x75,0x72,0x65, -0x54,0x72,0x75,0x73,0x74,0x20,0x43,0x41,0x30,0x1E,0x17,0x0D,0x30,0x36,0x31,0x31, -0x30,0x37,0x31,0x39,0x33,0x31,0x31,0x38,0x5A,0x17,0x0D,0x32,0x39,0x31,0x32,0x33, -0x31,0x31,0x39,0x34,0x30,0x35,0x35,0x5A,0x30,0x48,0x31,0x0B,0x30,0x09,0x06,0x03, -0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x20,0x30,0x1E,0x06,0x03,0x55,0x04,0x0A, -0x13,0x17,0x53,0x65,0x63,0x75,0x72,0x65,0x54,0x72,0x75,0x73,0x74,0x20,0x43,0x6F, -0x72,0x70,0x6F,0x72,0x61,0x74,0x69,0x6F,0x6E,0x31,0x17,0x30,0x15,0x06,0x03,0x55, -0x04,0x03,0x13,0x0E,0x53,0x65,0x63,0x75,0x72,0x65,0x54,0x72,0x75,0x73,0x74,0x20, -0x43,0x41,0x30,0x82,0x01,0x22,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D, -0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0F,0x00,0x30,0x82,0x01,0x0A,0x02,0x82, -0x01,0x01,0x00,0xAB,0xA4,0x81,0xE5,0x95,0xCD,0xF5,0xF6,0x14,0x8E,0xC2,0x4F,0xCA, -0xD4,0xE2,0x78,0x95,0x58,0x9C,0x41,0xE1,0x0D,0x99,0x40,0x24,0x17,0x39,0x91,0x33, -0x66,0xE9,0xBE,0xE1,0x83,0xAF,0x62,0x5C,0x89,0xD1,0xFC,0x24,0x5B,0x61,0xB3,0xE0, -0x11,0x11,0x41,0x1C,0x1D,0x6E,0xF0,0xB8,0xBB,0xF8,0xDE,0xA7,0x81,0xBA,0xA6,0x48, -0xC6,0x9F,0x1D,0xBD,0xBE,0x8E,0xA9,0x41,0x3E,0xB8,0x94,0xED,0x29,0x1A,0xD4,0x8E, -0xD2,0x03,0x1D,0x03,0xEF,0x6D,0x0D,0x67,0x1C,0x57,0xD7,0x06,0xAD,0xCA,0xC8,0xF5, -0xFE,0x0E,0xAF,0x66,0x25,0x48,0x04,0x96,0x0B,0x5D,0xA3,0xBA,0x16,0xC3,0x08,0x4F, -0xD1,0x46,0xF8,0x14,0x5C,0xF2,0xC8,0x5E,0x01,0x99,0x6D,0xFD,0x88,0xCC,0x86,0xA8, -0xC1,0x6F,0x31,0x42,0x6C,0x52,0x3E,0x68,0xCB,0xF3,0x19,0x34,0xDF,0xBB,0x87,0x18, -0x56,0x80,0x26,0xC4,0xD0,0xDC,0xC0,0x6F,0xDF,0xDE,0xA0,0xC2,0x91,0x16,0xA0,0x64, -0x11,0x4B,0x44,0xBC,0x1E,0xF6,0xE7,0xFA,0x63,0xDE,0x66,0xAC,0x76,0xA4,0x71,0xA3, -0xEC,0x36,0x94,0x68,0x7A,0x77,0xA4,0xB1,0xE7,0x0E,0x2F,0x81,0x7A,0xE2,0xB5,0x72, -0x86,0xEF,0xA2,0x6B,0x8B,0xF0,0x0F,0xDB,0xD3,0x59,0x3F,0xBA,0x72,0xBC,0x44,0x24, -0x9C,0xE3,0x73,0xB3,0xF7,0xAF,0x57,0x2F,0x42,0x26,0x9D,0xA9,0x74,0xBA,0x00,0x52, -0xF2,0x4B,0xCD,0x53,0x7C,0x47,0x0B,0x36,0x85,0x0E,0x66,0xA9,0x08,0x97,0x16,0x34, -0x57,0xC1,0x66,0xF7,0x80,0xE3,0xED,0x70,0x54,0xC7,0x93,0xE0,0x2E,0x28,0x15,0x59, -0x87,0xBA,0xBB,0x02,0x03,0x01,0x00,0x01,0xA3,0x81,0x9D,0x30,0x81,0x9A,0x30,0x13, -0x06,0x09,0x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x04,0x06,0x1E,0x04,0x00, -0x43,0x00,0x41,0x30,0x0B,0x06,0x03,0x55,0x1D,0x0F,0x04,0x04,0x03,0x02,0x01,0x86, -0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04,0x05,0x30,0x03,0x01,0x01, -0xFF,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0x42,0x32,0xB6,0x16, -0xFA,0x04,0xFD,0xFE,0x5D,0x4B,0x7A,0xC3,0xFD,0xF7,0x4C,0x40,0x1D,0x5A,0x43,0xAF, -0x30,0x34,0x06,0x03,0x55,0x1D,0x1F,0x04,0x2D,0x30,0x2B,0x30,0x29,0xA0,0x27,0xA0, -0x25,0x86,0x23,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x63,0x72,0x6C,0x2E,0x73,0x65, -0x63,0x75,0x72,0x65,0x74,0x72,0x75,0x73,0x74,0x2E,0x63,0x6F,0x6D,0x2F,0x53,0x54, -0x43,0x41,0x2E,0x63,0x72,0x6C,0x30,0x10,0x06,0x09,0x2B,0x06,0x01,0x04,0x01,0x82, -0x37,0x15,0x01,0x04,0x03,0x02,0x01,0x00,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86, -0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x30,0xED,0x4F,0x4A, -0xE1,0x58,0x3A,0x52,0x72,0x5B,0xB5,0xA6,0xA3,0x65,0x18,0xA6,0xBB,0x51,0x3B,0x77, -0xE9,0x9D,0xEA,0xD3,0x9F,0x5C,0xE0,0x45,0x65,0x7B,0x0D,0xCA,0x5B,0xE2,0x70,0x50, -0xB2,0x94,0x05,0x14,0xAE,0x49,0xC7,0x8D,0x41,0x07,0x12,0x73,0x94,0x7E,0x0C,0x23, -0x21,0xFD,0xBC,0x10,0x7F,0x60,0x10,0x5A,0x72,0xF5,0x98,0x0E,0xAC,0xEC,0xB9,0x7F, -0xDD,0x7A,0x6F,0x5D,0xD3,0x1C,0xF4,0xFF,0x88,0x05,0x69,0x42,0xA9,0x05,0x71,0xC8, -0xB7,0xAC,0x26,0xE8,0x2E,0xB4,0x8C,0x6A,0xFF,0x71,0xDC,0xB8,0xB1,0xDF,0x99,0xBC, -0x7C,0x21,0x54,0x2B,0xE4,0x58,0xA2,0xBB,0x57,0x29,0xAE,0x9E,0xA9,0xA3,0x19,0x26, -0x0F,0x99,0x2E,0x08,0xB0,0xEF,0xFD,0x69,0xCF,0x99,0x1A,0x09,0x8D,0xE3,0xA7,0x9F, -0x2B,0xC9,0x36,0x34,0x7B,0x24,0xB3,0x78,0x4C,0x95,0x17,0xA4,0x06,0x26,0x1E,0xB6, -0x64,0x52,0x36,0x5F,0x60,0x67,0xD9,0x9C,0xC5,0x05,0x74,0x0B,0xE7,0x67,0x23,0xD2, -0x08,0xFC,0x88,0xE9,0xAE,0x8B,0x7F,0xE1,0x30,0xF4,0x37,0x7E,0xFD,0xC6,0x32,0xDA, -0x2D,0x9E,0x44,0x30,0x30,0x6C,0xEE,0x07,0xDE,0xD2,0x34,0xFC,0xD2,0xFF,0x40,0xF6, -0x4B,0xF4,0x66,0x46,0x06,0x54,0xA6,0xF2,0x32,0x0A,0x63,0x26,0x30,0x6B,0x9B,0xD1, -0xDC,0x8B,0x47,0xBA,0xE1,0xB9,0xD5,0x62,0xD0,0xA2,0xA0,0xF4,0x67,0x05,0x78,0x29, -0x63,0x1A,0x6F,0x04,0xD6,0xF8,0xC6,0x4C,0xA3,0x9A,0xB1,0x37,0xB4,0x8D,0xE5,0x28, -0x4B,0x1D,0x9E,0x2C,0xC2,0xB8,0x68,0xBC,0xED,0x02,0xEE,0x31, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=SecureTrust Corporation/CN=SecureTrust CA */ -/* issuer :/C=US/O=SecureTrust Corporation/CN=SecureTrust CA */ -unsigned char XXX_certificate[956]={ -0x30,0x82,0x03,0xB8,0x30,0x82,0x02,0xA0,0xA0,0x03,0x02,0x01,0x02,0x02,0x10,0x0C, -0xF0,0x8E,0x5C,0x08,0x16,0xA5,0xAD,0x42,0x7F,0xF0,0xEB,0x27,0x18,0x59,0xD0,0x30, -0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x48, -0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x20,0x30, -0x1E,0x06,0x03,0x55,0x04,0x0A,0x13,0x17,0x53,0x65,0x63,0x75,0x72,0x65,0x54,0x72, -0x75,0x73,0x74,0x20,0x43,0x6F,0x72,0x70,0x6F,0x72,0x61,0x74,0x69,0x6F,0x6E,0x31, -0x17,0x30,0x15,0x06,0x03,0x55,0x04,0x03,0x13,0x0E,0x53,0x65,0x63,0x75,0x72,0x65, -0x54,0x72,0x75,0x73,0x74,0x20,0x43,0x41,0x30,0x1E,0x17,0x0D,0x30,0x36,0x31,0x31, -0x30,0x37,0x31,0x39,0x33,0x31,0x31,0x38,0x5A,0x17,0x0D,0x32,0x39,0x31,0x32,0x33, -0x31,0x31,0x39,0x34,0x30,0x35,0x35,0x5A,0x30,0x48,0x31,0x0B,0x30,0x09,0x06,0x03, -0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x20,0x30,0x1E,0x06,0x03,0x55,0x04,0x0A, -0x13,0x17,0x53,0x65,0x63,0x75,0x72,0x65,0x54,0x72,0x75,0x73,0x74,0x20,0x43,0x6F, -0x72,0x70,0x6F,0x72,0x61,0x74,0x69,0x6F,0x6E,0x31,0x17,0x30,0x15,0x06,0x03,0x55, -0x04,0x03,0x13,0x0E,0x53,0x65,0x63,0x75,0x72,0x65,0x54,0x72,0x75,0x73,0x74,0x20, -0x43,0x41,0x30,0x82,0x01,0x22,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D, -0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0F,0x00,0x30,0x82,0x01,0x0A,0x02,0x82, -0x01,0x01,0x00,0xAB,0xA4,0x81,0xE5,0x95,0xCD,0xF5,0xF6,0x14,0x8E,0xC2,0x4F,0xCA, -0xD4,0xE2,0x78,0x95,0x58,0x9C,0x41,0xE1,0x0D,0x99,0x40,0x24,0x17,0x39,0x91,0x33, -0x66,0xE9,0xBE,0xE1,0x83,0xAF,0x62,0x5C,0x89,0xD1,0xFC,0x24,0x5B,0x61,0xB3,0xE0, -0x11,0x11,0x41,0x1C,0x1D,0x6E,0xF0,0xB8,0xBB,0xF8,0xDE,0xA7,0x81,0xBA,0xA6,0x48, -0xC6,0x9F,0x1D,0xBD,0xBE,0x8E,0xA9,0x41,0x3E,0xB8,0x94,0xED,0x29,0x1A,0xD4,0x8E, -0xD2,0x03,0x1D,0x03,0xEF,0x6D,0x0D,0x67,0x1C,0x57,0xD7,0x06,0xAD,0xCA,0xC8,0xF5, -0xFE,0x0E,0xAF,0x66,0x25,0x48,0x04,0x96,0x0B,0x5D,0xA3,0xBA,0x16,0xC3,0x08,0x4F, -0xD1,0x46,0xF8,0x14,0x5C,0xF2,0xC8,0x5E,0x01,0x99,0x6D,0xFD,0x88,0xCC,0x86,0xA8, -0xC1,0x6F,0x31,0x42,0x6C,0x52,0x3E,0x68,0xCB,0xF3,0x19,0x34,0xDF,0xBB,0x87,0x18, -0x56,0x80,0x26,0xC4,0xD0,0xDC,0xC0,0x6F,0xDF,0xDE,0xA0,0xC2,0x91,0x16,0xA0,0x64, -0x11,0x4B,0x44,0xBC,0x1E,0xF6,0xE7,0xFA,0x63,0xDE,0x66,0xAC,0x76,0xA4,0x71,0xA3, -0xEC,0x36,0x94,0x68,0x7A,0x77,0xA4,0xB1,0xE7,0x0E,0x2F,0x81,0x7A,0xE2,0xB5,0x72, -0x86,0xEF,0xA2,0x6B,0x8B,0xF0,0x0F,0xDB,0xD3,0x59,0x3F,0xBA,0x72,0xBC,0x44,0x24, -0x9C,0xE3,0x73,0xB3,0xF7,0xAF,0x57,0x2F,0x42,0x26,0x9D,0xA9,0x74,0xBA,0x00,0x52, -0xF2,0x4B,0xCD,0x53,0x7C,0x47,0x0B,0x36,0x85,0x0E,0x66,0xA9,0x08,0x97,0x16,0x34, -0x57,0xC1,0x66,0xF7,0x80,0xE3,0xED,0x70,0x54,0xC7,0x93,0xE0,0x2E,0x28,0x15,0x59, -0x87,0xBA,0xBB,0x02,0x03,0x01,0x00,0x01,0xA3,0x81,0x9D,0x30,0x81,0x9A,0x30,0x13, -0x06,0x09,0x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x04,0x06,0x1E,0x04,0x00, -0x43,0x00,0x41,0x30,0x0B,0x06,0x03,0x55,0x1D,0x0F,0x04,0x04,0x03,0x02,0x01,0x86, -0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04,0x05,0x30,0x03,0x01,0x01, -0xFF,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0x42,0x32,0xB6,0x16, -0xFA,0x04,0xFD,0xFE,0x5D,0x4B,0x7A,0xC3,0xFD,0xF7,0x4C,0x40,0x1D,0x5A,0x43,0xAF, -0x30,0x34,0x06,0x03,0x55,0x1D,0x1F,0x04,0x2D,0x30,0x2B,0x30,0x29,0xA0,0x27,0xA0, -0x25,0x86,0x23,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x63,0x72,0x6C,0x2E,0x73,0x65, -0x63,0x75,0x72,0x65,0x74,0x72,0x75,0x73,0x74,0x2E,0x63,0x6F,0x6D,0x2F,0x53,0x54, -0x43,0x41,0x2E,0x63,0x72,0x6C,0x30,0x10,0x06,0x09,0x2B,0x06,0x01,0x04,0x01,0x82, -0x37,0x15,0x01,0x04,0x03,0x02,0x01,0x00,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86, -0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x30,0xED,0x4F,0x4A, -0xE1,0x58,0x3A,0x52,0x72,0x5B,0xB5,0xA6,0xA3,0x65,0x18,0xA6,0xBB,0x51,0x3B,0x77, -0xE9,0x9D,0xEA,0xD3,0x9F,0x5C,0xE0,0x45,0x65,0x7B,0x0D,0xCA,0x5B,0xE2,0x70,0x50, -0xB2,0x94,0x05,0x14,0xAE,0x49,0xC7,0x8D,0x41,0x07,0x12,0x73,0x94,0x7E,0x0C,0x23, -0x21,0xFD,0xBC,0x10,0x7F,0x60,0x10,0x5A,0x72,0xF5,0x98,0x0E,0xAC,0xEC,0xB9,0x7F, -0xDD,0x7A,0x6F,0x5D,0xD3,0x1C,0xF4,0xFF,0x88,0x05,0x69,0x42,0xA9,0x05,0x71,0xC8, -0xB7,0xAC,0x26,0xE8,0x2E,0xB4,0x8C,0x6A,0xFF,0x71,0xDC,0xB8,0xB1,0xDF,0x99,0xBC, -0x7C,0x21,0x54,0x2B,0xE4,0x58,0xA2,0xBB,0x57,0x29,0xAE,0x9E,0xA9,0xA3,0x19,0x26, -0x0F,0x99,0x2E,0x08,0xB0,0xEF,0xFD,0x69,0xCF,0x99,0x1A,0x09,0x8D,0xE3,0xA7,0x9F, -0x2B,0xC9,0x36,0x34,0x7B,0x24,0xB3,0x78,0x4C,0x95,0x17,0xA4,0x06,0x26,0x1E,0xB6, -0x64,0x52,0x36,0x5F,0x60,0x67,0xD9,0x9C,0xC5,0x05,0x74,0x0B,0xE7,0x67,0x23,0xD2, -0x08,0xFC,0x88,0xE9,0xAE,0x8B,0x7F,0xE1,0x30,0xF4,0x37,0x7E,0xFD,0xC6,0x32,0xDA, -0x2D,0x9E,0x44,0x30,0x30,0x6C,0xEE,0x07,0xDE,0xD2,0x34,0xFC,0xD2,0xFF,0x40,0xF6, -0x4B,0xF4,0x66,0x46,0x06,0x54,0xA6,0xF2,0x32,0x0A,0x63,0x26,0x30,0x6B,0x9B,0xD1, -0xDC,0x8B,0x47,0xBA,0xE1,0xB9,0xD5,0x62,0xD0,0xA2,0xA0,0xF4,0x67,0x05,0x78,0x29, -0x63,0x1A,0x6F,0x04,0xD6,0xF8,0xC6,0x4C,0xA3,0x9A,0xB1,0x37,0xB4,0x8D,0xE5,0x28, -0x4B,0x1D,0x9E,0x2C,0xC2,0xB8,0x68,0xBC,0xED,0x02,0xEE,0x31, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority - G2/OU=(c) 1998 VeriSign, Inc. - For authorized use only/OU=VeriSign Trust Network */ -/* issuer :/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority - G2/OU=(c) 1998 VeriSign, Inc. - For authorized use only/OU=VeriSign Trust Network */ -unsigned char XXX_certificate[774]={ -0x30,0x82,0x03,0x02,0x30,0x82,0x02,0x6B,0x02,0x10,0x7D,0xD9,0xFE,0x07,0xCF,0xA8, -0x1E,0xB7,0x10,0x79,0x67,0xFB,0xA7,0x89,0x34,0xC6,0x30,0x0D,0x06,0x09,0x2A,0x86, -0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x81,0xC1,0x31,0x0B,0x30,0x09, -0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06,0x03,0x55, -0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E, -0x63,0x2E,0x31,0x3C,0x30,0x3A,0x06,0x03,0x55,0x04,0x0B,0x13,0x33,0x43,0x6C,0x61, -0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x20,0x50,0x72,0x69,0x6D, -0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F, -0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79,0x20,0x2D,0x20,0x47,0x32, -0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04,0x0B,0x13,0x31,0x28,0x63,0x29,0x20,0x31, -0x39,0x39,0x38,0x20,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E, -0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75,0x74,0x68,0x6F,0x72,0x69, -0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x31,0x1F,0x30,0x1D, -0x06,0x03,0x55,0x04,0x0B,0x13,0x16,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x20, -0x54,0x72,0x75,0x73,0x74,0x20,0x4E,0x65,0x74,0x77,0x6F,0x72,0x6B,0x30,0x1E,0x17, -0x0D,0x39,0x38,0x30,0x35,0x31,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D, -0x32,0x38,0x30,0x38,0x30,0x31,0x32,0x33,0x35,0x39,0x35,0x39,0x5A,0x30,0x81,0xC1, -0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30, -0x15,0x06,0x03,0x55,0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E, -0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x3C,0x30,0x3A,0x06,0x03,0x55,0x04,0x0B,0x13, -0x33,0x43,0x6C,0x61,0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x20, -0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63, -0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79,0x20, -0x2D,0x20,0x47,0x32,0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04,0x0B,0x13,0x31,0x28, -0x63,0x29,0x20,0x31,0x39,0x39,0x38,0x20,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E, -0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75,0x74, -0x68,0x6F,0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C,0x79, -0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x0B,0x13,0x16,0x56,0x65,0x72,0x69,0x53, -0x69,0x67,0x6E,0x20,0x54,0x72,0x75,0x73,0x74,0x20,0x4E,0x65,0x74,0x77,0x6F,0x72, -0x6B,0x30,0x81,0x9F,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01, -0x01,0x05,0x00,0x03,0x81,0x8D,0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xCC,0x5E, -0xD1,0x11,0x5D,0x5C,0x69,0xD0,0xAB,0xD3,0xB9,0x6A,0x4C,0x99,0x1F,0x59,0x98,0x30, -0x8E,0x16,0x85,0x20,0x46,0x6D,0x47,0x3F,0xD4,0x85,0x20,0x84,0xE1,0x6D,0xB3,0xF8, -0xA4,0xED,0x0C,0xF1,0x17,0x0F,0x3B,0xF9,0xA7,0xF9,0x25,0xD7,0xC1,0xCF,0x84,0x63, -0xF2,0x7C,0x63,0xCF,0xA2,0x47,0xF2,0xC6,0x5B,0x33,0x8E,0x64,0x40,0x04,0x68,0xC1, -0x80,0xB9,0x64,0x1C,0x45,0x77,0xC7,0xD8,0x6E,0xF5,0x95,0x29,0x3C,0x50,0xE8,0x34, -0xD7,0x78,0x1F,0xA8,0xBA,0x6D,0x43,0x91,0x95,0x8F,0x45,0x57,0x5E,0x7E,0xC5,0xFB, -0xCA,0xA4,0x04,0xEB,0xEA,0x97,0x37,0x54,0x30,0x6F,0xBB,0x01,0x47,0x32,0x33,0xCD, -0xDC,0x57,0x9B,0x64,0x69,0x61,0xF8,0x9B,0x1D,0x1C,0x89,0x4F,0x5C,0x67,0x02,0x03, -0x01,0x00,0x01,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05, -0x05,0x00,0x03,0x81,0x81,0x00,0x51,0x4D,0xCD,0xBE,0x5C,0xCB,0x98,0x19,0x9C,0x15, -0xB2,0x01,0x39,0x78,0x2E,0x4D,0x0F,0x67,0x70,0x70,0x99,0xC6,0x10,0x5A,0x94,0xA4, -0x53,0x4D,0x54,0x6D,0x2B,0xAF,0x0D,0x5D,0x40,0x8B,0x64,0xD3,0xD7,0xEE,0xDE,0x56, -0x61,0x92,0x5F,0xA6,0xC4,0x1D,0x10,0x61,0x36,0xD3,0x2C,0x27,0x3C,0xE8,0x29,0x09, -0xB9,0x11,0x64,0x74,0xCC,0xB5,0x73,0x9F,0x1C,0x48,0xA9,0xBC,0x61,0x01,0xEE,0xE2, -0x17,0xA6,0x0C,0xE3,0x40,0x08,0x3B,0x0E,0xE7,0xEB,0x44,0x73,0x2A,0x9A,0xF1,0x69, -0x92,0xEF,0x71,0x14,0xC3,0x39,0xAC,0x71,0xA7,0x91,0x09,0x6F,0xE4,0x71,0x06,0xB3, -0xBA,0x59,0x57,0x26,0x79,0x00,0xF6,0xF8,0x0D,0xA2,0x33,0x30,0x28,0xD4,0xAA,0x58, -0xA0,0x9D,0x9D,0x69,0x91,0xFD, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 1999 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G3 */ -/* issuer :/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 1999 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G3 */ -unsigned char XXX_certificate[1054]={ -0x30,0x82,0x04,0x1A,0x30,0x82,0x03,0x02,0x02,0x11,0x00,0x9B,0x7E,0x06,0x49,0xA3, -0x3E,0x62,0xB9,0xD5,0xEE,0x90,0x48,0x71,0x29,0xEF,0x57,0x30,0x0D,0x06,0x09,0x2A, -0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x81,0xCA,0x31,0x0B,0x30, -0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06,0x03, -0x55,0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49, -0x6E,0x63,0x2E,0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x0B,0x13,0x16,0x56,0x65, -0x72,0x69,0x53,0x69,0x67,0x6E,0x20,0x54,0x72,0x75,0x73,0x74,0x20,0x4E,0x65,0x74, -0x77,0x6F,0x72,0x6B,0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04,0x0B,0x13,0x31,0x28, -0x63,0x29,0x20,0x31,0x39,0x39,0x39,0x20,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E, -0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75,0x74, -0x68,0x6F,0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C,0x79, -0x31,0x45,0x30,0x43,0x06,0x03,0x55,0x04,0x03,0x13,0x3C,0x56,0x65,0x72,0x69,0x53, -0x69,0x67,0x6E,0x20,0x43,0x6C,0x61,0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62,0x6C, -0x69,0x63,0x20,0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74,0x69, -0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69, -0x74,0x79,0x20,0x2D,0x20,0x47,0x33,0x30,0x1E,0x17,0x0D,0x39,0x39,0x31,0x30,0x30, -0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x33,0x36,0x30,0x37,0x31,0x36, -0x32,0x33,0x35,0x39,0x35,0x39,0x5A,0x30,0x81,0xCA,0x31,0x0B,0x30,0x09,0x06,0x03, -0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06,0x03,0x55,0x04,0x0A, -0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E,0x63,0x2E, -0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x0B,0x13,0x16,0x56,0x65,0x72,0x69,0x53, -0x69,0x67,0x6E,0x20,0x54,0x72,0x75,0x73,0x74,0x20,0x4E,0x65,0x74,0x77,0x6F,0x72, -0x6B,0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04,0x0B,0x13,0x31,0x28,0x63,0x29,0x20, -0x31,0x39,0x39,0x39,0x20,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49, -0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75,0x74,0x68,0x6F,0x72, -0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x31,0x45,0x30, -0x43,0x06,0x03,0x55,0x04,0x03,0x13,0x3C,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E, -0x20,0x43,0x6C,0x61,0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x20, -0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63, -0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79,0x20, -0x2D,0x20,0x47,0x33,0x30,0x82,0x01,0x22,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86, -0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0F,0x00,0x30,0x82,0x01,0x0A, -0x02,0x82,0x01,0x01,0x00,0xCB,0xBA,0x9C,0x52,0xFC,0x78,0x1F,0x1A,0x1E,0x6F,0x1B, -0x37,0x73,0xBD,0xF8,0xC9,0x6B,0x94,0x12,0x30,0x4F,0xF0,0x36,0x47,0xF5,0xD0,0x91, -0x0A,0xF5,0x17,0xC8,0xA5,0x61,0xC1,0x16,0x40,0x4D,0xFB,0x8A,0x61,0x90,0xE5,0x76, -0x20,0xC1,0x11,0x06,0x7D,0xAB,0x2C,0x6E,0xA6,0xF5,0x11,0x41,0x8E,0xFA,0x2D,0xAD, -0x2A,0x61,0x59,0xA4,0x67,0x26,0x4C,0xD0,0xE8,0xBC,0x52,0x5B,0x70,0x20,0x04,0x58, -0xD1,0x7A,0xC9,0xA4,0x69,0xBC,0x83,0x17,0x64,0xAD,0x05,0x8B,0xBC,0xD0,0x58,0xCE, -0x8D,0x8C,0xF5,0xEB,0xF0,0x42,0x49,0x0B,0x9D,0x97,0x27,0x67,0x32,0x6E,0xE1,0xAE, -0x93,0x15,0x1C,0x70,0xBC,0x20,0x4D,0x2F,0x18,0xDE,0x92,0x88,0xE8,0x6C,0x85,0x57, -0x11,0x1A,0xE9,0x7E,0xE3,0x26,0x11,0x54,0xA2,0x45,0x96,0x55,0x83,0xCA,0x30,0x89, -0xE8,0xDC,0xD8,0xA3,0xED,0x2A,0x80,0x3F,0x7F,0x79,0x65,0x57,0x3E,0x15,0x20,0x66, -0x08,0x2F,0x95,0x93,0xBF,0xAA,0x47,0x2F,0xA8,0x46,0x97,0xF0,0x12,0xE2,0xFE,0xC2, -0x0A,0x2B,0x51,0xE6,0x76,0xE6,0xB7,0x46,0xB7,0xE2,0x0D,0xA6,0xCC,0xA8,0xC3,0x4C, -0x59,0x55,0x89,0xE6,0xE8,0x53,0x5C,0x1C,0xEA,0x9D,0xF0,0x62,0x16,0x0B,0xA7,0xC9, -0x5F,0x0C,0xF0,0xDE,0xC2,0x76,0xCE,0xAF,0xF7,0x6A,0xF2,0xFA,0x41,0xA6,0xA2,0x33, -0x14,0xC9,0xE5,0x7A,0x63,0xD3,0x9E,0x62,0x37,0xD5,0x85,0x65,0x9E,0x0E,0xE6,0x53, -0x24,0x74,0x1B,0x5E,0x1D,0x12,0x53,0x5B,0xC7,0x2C,0xE7,0x83,0x49,0x3B,0x15,0xAE, -0x8A,0x68,0xB9,0x57,0x97,0x02,0x03,0x01,0x00,0x01,0x30,0x0D,0x06,0x09,0x2A,0x86, -0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x11,0x14, -0x96,0xC1,0xAB,0x92,0x08,0xF7,0x3F,0x2F,0xC9,0xB2,0xFE,0xE4,0x5A,0x9F,0x64,0xDE, -0xDB,0x21,0x4F,0x86,0x99,0x34,0x76,0x36,0x57,0xDD,0xD0,0x15,0x2F,0xC5,0xAD,0x7F, -0x15,0x1F,0x37,0x62,0x73,0x3E,0xD4,0xE7,0x5F,0xCE,0x17,0x03,0xDB,0x35,0xFA,0x2B, -0xDB,0xAE,0x60,0x09,0x5F,0x1E,0x5F,0x8F,0x6E,0xBB,0x0B,0x3D,0xEA,0x5A,0x13,0x1E, -0x0C,0x60,0x6F,0xB5,0xC0,0xB5,0x23,0x22,0x2E,0x07,0x0B,0xCB,0xA9,0x74,0xCB,0x47, -0xBB,0x1D,0xC1,0xD7,0xA5,0x6B,0xCC,0x2F,0xD2,0x42,0xFD,0x49,0xDD,0xA7,0x89,0xCF, -0x53,0xBA,0xDA,0x00,0x5A,0x28,0xBF,0x82,0xDF,0xF8,0xBA,0x13,0x1D,0x50,0x86,0x82, -0xFD,0x8E,0x30,0x8F,0x29,0x46,0xB0,0x1E,0x3D,0x35,0xDA,0x38,0x62,0x16,0x18,0x4A, -0xAD,0xE6,0xB6,0x51,0x6C,0xDE,0xAF,0x62,0xEB,0x01,0xD0,0x1E,0x24,0xFE,0x7A,0x8F, -0x12,0x1A,0x12,0x68,0xB8,0xFB,0x66,0x99,0x14,0x14,0x45,0x5C,0xAE,0xE7,0xAE,0x69, -0x17,0x81,0x2B,0x5A,0x37,0xC9,0x5E,0x2A,0xF4,0xC6,0xE2,0xA1,0x5C,0x54,0x9B,0xA6, -0x54,0x00,0xCF,0xF0,0xF1,0xC1,0xC7,0x98,0x30,0x1A,0x3B,0x36,0x16,0xDB,0xA3,0x6E, -0xEA,0xFD,0xAD,0xB2,0xC2,0xDA,0xEF,0x02,0x47,0x13,0x8A,0xC0,0xF1,0xB3,0x31,0xAD, -0x4F,0x1C,0xE1,0x4F,0x9C,0xAF,0x0F,0x0C,0x9D,0xF7,0x78,0x0D,0xD8,0xF4,0x35,0x56, -0x80,0xDA,0xB7,0x6D,0x17,0x8F,0x9D,0x1E,0x81,0x64,0xE1,0xFE,0xC5,0x45,0xBA,0xAD, -0x6B,0xB9,0x0A,0x7A,0x4E,0x4F,0x4B,0x84,0xEE,0x4B,0xF1,0x7D,0xDD,0x11, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2007 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G4 */ -/* issuer :/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2007 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G4 */ -unsigned char XXX_certificate[904]={ -0x30,0x82,0x03,0x84,0x30,0x82,0x03,0x0A,0xA0,0x03,0x02,0x01,0x02,0x02,0x10,0x2F, -0x80,0xFE,0x23,0x8C,0x0E,0x22,0x0F,0x48,0x67,0x12,0x28,0x91,0x87,0xAC,0xB3,0x30, -0x0A,0x06,0x08,0x2A,0x86,0x48,0xCE,0x3D,0x04,0x03,0x03,0x30,0x81,0xCA,0x31,0x0B, -0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06, -0x03,0x55,0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20, -0x49,0x6E,0x63,0x2E,0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x0B,0x13,0x16,0x56, -0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x20,0x54,0x72,0x75,0x73,0x74,0x20,0x4E,0x65, -0x74,0x77,0x6F,0x72,0x6B,0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04,0x0B,0x13,0x31, -0x28,0x63,0x29,0x20,0x32,0x30,0x30,0x37,0x20,0x56,0x65,0x72,0x69,0x53,0x69,0x67, -0x6E,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75, -0x74,0x68,0x6F,0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C, -0x79,0x31,0x45,0x30,0x43,0x06,0x03,0x55,0x04,0x03,0x13,0x3C,0x56,0x65,0x72,0x69, -0x53,0x69,0x67,0x6E,0x20,0x43,0x6C,0x61,0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62, -0x6C,0x69,0x63,0x20,0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74, -0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72, -0x69,0x74,0x79,0x20,0x2D,0x20,0x47,0x34,0x30,0x1E,0x17,0x0D,0x30,0x37,0x31,0x31, -0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x33,0x38,0x30,0x31,0x31, -0x38,0x32,0x33,0x35,0x39,0x35,0x39,0x5A,0x30,0x81,0xCA,0x31,0x0B,0x30,0x09,0x06, -0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06,0x03,0x55,0x04, -0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E,0x63, -0x2E,0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x0B,0x13,0x16,0x56,0x65,0x72,0x69, -0x53,0x69,0x67,0x6E,0x20,0x54,0x72,0x75,0x73,0x74,0x20,0x4E,0x65,0x74,0x77,0x6F, -0x72,0x6B,0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04,0x0B,0x13,0x31,0x28,0x63,0x29, -0x20,0x32,0x30,0x30,0x37,0x20,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20, -0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75,0x74,0x68,0x6F, -0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x31,0x45, -0x30,0x43,0x06,0x03,0x55,0x04,0x03,0x13,0x3C,0x56,0x65,0x72,0x69,0x53,0x69,0x67, -0x6E,0x20,0x43,0x6C,0x61,0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62,0x6C,0x69,0x63, -0x20,0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69, -0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79, -0x20,0x2D,0x20,0x47,0x34,0x30,0x76,0x30,0x10,0x06,0x07,0x2A,0x86,0x48,0xCE,0x3D, -0x02,0x01,0x06,0x05,0x2B,0x81,0x04,0x00,0x22,0x03,0x62,0x00,0x04,0xA7,0x56,0x7A, -0x7C,0x52,0xDA,0x64,0x9B,0x0E,0x2D,0x5C,0xD8,0x5E,0xAC,0x92,0x3D,0xFE,0x01,0xE6, -0x19,0x4A,0x3D,0x14,0x03,0x4B,0xFA,0x60,0x27,0x20,0xD9,0x83,0x89,0x69,0xFA,0x54, -0xC6,0x9A,0x18,0x5E,0x55,0x2A,0x64,0xDE,0x06,0xF6,0x8D,0x4A,0x3B,0xAD,0x10,0x3C, -0x65,0x3D,0x90,0x88,0x04,0x89,0xE0,0x30,0x61,0xB3,0xAE,0x5D,0x01,0xA7,0x7B,0xDE, -0x7C,0xB2,0xBE,0xCA,0x65,0x61,0x00,0x86,0xAE,0xDA,0x8F,0x7B,0xD0,0x89,0xAD,0x4D, -0x1D,0x59,0x9A,0x41,0xB1,0xBC,0x47,0x80,0xDC,0x9E,0x62,0xC3,0xF9,0xA3,0x81,0xB2, -0x30,0x81,0xAF,0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04,0x05,0x30, -0x03,0x01,0x01,0xFF,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01,0x01,0xFF,0x04,0x04, -0x03,0x02,0x01,0x06,0x30,0x6D,0x06,0x08,0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x0C, -0x04,0x61,0x30,0x5F,0xA1,0x5D,0xA0,0x5B,0x30,0x59,0x30,0x57,0x30,0x55,0x16,0x09, -0x69,0x6D,0x61,0x67,0x65,0x2F,0x67,0x69,0x66,0x30,0x21,0x30,0x1F,0x30,0x07,0x06, -0x05,0x2B,0x0E,0x03,0x02,0x1A,0x04,0x14,0x8F,0xE5,0xD3,0x1A,0x86,0xAC,0x8D,0x8E, -0x6B,0xC3,0xCF,0x80,0x6A,0xD4,0x48,0x18,0x2C,0x7B,0x19,0x2E,0x30,0x25,0x16,0x23, -0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x6C,0x6F,0x67,0x6F,0x2E,0x76,0x65,0x72,0x69, -0x73,0x69,0x67,0x6E,0x2E,0x63,0x6F,0x6D,0x2F,0x76,0x73,0x6C,0x6F,0x67,0x6F,0x2E, -0x67,0x69,0x66,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0xB3,0x16, -0x91,0xFD,0xEE,0xA6,0x6E,0xE4,0xB5,0x2E,0x49,0x8F,0x87,0x78,0x81,0x80,0xEC,0xE5, -0xB1,0xB5,0x30,0x0A,0x06,0x08,0x2A,0x86,0x48,0xCE,0x3D,0x04,0x03,0x03,0x03,0x68, -0x00,0x30,0x65,0x02,0x30,0x66,0x21,0x0C,0x18,0x26,0x60,0x5A,0x38,0x7B,0x56,0x42, -0xE0,0xA7,0xFC,0x36,0x84,0x51,0x91,0x20,0x2C,0x76,0x4D,0x43,0x3D,0xC4,0x1D,0x84, -0x23,0xD0,0xAC,0xD6,0x7C,0x35,0x06,0xCE,0xCD,0x69,0xBD,0x90,0x0D,0xDB,0x6C,0x48, -0x42,0x1D,0x0E,0xAA,0x42,0x02,0x31,0x00,0x9C,0x3D,0x48,0x39,0x23,0x39,0x58,0x1A, -0x15,0x12,0x59,0x6A,0x9E,0xEF,0xD5,0x59,0xB2,0x1D,0x52,0x2C,0x99,0x71,0xCD,0xC7, -0x29,0xDF,0x1B,0x2A,0x61,0x7B,0x71,0xD1,0xDE,0xF3,0xC0,0xE5,0x0D,0x3A,0x4A,0xAA, -0x2D,0xA7,0xD8,0x86,0x2A,0xDD,0x2E,0x10, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5 */ -/* issuer :/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5 */ -unsigned char XXX_certificate[1239]={ -0x30,0x82,0x04,0xD3,0x30,0x82,0x03,0xBB,0xA0,0x03,0x02,0x01,0x02,0x02,0x10,0x18, -0xDA,0xD1,0x9E,0x26,0x7D,0xE8,0xBB,0x4A,0x21,0x58,0xCD,0xCC,0x6B,0x3B,0x4A,0x30, -0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x81, -0xCA,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17, -0x30,0x15,0x06,0x03,0x55,0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67, -0x6E,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x0B, -0x13,0x16,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x20,0x54,0x72,0x75,0x73,0x74, -0x20,0x4E,0x65,0x74,0x77,0x6F,0x72,0x6B,0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04, -0x0B,0x13,0x31,0x28,0x63,0x29,0x20,0x32,0x30,0x30,0x36,0x20,0x56,0x65,0x72,0x69, -0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72, -0x20,0x61,0x75,0x74,0x68,0x6F,0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20, -0x6F,0x6E,0x6C,0x79,0x31,0x45,0x30,0x43,0x06,0x03,0x55,0x04,0x03,0x13,0x3C,0x56, -0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x20,0x43,0x6C,0x61,0x73,0x73,0x20,0x33,0x20, -0x50,0x75,0x62,0x6C,0x69,0x63,0x20,0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x43, -0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74, -0x68,0x6F,0x72,0x69,0x74,0x79,0x20,0x2D,0x20,0x47,0x35,0x30,0x1E,0x17,0x0D,0x30, -0x36,0x31,0x31,0x30,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x33,0x36, -0x30,0x37,0x31,0x36,0x32,0x33,0x35,0x39,0x35,0x39,0x5A,0x30,0x81,0xCA,0x31,0x0B, -0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06, -0x03,0x55,0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20, -0x49,0x6E,0x63,0x2E,0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x0B,0x13,0x16,0x56, -0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x20,0x54,0x72,0x75,0x73,0x74,0x20,0x4E,0x65, -0x74,0x77,0x6F,0x72,0x6B,0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04,0x0B,0x13,0x31, -0x28,0x63,0x29,0x20,0x32,0x30,0x30,0x36,0x20,0x56,0x65,0x72,0x69,0x53,0x69,0x67, -0x6E,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75, -0x74,0x68,0x6F,0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C, -0x79,0x31,0x45,0x30,0x43,0x06,0x03,0x55,0x04,0x03,0x13,0x3C,0x56,0x65,0x72,0x69, -0x53,0x69,0x67,0x6E,0x20,0x43,0x6C,0x61,0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62, -0x6C,0x69,0x63,0x20,0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74, -0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72, -0x69,0x74,0x79,0x20,0x2D,0x20,0x47,0x35,0x30,0x82,0x01,0x22,0x30,0x0D,0x06,0x09, -0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0F,0x00, -0x30,0x82,0x01,0x0A,0x02,0x82,0x01,0x01,0x00,0xAF,0x24,0x08,0x08,0x29,0x7A,0x35, -0x9E,0x60,0x0C,0xAA,0xE7,0x4B,0x3B,0x4E,0xDC,0x7C,0xBC,0x3C,0x45,0x1C,0xBB,0x2B, -0xE0,0xFE,0x29,0x02,0xF9,0x57,0x08,0xA3,0x64,0x85,0x15,0x27,0xF5,0xF1,0xAD,0xC8, -0x31,0x89,0x5D,0x22,0xE8,0x2A,0xAA,0xA6,0x42,0xB3,0x8F,0xF8,0xB9,0x55,0xB7,0xB1, -0xB7,0x4B,0xB3,0xFE,0x8F,0x7E,0x07,0x57,0xEC,0xEF,0x43,0xDB,0x66,0x62,0x15,0x61, -0xCF,0x60,0x0D,0xA4,0xD8,0xDE,0xF8,0xE0,0xC3,0x62,0x08,0x3D,0x54,0x13,0xEB,0x49, -0xCA,0x59,0x54,0x85,0x26,0xE5,0x2B,0x8F,0x1B,0x9F,0xEB,0xF5,0xA1,0x91,0xC2,0x33, -0x49,0xD8,0x43,0x63,0x6A,0x52,0x4B,0xD2,0x8F,0xE8,0x70,0x51,0x4D,0xD1,0x89,0x69, -0x7B,0xC7,0x70,0xF6,0xB3,0xDC,0x12,0x74,0xDB,0x7B,0x5D,0x4B,0x56,0xD3,0x96,0xBF, -0x15,0x77,0xA1,0xB0,0xF4,0xA2,0x25,0xF2,0xAF,0x1C,0x92,0x67,0x18,0xE5,0xF4,0x06, -0x04,0xEF,0x90,0xB9,0xE4,0x00,0xE4,0xDD,0x3A,0xB5,0x19,0xFF,0x02,0xBA,0xF4,0x3C, -0xEE,0xE0,0x8B,0xEB,0x37,0x8B,0xEC,0xF4,0xD7,0xAC,0xF2,0xF6,0xF0,0x3D,0xAF,0xDD, -0x75,0x91,0x33,0x19,0x1D,0x1C,0x40,0xCB,0x74,0x24,0x19,0x21,0x93,0xD9,0x14,0xFE, -0xAC,0x2A,0x52,0xC7,0x8F,0xD5,0x04,0x49,0xE4,0x8D,0x63,0x47,0x88,0x3C,0x69,0x83, -0xCB,0xFE,0x47,0xBD,0x2B,0x7E,0x4F,0xC5,0x95,0xAE,0x0E,0x9D,0xD4,0xD1,0x43,0xC0, -0x67,0x73,0xE3,0x14,0x08,0x7E,0xE5,0x3F,0x9F,0x73,0xB8,0x33,0x0A,0xCF,0x5D,0x3F, -0x34,0x87,0x96,0x8A,0xEE,0x53,0xE8,0x25,0x15,0x02,0x03,0x01,0x00,0x01,0xA3,0x81, -0xB2,0x30,0x81,0xAF,0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04,0x05, -0x30,0x03,0x01,0x01,0xFF,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01,0x01,0xFF,0x04, -0x04,0x03,0x02,0x01,0x06,0x30,0x6D,0x06,0x08,0x2B,0x06,0x01,0x05,0x05,0x07,0x01, -0x0C,0x04,0x61,0x30,0x5F,0xA1,0x5D,0xA0,0x5B,0x30,0x59,0x30,0x57,0x30,0x55,0x16, -0x09,0x69,0x6D,0x61,0x67,0x65,0x2F,0x67,0x69,0x66,0x30,0x21,0x30,0x1F,0x30,0x07, -0x06,0x05,0x2B,0x0E,0x03,0x02,0x1A,0x04,0x14,0x8F,0xE5,0xD3,0x1A,0x86,0xAC,0x8D, -0x8E,0x6B,0xC3,0xCF,0x80,0x6A,0xD4,0x48,0x18,0x2C,0x7B,0x19,0x2E,0x30,0x25,0x16, -0x23,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x6C,0x6F,0x67,0x6F,0x2E,0x76,0x65,0x72, -0x69,0x73,0x69,0x67,0x6E,0x2E,0x63,0x6F,0x6D,0x2F,0x76,0x73,0x6C,0x6F,0x67,0x6F, -0x2E,0x67,0x69,0x66,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0x7F, -0xD3,0x65,0xA7,0xC2,0xDD,0xEC,0xBB,0xF0,0x30,0x09,0xF3,0x43,0x39,0xFA,0x02,0xAF, -0x33,0x31,0x33,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05, -0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x93,0x24,0x4A,0x30,0x5F,0x62,0xCF,0xD8,0x1A, -0x98,0x2F,0x3D,0xEA,0xDC,0x99,0x2D,0xBD,0x77,0xF6,0xA5,0x79,0x22,0x38,0xEC,0xC4, -0xA7,0xA0,0x78,0x12,0xAD,0x62,0x0E,0x45,0x70,0x64,0xC5,0xE7,0x97,0x66,0x2D,0x98, -0x09,0x7E,0x5F,0xAF,0xD6,0xCC,0x28,0x65,0xF2,0x01,0xAA,0x08,0x1A,0x47,0xDE,0xF9, -0xF9,0x7C,0x92,0x5A,0x08,0x69,0x20,0x0D,0xD9,0x3E,0x6D,0x6E,0x3C,0x0D,0x6E,0xD8, -0xE6,0x06,0x91,0x40,0x18,0xB9,0xF8,0xC1,0xED,0xDF,0xDB,0x41,0xAA,0xE0,0x96,0x20, -0xC9,0xCD,0x64,0x15,0x38,0x81,0xC9,0x94,0xEE,0xA2,0x84,0x29,0x0B,0x13,0x6F,0x8E, -0xDB,0x0C,0xDD,0x25,0x02,0xDB,0xA4,0x8B,0x19,0x44,0xD2,0x41,0x7A,0x05,0x69,0x4A, -0x58,0x4F,0x60,0xCA,0x7E,0x82,0x6A,0x0B,0x02,0xAA,0x25,0x17,0x39,0xB5,0xDB,0x7F, -0xE7,0x84,0x65,0x2A,0x95,0x8A,0xBD,0x86,0xDE,0x5E,0x81,0x16,0x83,0x2D,0x10,0xCC, -0xDE,0xFD,0xA8,0x82,0x2A,0x6D,0x28,0x1F,0x0D,0x0B,0xC4,0xE5,0xE7,0x1A,0x26,0x19, -0xE1,0xF4,0x11,0x6F,0x10,0xB5,0x95,0xFC,0xE7,0x42,0x05,0x32,0xDB,0xCE,0x9D,0x51, -0x5E,0x28,0xB6,0x9E,0x85,0xD3,0x5B,0xEF,0xA5,0x7D,0x45,0x40,0x72,0x8E,0xB7,0x0E, -0x6B,0x0E,0x06,0xFB,0x33,0x35,0x48,0x71,0xB8,0x9D,0x27,0x8B,0xC4,0x65,0x5F,0x0D, -0x86,0x76,0x9C,0x44,0x7A,0xF6,0x95,0x5C,0xF6,0x5D,0x32,0x08,0x33,0xA4,0x54,0xB6, -0x18,0x3F,0x68,0x5C,0xF2,0x42,0x4A,0x85,0x38,0x54,0x83,0x5F,0xD1,0xE8,0x2C,0xF2, -0xAC,0x11,0xD6,0xA8,0xED,0x63,0x6A, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority */ -/* issuer :/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority */ -unsigned char XXX_certificate[576]={ -0x30,0x82,0x02,0x3C,0x30,0x82,0x01,0xA5,0x02,0x10,0x3C,0x91,0x31,0xCB,0x1F,0xF6, -0xD0,0x1B,0x0E,0x9A,0xB8,0xD0,0x44,0xBF,0x12,0xBE,0x30,0x0D,0x06,0x09,0x2A,0x86, -0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x5F,0x31,0x0B,0x30,0x09,0x06, -0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06,0x03,0x55,0x04, -0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E,0x63, -0x2E,0x31,0x37,0x30,0x35,0x06,0x03,0x55,0x04,0x0B,0x13,0x2E,0x43,0x6C,0x61,0x73, -0x73,0x20,0x33,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x20,0x50,0x72,0x69,0x6D,0x61, -0x72,0x79,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E, -0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79,0x30,0x1E,0x17,0x0D,0x39,0x36, -0x30,0x31,0x32,0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x32,0x38,0x30, -0x38,0x30,0x32,0x32,0x33,0x35,0x39,0x35,0x39,0x5A,0x30,0x5F,0x31,0x0B,0x30,0x09, -0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06,0x03,0x55, -0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E, -0x63,0x2E,0x31,0x37,0x30,0x35,0x06,0x03,0x55,0x04,0x0B,0x13,0x2E,0x43,0x6C,0x61, -0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x20,0x50,0x72,0x69,0x6D, -0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F, -0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79,0x30,0x81,0x9F,0x30,0x0D, -0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8D, -0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xC9,0x5C,0x59,0x9E,0xF2,0x1B,0x8A,0x01, -0x14,0xB4,0x10,0xDF,0x04,0x40,0xDB,0xE3,0x57,0xAF,0x6A,0x45,0x40,0x8F,0x84,0x0C, -0x0B,0xD1,0x33,0xD9,0xD9,0x11,0xCF,0xEE,0x02,0x58,0x1F,0x25,0xF7,0x2A,0xA8,0x44, -0x05,0xAA,0xEC,0x03,0x1F,0x78,0x7F,0x9E,0x93,0xB9,0x9A,0x00,0xAA,0x23,0x7D,0xD6, -0xAC,0x85,0xA2,0x63,0x45,0xC7,0x72,0x27,0xCC,0xF4,0x4C,0xC6,0x75,0x71,0xD2,0x39, -0xEF,0x4F,0x42,0xF0,0x75,0xDF,0x0A,0x90,0xC6,0x8E,0x20,0x6F,0x98,0x0F,0xF8,0xAC, -0x23,0x5F,0x70,0x29,0x36,0xA4,0xC9,0x86,0xE7,0xB1,0x9A,0x20,0xCB,0x53,0xA5,0x85, -0xE7,0x3D,0xBE,0x7D,0x9A,0xFE,0x24,0x45,0x33,0xDC,0x76,0x15,0xED,0x0F,0xA2,0x71, -0x64,0x4C,0x65,0x2E,0x81,0x68,0x45,0xA7,0x02,0x03,0x01,0x00,0x01,0x30,0x0D,0x06, -0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00, -0x10,0x72,0x52,0xA9,0x05,0x14,0x19,0x32,0x08,0x41,0xF0,0xC5,0x6B,0x0A,0xCC,0x7E, -0x0F,0x21,0x19,0xCD,0xE4,0x67,0xDC,0x5F,0xA9,0x1B,0xE6,0xCA,0xE8,0x73,0x9D,0x22, -0xD8,0x98,0x6E,0x73,0x03,0x61,0x91,0xC5,0x7C,0xB0,0x45,0x40,0x6E,0x44,0x9D,0x8D, -0xB0,0xB1,0x96,0x74,0x61,0x2D,0x0D,0xA9,0x45,0xD2,0xA4,0x92,0x2A,0xD6,0x9A,0x75, -0x97,0x6E,0x3F,0x53,0xFD,0x45,0x99,0x60,0x1D,0xA8,0x2B,0x4C,0xF9,0x5E,0xA7,0x09, -0xD8,0x75,0x30,0xD7,0xD2,0x65,0x60,0x3D,0x67,0xD6,0x48,0x55,0x75,0x69,0x3F,0x91, -0xF5,0x48,0x0B,0x47,0x69,0x22,0x69,0x82,0x96,0xBE,0xC9,0xC8,0x38,0x86,0x4A,0x7A, -0x2C,0x73,0x19,0x48,0x69,0x4E,0x6B,0x7C,0x65,0xBF,0x0F,0xFC,0x70,0xCE,0x88,0x90, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=thawte, Inc./OU=(c) 2007 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA - G2 */ -/* issuer :/C=US/O=thawte, Inc./OU=(c) 2007 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA - G2 */ -unsigned char XXX_certificate[652]={ -0x30,0x82,0x02,0x88,0x30,0x82,0x02,0x0D,0xA0,0x03,0x02,0x01,0x02,0x02,0x10,0x35, -0xFC,0x26,0x5C,0xD9,0x84,0x4F,0xC9,0x3D,0x26,0x3D,0x57,0x9B,0xAE,0xD7,0x56,0x30, -0x0A,0x06,0x08,0x2A,0x86,0x48,0xCE,0x3D,0x04,0x03,0x03,0x30,0x81,0x84,0x31,0x0B, -0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x15,0x30,0x13,0x06, -0x03,0x55,0x04,0x0A,0x13,0x0C,0x74,0x68,0x61,0x77,0x74,0x65,0x2C,0x20,0x49,0x6E, -0x63,0x2E,0x31,0x38,0x30,0x36,0x06,0x03,0x55,0x04,0x0B,0x13,0x2F,0x28,0x63,0x29, -0x20,0x32,0x30,0x30,0x37,0x20,0x74,0x68,0x61,0x77,0x74,0x65,0x2C,0x20,0x49,0x6E, -0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75,0x74,0x68,0x6F,0x72,0x69, -0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x31,0x24,0x30,0x22, -0x06,0x03,0x55,0x04,0x03,0x13,0x1B,0x74,0x68,0x61,0x77,0x74,0x65,0x20,0x50,0x72, -0x69,0x6D,0x61,0x72,0x79,0x20,0x52,0x6F,0x6F,0x74,0x20,0x43,0x41,0x20,0x2D,0x20, -0x47,0x32,0x30,0x1E,0x17,0x0D,0x30,0x37,0x31,0x31,0x30,0x35,0x30,0x30,0x30,0x30, -0x30,0x30,0x5A,0x17,0x0D,0x33,0x38,0x30,0x31,0x31,0x38,0x32,0x33,0x35,0x39,0x35, -0x39,0x5A,0x30,0x81,0x84,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02, -0x55,0x53,0x31,0x15,0x30,0x13,0x06,0x03,0x55,0x04,0x0A,0x13,0x0C,0x74,0x68,0x61, -0x77,0x74,0x65,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x38,0x30,0x36,0x06,0x03,0x55, -0x04,0x0B,0x13,0x2F,0x28,0x63,0x29,0x20,0x32,0x30,0x30,0x37,0x20,0x74,0x68,0x61, -0x77,0x74,0x65,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20, -0x61,0x75,0x74,0x68,0x6F,0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F, -0x6E,0x6C,0x79,0x31,0x24,0x30,0x22,0x06,0x03,0x55,0x04,0x03,0x13,0x1B,0x74,0x68, -0x61,0x77,0x74,0x65,0x20,0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x52,0x6F,0x6F, -0x74,0x20,0x43,0x41,0x20,0x2D,0x20,0x47,0x32,0x30,0x76,0x30,0x10,0x06,0x07,0x2A, -0x86,0x48,0xCE,0x3D,0x02,0x01,0x06,0x05,0x2B,0x81,0x04,0x00,0x22,0x03,0x62,0x00, -0x04,0xA2,0xD5,0x9C,0x82,0x7B,0x95,0x9D,0xF1,0x52,0x78,0x87,0xFE,0x8A,0x16,0xBF, -0x05,0xE6,0xDF,0xA3,0x02,0x4F,0x0D,0x07,0xC6,0x00,0x51,0xBA,0x0C,0x02,0x52,0x2D, -0x22,0xA4,0x42,0x39,0xC4,0xFE,0x8F,0xEA,0xC9,0xC1,0xBE,0xD4,0x4D,0xFF,0x9F,0x7A, -0x9E,0xE2,0xB1,0x7C,0x9A,0xAD,0xA7,0x86,0x09,0x73,0x87,0xD1,0xE7,0x9A,0xE3,0x7A, -0xA5,0xAA,0x6E,0xFB,0xBA,0xB3,0x70,0xC0,0x67,0x88,0xA2,0x35,0xD4,0xA3,0x9A,0xB1, -0xFD,0xAD,0xC2,0xEF,0x31,0xFA,0xA8,0xB9,0xF3,0xFB,0x08,0xC6,0x91,0xD1,0xFB,0x29, -0x95,0xA3,0x42,0x30,0x40,0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04, -0x05,0x30,0x03,0x01,0x01,0xFF,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01,0x01,0xFF, -0x04,0x04,0x03,0x02,0x01,0x06,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04, -0x14,0x9A,0xD8,0x00,0x30,0x00,0xE7,0x6B,0x7F,0x85,0x18,0xEE,0x8B,0xB6,0xCE,0x8A, -0x0C,0xF8,0x11,0xE1,0xBB,0x30,0x0A,0x06,0x08,0x2A,0x86,0x48,0xCE,0x3D,0x04,0x03, -0x03,0x03,0x69,0x00,0x30,0x66,0x02,0x31,0x00,0xDD,0xF8,0xE0,0x57,0x47,0x5B,0xA7, -0xE6,0x0A,0xC3,0xBD,0xF5,0x80,0x8A,0x97,0x35,0x0D,0x1B,0x89,0x3C,0x54,0x86,0x77, -0x28,0xCA,0xA1,0xF4,0x79,0xDE,0xB5,0xE6,0x38,0xB0,0xF0,0x65,0x70,0x8C,0x7F,0x02, -0x54,0xC2,0xBF,0xFF,0xD8,0xA1,0x3E,0xD9,0xCF,0x02,0x31,0x00,0xC4,0x8D,0x94,0xFC, -0xDC,0x53,0xD2,0xDC,0x9D,0x78,0x16,0x1F,0x15,0x33,0x23,0x53,0x52,0xE3,0x5A,0x31, -0x5D,0x9D,0xCA,0xAE,0xBD,0x13,0x29,0x44,0x0D,0x27,0x5B,0xA8,0xE7,0x68,0x9C,0x12, -0xF7,0x58,0x3F,0x2E,0x72,0x02,0x57,0xA3,0x8F,0xA1,0x14,0x2E, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=thawte, Inc./OU=Certification Services Division/OU=(c) 2006 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA */ -/* issuer :/C=US/O=thawte, Inc./OU=Certification Services Division/OU=(c) 2006 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA */ -unsigned char XXX_certificate[1060]={ -0x30,0x82,0x04,0x20,0x30,0x82,0x03,0x08,0xA0,0x03,0x02,0x01,0x02,0x02,0x10,0x34, -0x4E,0xD5,0x57,0x20,0xD5,0xED,0xEC,0x49,0xF4,0x2F,0xCE,0x37,0xDB,0x2B,0x6D,0x30, -0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x81, -0xA9,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x15, -0x30,0x13,0x06,0x03,0x55,0x04,0x0A,0x13,0x0C,0x74,0x68,0x61,0x77,0x74,0x65,0x2C, -0x20,0x49,0x6E,0x63,0x2E,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x0B,0x13,0x1F, -0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x53,0x65, -0x72,0x76,0x69,0x63,0x65,0x73,0x20,0x44,0x69,0x76,0x69,0x73,0x69,0x6F,0x6E,0x31, -0x38,0x30,0x36,0x06,0x03,0x55,0x04,0x0B,0x13,0x2F,0x28,0x63,0x29,0x20,0x32,0x30, -0x30,0x36,0x20,0x74,0x68,0x61,0x77,0x74,0x65,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20, -0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75,0x74,0x68,0x6F,0x72,0x69,0x7A,0x65,0x64, -0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x31,0x1F,0x30,0x1D,0x06,0x03,0x55, -0x04,0x03,0x13,0x16,0x74,0x68,0x61,0x77,0x74,0x65,0x20,0x50,0x72,0x69,0x6D,0x61, -0x72,0x79,0x20,0x52,0x6F,0x6F,0x74,0x20,0x43,0x41,0x30,0x1E,0x17,0x0D,0x30,0x36, -0x31,0x31,0x31,0x37,0x30,0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x33,0x36,0x30, -0x37,0x31,0x36,0x32,0x33,0x35,0x39,0x35,0x39,0x5A,0x30,0x81,0xA9,0x31,0x0B,0x30, -0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x15,0x30,0x13,0x06,0x03, -0x55,0x04,0x0A,0x13,0x0C,0x74,0x68,0x61,0x77,0x74,0x65,0x2C,0x20,0x49,0x6E,0x63, -0x2E,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x0B,0x13,0x1F,0x43,0x65,0x72,0x74, -0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x53,0x65,0x72,0x76,0x69,0x63, -0x65,0x73,0x20,0x44,0x69,0x76,0x69,0x73,0x69,0x6F,0x6E,0x31,0x38,0x30,0x36,0x06, -0x03,0x55,0x04,0x0B,0x13,0x2F,0x28,0x63,0x29,0x20,0x32,0x30,0x30,0x36,0x20,0x74, -0x68,0x61,0x77,0x74,0x65,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F, -0x72,0x20,0x61,0x75,0x74,0x68,0x6F,0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65, -0x20,0x6F,0x6E,0x6C,0x79,0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x03,0x13,0x16, -0x74,0x68,0x61,0x77,0x74,0x65,0x20,0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x52, -0x6F,0x6F,0x74,0x20,0x43,0x41,0x30,0x82,0x01,0x22,0x30,0x0D,0x06,0x09,0x2A,0x86, -0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0F,0x00,0x30,0x82, -0x01,0x0A,0x02,0x82,0x01,0x01,0x00,0xAC,0xA0,0xF0,0xFB,0x80,0x59,0xD4,0x9C,0xC7, -0xA4,0xCF,0x9D,0xA1,0x59,0x73,0x09,0x10,0x45,0x0C,0x0D,0x2C,0x6E,0x68,0xF1,0x6C, -0x5B,0x48,0x68,0x49,0x59,0x37,0xFC,0x0B,0x33,0x19,0xC2,0x77,0x7F,0xCC,0x10,0x2D, -0x95,0x34,0x1C,0xE6,0xEB,0x4D,0x09,0xA7,0x1C,0xD2,0xB8,0xC9,0x97,0x36,0x02,0xB7, -0x89,0xD4,0x24,0x5F,0x06,0xC0,0xCC,0x44,0x94,0x94,0x8D,0x02,0x62,0x6F,0xEB,0x5A, -0xDD,0x11,0x8D,0x28,0x9A,0x5C,0x84,0x90,0x10,0x7A,0x0D,0xBD,0x74,0x66,0x2F,0x6A, -0x38,0xA0,0xE2,0xD5,0x54,0x44,0xEB,0x1D,0x07,0x9F,0x07,0xBA,0x6F,0xEE,0xE9,0xFD, -0x4E,0x0B,0x29,0xF5,0x3E,0x84,0xA0,0x01,0xF1,0x9C,0xAB,0xF8,0x1C,0x7E,0x89,0xA4, -0xE8,0xA1,0xD8,0x71,0x65,0x0D,0xA3,0x51,0x7B,0xEE,0xBC,0xD2,0x22,0x60,0x0D,0xB9, -0x5B,0x9D,0xDF,0xBA,0xFC,0x51,0x5B,0x0B,0xAF,0x98,0xB2,0xE9,0x2E,0xE9,0x04,0xE8, -0x62,0x87,0xDE,0x2B,0xC8,0xD7,0x4E,0xC1,0x4C,0x64,0x1E,0xDD,0xCF,0x87,0x58,0xBA, -0x4A,0x4F,0xCA,0x68,0x07,0x1D,0x1C,0x9D,0x4A,0xC6,0xD5,0x2F,0x91,0xCC,0x7C,0x71, -0x72,0x1C,0xC5,0xC0,0x67,0xEB,0x32,0xFD,0xC9,0x92,0x5C,0x94,0xDA,0x85,0xC0,0x9B, -0xBF,0x53,0x7D,0x2B,0x09,0xF4,0x8C,0x9D,0x91,0x1F,0x97,0x6A,0x52,0xCB,0xDE,0x09, -0x36,0xA4,0x77,0xD8,0x7B,0x87,0x50,0x44,0xD5,0x3E,0x6E,0x29,0x69,0xFB,0x39,0x49, -0x26,0x1E,0x09,0xA5,0x80,0x7B,0x40,0x2D,0xEB,0xE8,0x27,0x85,0xC9,0xFE,0x61,0xFD, -0x7E,0xE6,0x7C,0x97,0x1D,0xD5,0x9D,0x02,0x03,0x01,0x00,0x01,0xA3,0x42,0x30,0x40, -0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04,0x05,0x30,0x03,0x01,0x01, -0xFF,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01,0x01,0xFF,0x04,0x04,0x03,0x02,0x01, -0x06,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0x7B,0x5B,0x45,0xCF, -0xAF,0xCE,0xCB,0x7A,0xFD,0x31,0x92,0x1A,0x6A,0xB6,0xF3,0x46,0xEB,0x57,0x48,0x50, -0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03, -0x82,0x01,0x01,0x00,0x79,0x11,0xC0,0x4B,0xB3,0x91,0xB6,0xFC,0xF0,0xE9,0x67,0xD4, -0x0D,0x6E,0x45,0xBE,0x55,0xE8,0x93,0xD2,0xCE,0x03,0x3F,0xED,0xDA,0x25,0xB0,0x1D, -0x57,0xCB,0x1E,0x3A,0x76,0xA0,0x4C,0xEC,0x50,0x76,0xE8,0x64,0x72,0x0C,0xA4,0xA9, -0xF1,0xB8,0x8B,0xD6,0xD6,0x87,0x84,0xBB,0x32,0xE5,0x41,0x11,0xC0,0x77,0xD9,0xB3, -0x60,0x9D,0xEB,0x1B,0xD5,0xD1,0x6E,0x44,0x44,0xA9,0xA6,0x01,0xEC,0x55,0x62,0x1D, -0x77,0xB8,0x5C,0x8E,0x48,0x49,0x7C,0x9C,0x3B,0x57,0x11,0xAC,0xAD,0x73,0x37,0x8E, -0x2F,0x78,0x5C,0x90,0x68,0x47,0xD9,0x60,0x60,0xE6,0xFC,0x07,0x3D,0x22,0x20,0x17, -0xC4,0xF7,0x16,0xE9,0xC4,0xD8,0x72,0xF9,0xC8,0x73,0x7C,0xDF,0x16,0x2F,0x15,0xA9, -0x3E,0xFD,0x6A,0x27,0xB6,0xA1,0xEB,0x5A,0xBA,0x98,0x1F,0xD5,0xE3,0x4D,0x64,0x0A, -0x9D,0x13,0xC8,0x61,0xBA,0xF5,0x39,0x1C,0x87,0xBA,0xB8,0xBD,0x7B,0x22,0x7F,0xF6, -0xFE,0xAC,0x40,0x79,0xE5,0xAC,0x10,0x6F,0x3D,0x8F,0x1B,0x79,0x76,0x8B,0xC4,0x37, -0xB3,0x21,0x18,0x84,0xE5,0x36,0x00,0xEB,0x63,0x20,0x99,0xB9,0xE9,0xFE,0x33,0x04, -0xBB,0x41,0xC8,0xC1,0x02,0xF9,0x44,0x63,0x20,0x9E,0x81,0xCE,0x42,0xD3,0xD6,0x3F, -0x2C,0x76,0xD3,0x63,0x9C,0x59,0xDD,0x8F,0xA6,0xE1,0x0E,0xA0,0x2E,0x41,0xF7,0x2E, -0x95,0x47,0xCF,0xBC,0xFD,0x33,0xF3,0xF6,0x0B,0x61,0x7E,0x7E,0x91,0x2B,0x81,0x47, -0xC2,0x27,0x30,0xEE,0xA7,0x10,0x5D,0x37,0x8F,0x5C,0x39,0x2B,0xE4,0x04,0xF0,0x7B, -0x8D,0x56,0x8C,0x68, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/L=ValiCert Validation Network/O=ValiCert, Inc./OU=ValiCert Class 2 Policy Validation Authority/CN=http://www.valicert.com//emailAddress=info@valicert.com */ -/* issuer :/L=ValiCert Validation Network/O=ValiCert, Inc./OU=ValiCert Class 2 Policy Validation Authority/CN=http://www.valicert.com//emailAddress=info@valicert.com */ -unsigned char XXX_certificate[747]={ -0x30,0x82,0x02,0xE7,0x30,0x82,0x02,0x50,0x02,0x01,0x01,0x30,0x0D,0x06,0x09,0x2A, -0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x81,0xBB,0x31,0x24,0x30, -0x22,0x06,0x03,0x55,0x04,0x07,0x13,0x1B,0x56,0x61,0x6C,0x69,0x43,0x65,0x72,0x74, -0x20,0x56,0x61,0x6C,0x69,0x64,0x61,0x74,0x69,0x6F,0x6E,0x20,0x4E,0x65,0x74,0x77, -0x6F,0x72,0x6B,0x31,0x17,0x30,0x15,0x06,0x03,0x55,0x04,0x0A,0x13,0x0E,0x56,0x61, -0x6C,0x69,0x43,0x65,0x72,0x74,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x35,0x30,0x33, -0x06,0x03,0x55,0x04,0x0B,0x13,0x2C,0x56,0x61,0x6C,0x69,0x43,0x65,0x72,0x74,0x20, -0x43,0x6C,0x61,0x73,0x73,0x20,0x32,0x20,0x50,0x6F,0x6C,0x69,0x63,0x79,0x20,0x56, -0x61,0x6C,0x69,0x64,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72, -0x69,0x74,0x79,0x31,0x21,0x30,0x1F,0x06,0x03,0x55,0x04,0x03,0x13,0x18,0x68,0x74, -0x74,0x70,0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x76,0x61,0x6C,0x69,0x63,0x65,0x72, -0x74,0x2E,0x63,0x6F,0x6D,0x2F,0x31,0x20,0x30,0x1E,0x06,0x09,0x2A,0x86,0x48,0x86, -0xF7,0x0D,0x01,0x09,0x01,0x16,0x11,0x69,0x6E,0x66,0x6F,0x40,0x76,0x61,0x6C,0x69, -0x63,0x65,0x72,0x74,0x2E,0x63,0x6F,0x6D,0x30,0x1E,0x17,0x0D,0x39,0x39,0x30,0x36, -0x32,0x36,0x30,0x30,0x31,0x39,0x35,0x34,0x5A,0x17,0x0D,0x31,0x39,0x30,0x36,0x32, -0x36,0x30,0x30,0x31,0x39,0x35,0x34,0x5A,0x30,0x81,0xBB,0x31,0x24,0x30,0x22,0x06, -0x03,0x55,0x04,0x07,0x13,0x1B,0x56,0x61,0x6C,0x69,0x43,0x65,0x72,0x74,0x20,0x56, -0x61,0x6C,0x69,0x64,0x61,0x74,0x69,0x6F,0x6E,0x20,0x4E,0x65,0x74,0x77,0x6F,0x72, -0x6B,0x31,0x17,0x30,0x15,0x06,0x03,0x55,0x04,0x0A,0x13,0x0E,0x56,0x61,0x6C,0x69, -0x43,0x65,0x72,0x74,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x35,0x30,0x33,0x06,0x03, -0x55,0x04,0x0B,0x13,0x2C,0x56,0x61,0x6C,0x69,0x43,0x65,0x72,0x74,0x20,0x43,0x6C, -0x61,0x73,0x73,0x20,0x32,0x20,0x50,0x6F,0x6C,0x69,0x63,0x79,0x20,0x56,0x61,0x6C, -0x69,0x64,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74, -0x79,0x31,0x21,0x30,0x1F,0x06,0x03,0x55,0x04,0x03,0x13,0x18,0x68,0x74,0x74,0x70, -0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x76,0x61,0x6C,0x69,0x63,0x65,0x72,0x74,0x2E, -0x63,0x6F,0x6D,0x2F,0x31,0x20,0x30,0x1E,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D, -0x01,0x09,0x01,0x16,0x11,0x69,0x6E,0x66,0x6F,0x40,0x76,0x61,0x6C,0x69,0x63,0x65, -0x72,0x74,0x2E,0x63,0x6F,0x6D,0x30,0x81,0x9F,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48, -0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8D,0x00,0x30,0x81,0x89,0x02, -0x81,0x81,0x00,0xCE,0x3A,0x71,0xCA,0xE5,0xAB,0xC8,0x59,0x92,0x55,0xD7,0xAB,0xD8, -0x74,0x0E,0xF9,0xEE,0xD9,0xF6,0x55,0x47,0x59,0x65,0x47,0x0E,0x05,0x55,0xDC,0xEB, -0x98,0x36,0x3C,0x5C,0x53,0x5D,0xD3,0x30,0xCF,0x38,0xEC,0xBD,0x41,0x89,0xED,0x25, -0x42,0x09,0x24,0x6B,0x0A,0x5E,0xB3,0x7C,0xDD,0x52,0x2D,0x4C,0xE6,0xD4,0xD6,0x7D, -0x5A,0x59,0xA9,0x65,0xD4,0x49,0x13,0x2D,0x24,0x4D,0x1C,0x50,0x6F,0xB5,0xC1,0x85, -0x54,0x3B,0xFE,0x71,0xE4,0xD3,0x5C,0x42,0xF9,0x80,0xE0,0x91,0x1A,0x0A,0x5B,0x39, -0x36,0x67,0xF3,0x3F,0x55,0x7C,0x1B,0x3F,0xB4,0x5F,0x64,0x73,0x34,0xE3,0xB4,0x12, -0xBF,0x87,0x64,0xF8,0xDA,0x12,0xFF,0x37,0x27,0xC1,0xB3,0x43,0xBB,0xEF,0x7B,0x6E, -0x2E,0x69,0xF7,0x02,0x03,0x01,0x00,0x01,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86, -0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x3B,0x7F,0x50,0x6F,0x6F, -0x50,0x94,0x99,0x49,0x62,0x38,0x38,0x1F,0x4B,0xF8,0xA5,0xC8,0x3E,0xA7,0x82,0x81, -0xF6,0x2B,0xC7,0xE8,0xC5,0xCE,0xE8,0x3A,0x10,0x82,0xCB,0x18,0x00,0x8E,0x4D,0xBD, -0xA8,0x58,0x7F,0xA1,0x79,0x00,0xB5,0xBB,0xE9,0x8D,0xAF,0x41,0xD9,0x0F,0x34,0xEE, -0x21,0x81,0x19,0xA0,0x32,0x49,0x28,0xF4,0xC4,0x8E,0x56,0xD5,0x52,0x33,0xFD,0x50, -0xD5,0x7E,0x99,0x6C,0x03,0xE4,0xC9,0x4C,0xFC,0xCB,0x6C,0xAB,0x66,0xB3,0x4A,0x21, -0x8C,0xE5,0xB5,0x0C,0x32,0x3E,0x10,0xB2,0xCC,0x6C,0xA1,0xDC,0x9A,0x98,0x4C,0x02, -0x5B,0xF3,0xCE,0xB9,0x9E,0xA5,0x72,0x0E,0x4A,0xB7,0x3F,0x3C,0xE6,0x16,0x68,0xF8, -0xBE,0xED,0x74,0x4C,0xBC,0x5B,0xD5,0x62,0x1F,0x43,0xDD, -}; - - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - return [NSArray arrayWithArray:trustedCertificates]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsMetadata.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsMetadata.h deleted file mode 100755 index 11de62e8..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsMetadata.h +++ /dev/null @@ -1,7 +0,0 @@ -#import - -@interface BTAnalyticsMetadata : NSObject - -+ (NSDictionary *)metadata; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsMetadata.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsMetadata.m deleted file mode 100755 index e7e7d922..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsMetadata.m +++ /dev/null @@ -1,253 +0,0 @@ -#import "BTAnalyticsMetadata.h" - -#import "Braintree-Version.h" -#import "BTKeychain.h" -@import CoreLocation; -#import -#import - -#import - -#ifdef __IPHONE_8_0 -#define kBTCLAuthorizationStatusAuthorized kCLAuthorizationStatusAuthorizedAlways -#else -#define kBTCLAuthorizationStatusAuthorized kCLAuthorizationStatusAuthorized -#endif - -@implementation BTAnalyticsMetadata - -+ (NSDictionary *)metadata { - BTAnalyticsMetadata *m = [[BTAnalyticsMetadata alloc] init]; - - NSMutableDictionary *data = [NSMutableDictionary dictionaryWithCapacity:16]; - - [self setObject:[m platform] forKey:@"platform" inDictionary:data]; - [self setObject:[m platformVersion] forKey:@"platformVersion" inDictionary:data]; - [self setObject:[m sdkVersion] forKey:@"sdkVersion" inDictionary:data]; - [self setObject:[m merchantAppId] forKey:@"merchantAppId" inDictionary:data]; - [self setObject:[m merchantAppName] forKey:@"merchantAppName" inDictionary:data]; - [self setObject:[m merchantAppVersion] forKey:@"merchantAppVersion" inDictionary:data]; -#ifndef __IPHONE_8_0 - [self setObject:@([m deviceRooted]) forKey:@"deviceRooted" inDictionary:data]; -#endif - [self setObject:[m deviceManufacturer] forKey:@"deviceManufacturer" inDictionary:data]; - [self setObject:[m deviceModel] forKey:@"deviceModel" inDictionary:data]; - if ([CLLocationManager locationServicesEnabled] && [CLLocationManager authorizationStatus] == kBTCLAuthorizationStatusAuthorized) { - [self setObject:@([m deviceLocationLatitude]) forKey:@"deviceLocationLatitude" inDictionary:data]; - [self setObject:@([m deviceLocationLongitude]) forKey:@"deviceLocationLongitude" inDictionary:data]; - } - [self setObject:[m iosDeviceName] forKey:@"iosDeviceName" inDictionary:data]; - [self setObject:[m iosSystemName] forKey:@"iosSystemName" inDictionary:data]; - [self setObject:[m iosBaseSDK] forKey:@"iosBaseSDK" inDictionary:data]; - [self setObject:[m iosDeploymentTarget] forKey:@"iosDeploymentTarget" inDictionary:data]; - [self setObject:[m iosIdentifierForVendor] forKey:@"iosIdentifierForVendor" inDictionary:data]; - [self setObject:@([m iosIsCocoapods]) forKey:@"iosIsCocoapods" inDictionary:data]; - [self setObject:[m deviceAppGeneratedPersistentUuid] forKey:@"deviceAppGeneratedPersistentUuid" inDictionary:data]; - [self setObject:@([m isSimulator]) forKey:@"isSimulator" inDictionary:data]; - [self setObject:[m deviceScreenOrientation] forKey:@"deviceScreenOrientation" inDictionary:data]; - [self setObject:[m userInterfaceOrientation] forKey:@"userInterfaceOrientation" inDictionary:data]; - [self setObject:@([m isVenmoInstalled]) forKey:@"venmoInstalled" inDictionary:data]; - - return [NSDictionary dictionaryWithDictionary:data]; -} - -+ (void)setObject:(id)object forKey:(id)aKey inDictionary:(NSMutableDictionary *)dictionary { - if (object) { - [dictionary setObject:object forKey:aKey]; - } -} - -#pragma mark Metadata Factors - -- (NSString *)platform { - return @"iOS"; -} - -- (NSString *)platformVersion { - - return [[UIDevice currentDevice] systemVersion]; -} - -- (NSString *)sdkVersion { - return BRAINTREE_VERSION; -} - -- (NSString *)merchantAppId { - return [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleIdentifierKey]; -} - -- (NSString *)merchantAppVersion { - return [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleVersionKey]; -} - -- (NSString *)merchantAppName { - return [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleNameKey]; -} - -- (BOOL)deviceRooted { -#if TARGET_IPHONE_SIMULATOR || __IPHONE_8_0 - return NO; -#else - BOOL isJailbroken = system(NULL) == 1; - - return isJailbroken; -#endif -} - -- (NSString *)deviceManufacturer { - return @"Apple"; -} - -- (NSString *)deviceModel { - struct utsname systemInfo; - - uname(&systemInfo); - - NSString* code = [NSString stringWithCString:systemInfo.machine - encoding:NSUTF8StringEncoding]; - - - return code; -} - -- (CLLocationDegrees)deviceLocationLatitude { - return [[[[CLLocationManager alloc] init] location] coordinate].latitude; -} - -- (CLLocationDegrees)deviceLocationLongitude { - return [[[[CLLocationManager alloc] init] location] coordinate].longitude; -} - -- (NSString *)iosIdentifierForVendor { - return [[[UIDevice currentDevice] identifierForVendor] UUIDString]; -} - -- (NSString *)iosDeploymentTarget { - NSString *rawVersionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"MinimumOSVersion"]; - NSArray *rawVersionArray = [rawVersionString componentsSeparatedByString:@"."]; - NSInteger majorVersionNumber = [[rawVersionArray objectAtIndex:0] integerValue] * 10000; - NSInteger minorVersionNumber = [[rawVersionArray objectAtIndex:1] integerValue] * 100; - - return [NSString stringWithFormat:@"%i", (int)majorVersionNumber + (int)minorVersionNumber]; -} - -- (NSString *)iosBaseSDK { - return [@(__IPHONE_OS_VERSION_MAX_ALLOWED) stringValue]; -} - -- (NSString *)iosDeviceName { - return [[UIDevice currentDevice] name]; -} - -- (NSString *)iosSystemName { - return [[UIDevice currentDevice] systemName]; -} - -- (BOOL)iosIsCocoapods { -#ifdef COCOAPODS - return YES; -#else - return NO; -#endif -} - -- (NSString *)deviceAppGeneratedPersistentUuid { - @try { - static NSString *deviceAppGeneratedPersistentUuidKeychainKey = @"deviceAppGeneratedPersistentUuid"; - NSString *savedIdentifier = [BTKeychain stringForKey:deviceAppGeneratedPersistentUuidKeychainKey]; - if (savedIdentifier.length == 0) { - savedIdentifier = [[NSUUID UUID] UUIDString]; - BOOL setDidSucceed = [BTKeychain setString:savedIdentifier - forKey:deviceAppGeneratedPersistentUuidKeychainKey]; - if (!setDidSucceed) { - return nil; - } - } - return savedIdentifier; - } @catch (NSException *exception) { - return nil; - } -} - -- (BOOL)isSimulator { - return TARGET_IPHONE_SIMULATOR; -} - -- (NSString *)userInterfaceOrientation { -// UIViewController interface orientation methods are deprecated as of iOS 8 -#ifndef __IPHONE_8_0 - if ([UIApplication class] == nil) { - return nil; - } - - if ([self.class isAppExtension]) { - return nil; - } - - UIApplication *sharedApplication = [UIApplication performSelector:@selector(sharedApplication)]; - UIInterfaceOrientation deviceOrientation = [[[sharedApplication keyWindow] rootViewController] interfaceOrientation]; - - switch (deviceOrientation) { - case UIInterfaceOrientationPortrait: - return @"Portrait"; - case UIInterfaceOrientationPortraitUpsideDown: - return @"PortraitUpsideDown"; - case UIInterfaceOrientationLandscapeLeft: - return @"LandscapeLeft"; - case UIInterfaceOrientationLandscapeRight: - return @"LandscapeRight"; - default: - return @"Unknown"; - } -#else - return nil; -#endif -} - -- (NSString *)deviceScreenOrientation { - if ([self.class isAppExtension]) { - return @"AppExtension"; - } - if ([UIDevice class] == nil) { - return nil; - } - - switch ([[UIDevice currentDevice] orientation]) { - case UIDeviceOrientationFaceUp: - return @"FaceUp"; - case UIDeviceOrientationFaceDown: - return @"FaceDown"; - case UIDeviceOrientationPortrait: - return @"Portrait"; - case UIDeviceOrientationPortraitUpsideDown: - return @"PortraitUpsideDown"; - case UIDeviceOrientationLandscapeLeft: - return @"LandscapeLeft"; - case UIDeviceOrientationLandscapeRight: - return @"LandscapeRight"; - default: - return @"Unknown"; - } -} - -- (BOOL)isVenmoInstalled { - if ([self.class isAppExtension]) { - return NO; - } - - UIApplication *sharedApplication = [UIApplication performSelector:@selector(sharedApplication)]; - static BOOL venmoInstalled; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - NSURL *venmoURL = [NSURL URLWithString:@"com.venmo.touch.v2://x-callback-url/vzero/auth"]; - venmoInstalled = [sharedApplication canOpenURL:venmoURL]; - }); - return venmoInstalled; -} - -+ (BOOL)isAppExtension { - NSDictionary *extensionDictionary = [[NSBundle mainBundle] infoDictionary][@"NSExtension"]; - return [extensionDictionary isKindOfClass:[NSDictionary class]]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsService.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsService.h deleted file mode 100755 index 0d3a26e8..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsService.h +++ /dev/null @@ -1,56 +0,0 @@ -#import - -NS_ASSUME_NONNULL_BEGIN - -extern NSString * const BTAnalyticsServiceErrorDomain; - -typedef NS_ENUM(NSUInteger, BTAnalyticsServiceErrorType) { - BTAnalyticsServiceErrorTypeUnknown = 1, - BTAnalyticsServiceErrorTypeMissingAnalyticsURL, - BTAnalyticsServiceErrorTypeInvalidAPIClient, -}; - -@class BTAPIClient, BTHTTP; - -@interface BTAnalyticsService : NSObject - -- (instancetype)initWithAPIClient:(BTAPIClient *)apiClient; - -/*! - @brief Defaults to 1, can be overridden -*/ -@property (nonatomic, assign) NSUInteger flushThreshold; - -@property (nonatomic, strong) BTAPIClient *apiClient; - -/*! - @brief Tracks an event. - - @discussion Events are queued and sent in batches to the analytics service, based on the status of the app - and the number of queued events. After exiting this method, there is no guarantee that the event has been - sent. -*/ -- (void)sendAnalyticsEvent:(NSString *)eventKind; - -/*! - @brief Tracks an event and sends it to the analytics service. It will also flush any queued events. - - @param completionBlock A callback that is invoked when the analytics service has completed. -*/ -- (void)sendAnalyticsEvent:(NSString *)eventKind completion:(nullable void(^)(NSError * _Nullable))completionBlock; - -/*! - @brief Sends all queued events to the analytics service. - - @param completionBlock A callback that is invoked when the analytics service has completed. -*/ -- (void)flush:(nullable void (^)(NSError * _Nullable error))completionBlock; - -/*! - @brief The HTTP client for communication with the analytics service endpoint. Exposed for testing. -*/ -@property (nonatomic, strong) BTHTTP *http; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsService.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsService.m deleted file mode 100755 index 4fb283d7..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAnalyticsService.m +++ /dev/null @@ -1,274 +0,0 @@ -#import "BTAnalyticsMetadata.h" -#import "BTAnalyticsService.h" -#import "BTAPIClient_Internal.h" -#import "BTClientMetadata.h" -#import "BTHTTP.h" -#import "BTLogger_Internal.h" -#import - -#pragma mark - BTAnalyticsEvent - -/// Encapsulates a single analytics event -@interface BTAnalyticsEvent : NSObject - -@property (nonatomic, copy) NSString *kind; - -@property (nonatomic, assign) long timestamp; - -+ (nonnull instancetype)event:(nonnull NSString *)eventKind withTimestamp:(long)timestamp; - -/// Event serialized to JSON -- (nonnull NSDictionary *)json; - -@end - -@implementation BTAnalyticsEvent - -+ (instancetype)event:(NSString *)eventKind withTimestamp:(long)timestamp { - BTAnalyticsEvent *event = [[BTAnalyticsEvent alloc] init]; - event.kind = eventKind; - event.timestamp = timestamp; - return event; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"%@ at %ld", self.kind, (long)self.timestamp]; -} - -- (NSDictionary *)json { - return @{ - @"kind": self.kind, - @"timestamp": @(self.timestamp) - }; -} - -@end - -#pragma mark - BTAnalyticsSession - -/// Encapsulates analytics events for a given session -@interface BTAnalyticsSession : NSObject - -@property (nonatomic, copy, nonnull) NSString *sessionID; - -@property (nonatomic, copy, nonnull) NSString *source; - -@property (nonatomic, copy, nonnull) NSString *integration; - -@property (nonatomic, strong, nonnull) NSMutableArray *events; - -/// Dictionary of analytics metadata from `BTAnalyticsMetadata` -@property (nonatomic, strong, nonnull) NSDictionary *metadataParameters; - -+ (nonnull instancetype)sessionWithID:(nonnull NSString *)sessionID - source:(nonnull NSString *)source - integration:(nonnull NSString *)integration; - -@end - -@implementation BTAnalyticsSession - -- (instancetype)init { - if (self = [super init]) { - _events = [NSMutableArray array]; - _metadataParameters = [BTAnalyticsMetadata metadata]; - } - return self; -} - -+ (instancetype)sessionWithID:(NSString *)sessionID - source:(NSString *)source - integration:(NSString *)integration -{ - if (!sessionID || !source || !integration) { - return nil; - } - - BTAnalyticsSession *session = [[BTAnalyticsSession alloc] init]; - session.sessionID = sessionID; - session.source = source; - session.integration = integration; - return session; -} - -@end - -#pragma mark - BTAnalyticsService - -@interface BTAnalyticsService () - -/// Dictionary of analytics sessions, keyed by session ID. The analytics service requires that batched events -/// are sent from only one session. In practice, BTAPIClient.metadata.sessionId should never change, so this -/// is defensive. -@property (nonatomic, strong) NSMutableDictionary *analyticsSessions; - -/// A serial dispatch queue that synchronizes access to `analyticsSessions` -@property (nonatomic, strong) dispatch_queue_t sessionsQueue; - -@end - -@implementation BTAnalyticsService - -NSString * const BTAnalyticsServiceErrorDomain = @"com.braintreepayments.BTAnalyticsServiceErrorDomain"; - -- (instancetype)initWithAPIClient:(BTAPIClient *)apiClient { - if (self = [super init]) { - _analyticsSessions = [NSMutableDictionary dictionary]; - _sessionsQueue = dispatch_queue_create("com.braintreepayments.BTAnalyticsService", DISPATCH_QUEUE_SERIAL); - _apiClient = apiClient; - _flushThreshold = 1; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWillResign:) name:UIApplicationWillResignActiveNotification object:nil]; - } - return self; -} - -- (void)dealloc { - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -#pragma mark - Public methods - -- (void)sendAnalyticsEvent:(NSString *)eventKind { - [self enqueueEvent:eventKind]; - [self checkFlushThreshold]; -} - -- (void)sendAnalyticsEvent:(NSString *)eventKind completion:(__unused void(^)(NSError *error))completionBlock { - [self enqueueEvent:eventKind]; - [self flush:completionBlock]; -} - -- (void)flush:(void (^)(NSError *))completionBlock { - [self.apiClient fetchOrReturnRemoteConfiguration:^(BTConfiguration *configuration, NSError *error) { - if (error) { - [[BTLogger sharedLogger] warning:[NSString stringWithFormat:@"Failed to send analytics event. Remote configuration fetch failed. %@", error.localizedDescription]]; - if (completionBlock) completionBlock(error); - return; - } - - NSURL *analyticsURL = [configuration.json[@"analytics"][@"url"] asURL]; - if (!analyticsURL) { - [[BTLogger sharedLogger] debug:@"Skipping sending analytics event - analytics is disabled in remote configuration"]; - NSError *error = [NSError errorWithDomain:BTAnalyticsServiceErrorDomain code:BTAnalyticsServiceErrorTypeMissingAnalyticsURL userInfo:@{ NSLocalizedDescriptionKey : @"Analytics is disabled in remote configuration" }]; - if (completionBlock) completionBlock(error); - return; - } - - if (!self.http) { - if (self.apiClient.clientToken) { - self.http = [[BTHTTP alloc] initWithBaseURL:analyticsURL authorizationFingerprint:self.apiClient.clientToken.authorizationFingerprint]; - } else if (self.apiClient.tokenizationKey) { - self.http = [[BTHTTP alloc] initWithBaseURL:analyticsURL tokenizationKey:self.apiClient.tokenizationKey]; - } - if (!self.http) { - NSError *error = [NSError errorWithDomain:BTAnalyticsServiceErrorDomain code:BTAnalyticsServiceErrorTypeInvalidAPIClient userInfo:@{ NSLocalizedDescriptionKey : @"API client must have client token or tokenization key" }]; - [[BTLogger sharedLogger] warning:error.localizedDescription]; - if (completionBlock) completionBlock(error); - return; - } - } - // A special value passed in by unit tests to prevent BTHTTP from actually posting - if ([self.http.baseURL isEqual:[NSURL URLWithString:@"test://do-not-send.url"]]) { - if (completionBlock) completionBlock(nil); - return; - } - - dispatch_async(self.sessionsQueue, ^{ - if (self.analyticsSessions.count == 0) { - if (completionBlock) completionBlock(nil); - return; - } - - for (NSString *sessionID in self.analyticsSessions.allKeys) { - BTAnalyticsSession *session = self.analyticsSessions[sessionID]; - - NSMutableDictionary *metadataParameters = [NSMutableDictionary dictionary]; - [metadataParameters addEntriesFromDictionary:session.metadataParameters]; - metadataParameters[@"sessionId"] = session.sessionID; - metadataParameters[@"integration"] = session.integration; - metadataParameters[@"source"] = session.source; - - NSMutableDictionary *postParameters = [NSMutableDictionary dictionary]; - if (session.events) { - // Map array of BTAnalyticsEvent to JSON - postParameters[@"analytics"] = [session.events valueForKey:@"json"]; - } - postParameters[@"_meta"] = metadataParameters; - if (self.apiClient.clientToken.authorizationFingerprint) { - postParameters[@"authorization_fingerprint"] = self.apiClient.clientToken.authorizationFingerprint; - } - if (self.apiClient.tokenizationKey) { - postParameters[@"tokenization_key"] = self.apiClient.tokenizationKey; - } - [self.http POST:@"/" parameters:postParameters completion:^(__unused BTJSON *body, __unused NSHTTPURLResponse *response, NSError *error) { - if (!error) { - [self.analyticsSessions removeObjectForKey:sessionID]; - } else { - [[BTLogger sharedLogger] warning:@"Failed to flush analytics events: %@", error.localizedDescription]; - } - if (completionBlock) completionBlock(error); - }]; - } - }); - }]; -} - -#pragma mark - Private methods - -- (void)appWillResign:(NSNotification *)notification { - UIApplication *application = notification.object; - - __block UIBackgroundTaskIdentifier bgTask; - bgTask = [application beginBackgroundTaskWithName:@"BTAnalyticsService" expirationHandler:^{ - [[BTLogger sharedLogger] warning:@"Analytics service background task expired"]; - [application endBackgroundTask:bgTask]; - bgTask = UIBackgroundTaskInvalid; - }]; - - // Start the long-running task and return immediately. - dispatch_async(self.sessionsQueue, ^{ - [self flush:^(__unused NSError * _Nullable error) { - [application endBackgroundTask:bgTask]; - bgTask = UIBackgroundTaskInvalid; - }]; - }); -} - -#pragma mark - Helpers - -- (void)enqueueEvent:(NSString *)eventKind { - long timestampInSeconds = round([[NSDate date] timeIntervalSince1970]); - BTAnalyticsEvent *event = [BTAnalyticsEvent event:eventKind withTimestamp:timestampInSeconds]; - - BTAnalyticsSession *session = [BTAnalyticsSession sessionWithID:self.apiClient.metadata.sessionId - source:self.apiClient.metadata.sourceString - integration:self.apiClient.metadata.integrationString]; - if (!session) { - [[BTLogger sharedLogger] warning:@"Missing analytics session metadata - will not send event %@", event.kind]; - return; - } - - dispatch_async(self.sessionsQueue, ^{ - if (!self.analyticsSessions[session.sessionID]) { - self.analyticsSessions[session.sessionID] = session; - } - - [self.analyticsSessions[session.sessionID].events addObject:event]; - }); -} - -- (void)checkFlushThreshold { - __block NSUInteger eventCount = 0; - - dispatch_sync(self.sessionsQueue, ^{ - for (BTAnalyticsSession *analyticsSession in self.analyticsSessions.allValues) { - eventCount += analyticsSession.events.count; - } - }); - - if (eventCount >= self.flushThreshold) { - [self flush:nil]; - } -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAppSwitch.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAppSwitch.m deleted file mode 100755 index 8af4e7cc..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTAppSwitch.m +++ /dev/null @@ -1,71 +0,0 @@ -#import "BTAppSwitch.h" -#import - -NSString * const BTAppSwitchWillSwitchNotification = @"com.braintreepayments.BTAppSwitchWillSwitchNotification"; -NSString * const BTAppSwitchDidSwitchNotification = @"com.braintreepayments.BTAppSwitchDidSwitchNotification"; -NSString * const BTAppSwitchWillProcessPaymentInfoNotification = @"com.braintreepayments.BTAppSwitchWillProcessPaymentInfoNotification"; -NSString * const BTAppSwitchNotificationTargetKey = @"BTAppSwitchNotificationTargetKey"; - -@interface BTAppSwitch () - -@property (nonatomic, strong) NSMutableSet *appSwitchHandlers; - -@end - -@implementation BTAppSwitch - -+ (instancetype)sharedInstance { - static BTAppSwitch *instance; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - instance = [[BTAppSwitch alloc] init]; - }); - return instance; -} - -- (instancetype)init { - self = [super init]; - if (self) { - _appSwitchHandlers = [NSMutableSet set]; - } - return self; -} - -+ (void)setReturnURLScheme:(NSString *)returnURLScheme { - [BTAppSwitch sharedInstance].returnURLScheme = returnURLScheme; -} - -#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 90000 -+ (BOOL)handleOpenURL:(NSURL *)url options:(NSDictionary *)options { - return [[[self class] sharedInstance] handleOpenURL:url sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]]; -} -#else -+ (BOOL)handleOpenURL:(NSURL *)url options:(__unused NSDictionary *)options { - return [[[self class] sharedInstance] handleOpenURL:url sourceApplication:nil]; -} -#endif - -+ (BOOL)handleOpenURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication { - return [[[self class] sharedInstance] handleOpenURL:url sourceApplication:sourceApplication]; -} - -- (BOOL)handleOpenURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication { - for (Class handlerClass in self.appSwitchHandlers) { - if ([handlerClass canHandleAppSwitchReturnURL:url sourceApplication:sourceApplication]) { - [handlerClass handleAppSwitchReturnURL:url]; - return YES; - } - } - return NO; -} - --(void)registerAppSwitchHandler:(Class)handler { - if (!handler) return; - [self.appSwitchHandlers addObject:handler]; -} - -- (void)unregisterAppSwitchHandler:(Class)handler { - [self.appSwitchHandlers removeObject:handler]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTClientMetadata.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTClientMetadata.m deleted file mode 100755 index acdeec6a..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTClientMetadata.m +++ /dev/null @@ -1,102 +0,0 @@ -#import "BTClientMetadata.h" - -@interface BTClientMetadata () { - @protected - BTClientMetadataIntegrationType _integration; - BTClientMetadataSourceType _source; - NSString *_sessionId; -} -@end - -@implementation BTClientMetadata - -- (instancetype)init { - self = [super init]; - if (self) { - _integration = BTClientMetadataIntegrationCustom; - _source = BTClientMetadataSourceUnknown; - _sessionId = [[[NSUUID UUID] UUIDString] stringByReplacingOccurrencesOfString:@"-" withString:@""]; - } - return self; -} - -- (id)copyWithZone:(NSZone *)zone { - BTClientMetadata *copiedMetadata = [[BTClientMetadata allocWithZone:zone] init]; - copiedMetadata->_integration = _integration; - copiedMetadata->_source = _source; - copiedMetadata->_sessionId = [_sessionId copyWithZone:zone]; - return copiedMetadata; -} - -- (id)mutableCopyWithZone:(NSZone *)zone { - BTMutableClientMetadata *mutableMetadata = [[BTMutableClientMetadata allocWithZone:zone] init]; - mutableMetadata.integration = _integration; - mutableMetadata.source = _source; - mutableMetadata.sessionId = [_sessionId copyWithZone:zone]; - return mutableMetadata; -} - -- (NSString *)integrationString { - return [[self class] integrationToString:self.integration]; -} - -- (NSString *)sourceString { - return [[self class] sourceToString:self.source]; -} - -- (NSDictionary *)parameters { - return @{ - @"integration": self.integrationString, - @"source": self.sourceString, - @"sessionId": self.sessionId - }; -} - -#pragma mark Internal helpers - -+ (NSString *)integrationToString:(BTClientMetadataIntegrationType)integration { - switch (integration) { - case BTClientMetadataIntegrationCustom: - return @"custom"; - case BTClientMetadataIntegrationDropIn: - return @"dropin"; - case BTClientMetadataIntegrationDropIn2: - return @"dropin2"; - case BTClientMetadataIntegrationUnknown: - return @"unknown"; - } -} - -+ (NSString *)sourceToString:(BTClientMetadataSourceType)source { - switch (source) { - case BTClientMetadataSourcePayPalApp: - return @"paypal-app"; - case BTClientMetadataSourcePayPalBrowser: - return @"paypal-browser"; - case BTClientMetadataSourceVenmoApp: - return @"venmo-app"; - case BTClientMetadataSourceForm: - return @"form"; - case BTClientMetadataSourceUnknown: - return @"unknown"; - } -} - -@end - - -@implementation BTMutableClientMetadata - -- (void)setIntegration:(BTClientMetadataIntegrationType)integration { - _integration = integration; -} - -- (void)setSource:(BTClientMetadataSourceType)source { - _source = source; -} - -- (void)setSessionId:(NSString *)sessionId { - _sessionId = sessionId; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTClientToken.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTClientToken.m deleted file mode 100755 index 974643cb..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTClientToken.m +++ /dev/null @@ -1,191 +0,0 @@ -#import "BTClientToken.h" - -NSString *const BTClientTokenKeyVersion = @"version"; -NSString *const BTClientTokenKeyAuthorizationFingerprint = @"authorizationFingerprint"; -NSString *const BTClientTokenKeyConfigURL = @"configUrl"; -NSString * const BTClientTokenErrorDomain = @"com.braintreepayments.BTClientTokenErrorDomain"; - -@interface BTClientToken () - -@property (nonatomic, readwrite, copy) NSString *authorizationFingerprint; -@property (nonatomic, readwrite, strong) NSURL *configURL; -@property (nonatomic, copy) NSString *originalValue; -@property (nonatomic, readwrite, strong) BTJSON *json; - -@end - -@implementation BTClientToken - -- (instancetype)init { - return nil; -} - -- (instancetype)initWithClientToken:(NSString *)clientToken error:(NSError * __autoreleasing *)error { - if (self = [super init]) { - // Client token must be decoded first because the other values are retrieved from it - _json = [self decodeClientToken:clientToken error:error]; - _authorizationFingerprint = [_json[BTClientTokenKeyAuthorizationFingerprint] asString]; - _configURL = [_json[BTClientTokenKeyConfigURL] asURL]; - _originalValue = clientToken; - - if (![self validateClientToken:error]) { - return nil; - } - } - return self; -} - -- (BOOL)validateClientToken:(NSError *__autoreleasing*)error { - if (error != NULL && *error) { - return NO; - } - - if ([self.authorizationFingerprint length] == 0) { - if (error != NULL) { - *error = [NSError errorWithDomain:BTClientTokenErrorDomain - code:BTClientTokenErrorInvalid - userInfo:@{ - NSLocalizedDescriptionKey: @"Invalid client token. Please ensure your server is generating a valid Braintree ClientToken.", - NSLocalizedFailureReasonErrorKey: @"Authorization fingerprint was not present or invalid." }]; - } - return NO; - } - - if (![self.configURL isKindOfClass:[NSURL class]] || self.configURL.absoluteString.length == 0) { - if (error != NULL) { - *error = [NSError errorWithDomain:BTClientTokenErrorDomain - code:BTClientTokenErrorInvalid - userInfo:@{ - NSLocalizedDescriptionKey: @"Invalid client token: config url was missing or invalid. Please ensure your server is generating a valid Braintree ClientToken." - }]; - } - return NO; - } - - return YES; -} - -- (instancetype)copyWithZone:(NSZone *)zone { - BTClientToken *copiedClientToken = [[[self class] allocWithZone:zone] initWithClientToken:self.originalValue error:NULL]; - return copiedClientToken; -} - -#pragma mark JSON Parsing - -- (NSDictionary *)parseJSONString:(NSString *)rawJSONString error:(NSError * __autoreleasing *)error { - NSData *rawJSONData = [rawJSONString dataUsingEncoding:NSUTF8StringEncoding]; - - return [NSJSONSerialization JSONObjectWithData:rawJSONData options:0 error:error]; -} - -#pragma mark NSCoding - -- (void)encodeWithCoder:(NSCoder *)coder { - [coder encodeObject:self.originalValue forKey:@"originalValue"]; -} - -- (id)initWithCoder:(NSCoder *)decoder { - return [self initWithClientToken:[decoder decodeObjectForKey:@"originalValue"] error:NULL]; -} - -#pragma mark Client Token Parsing - -- (BTJSON *)decodeClientToken:(NSString *)rawClientTokenString error:(NSError * __autoreleasing *)error { - NSError *JSONError = nil; - NSData *base64DecodedClientToken = [[NSData alloc] initWithBase64EncodedString:rawClientTokenString - options:0]; - - NSDictionary *rawClientToken; - if (base64DecodedClientToken) { - rawClientToken = [NSJSONSerialization JSONObjectWithData:base64DecodedClientToken options:0 error:&JSONError]; - } else { - rawClientToken = [self parseJSONString:rawClientTokenString error:&JSONError]; - } - - if (!rawClientToken) { - if (error) { - NSMutableDictionary *userInfo = [[NSMutableDictionary alloc] initWithDictionary:@{ - NSLocalizedDescriptionKey: @"Invalid client token. Please ensure your server is generating a valid Braintree ClientToken.", - NSLocalizedFailureReasonErrorKey: @"Invalid JSON" - }]; - if (JSONError) { - userInfo[NSUnderlyingErrorKey] = JSONError; - } - *error = [NSError errorWithDomain:BTClientTokenErrorDomain - code:BTClientTokenErrorInvalid - userInfo:userInfo]; - } - return nil; - } - - if (![rawClientToken isKindOfClass:[NSDictionary class]]) { - if (error) { - *error = [NSError errorWithDomain:BTClientTokenErrorDomain - code:BTClientTokenErrorInvalid - userInfo:@{ - NSLocalizedDescriptionKey: @"Invalid client token. Please ensure your server is generating a valid Braintree ClientToken.", - NSLocalizedFailureReasonErrorKey: @"Invalid JSON. Expected to find an object at JSON root." - }]; - } - return nil; - } - - NSError *clientTokenFormatError = [NSError errorWithDomain:BTClientTokenErrorDomain - code:BTClientTokenErrorInvalid - userInfo:@{ - NSLocalizedDescriptionKey: @"Invalid client token format. Please pass the client token string directly as it is generated by the server-side SDK.", - NSLocalizedFailureReasonErrorKey: @"Unsupported client token format." - }]; - - switch ([rawClientToken[BTClientTokenKeyVersion] integerValue]) { - case 1: - if (base64DecodedClientToken) { - if (error) { - *error = clientTokenFormatError; - } - return nil; - } - break; - case 2: - /* FALLTHROUGH */ - case 3: - if (!base64DecodedClientToken) { - if (error) { - *error = clientTokenFormatError; - } - return nil; - } - break; - default: - if (error) { - *error = [NSError errorWithDomain:BTClientTokenErrorDomain - code:BTClientTokenErrorUnsupportedVersion - userInfo:@{ - NSLocalizedDescriptionKey: @"Unsupported client token version. Please ensure your server is generating a valid Braintree ClientToken with a server-side SDK that is compatible with this version of Braintree iOS.", - NSLocalizedFailureReasonErrorKey: @"Unsupported client token version." - }]; - } - return nil; - } - - return [[BTJSON alloc] initWithValue:rawClientToken]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"", self.authorizationFingerprint, self.configURL]; -} - -- (BOOL)isEqual:(id)object { - if (self == object) { - return YES; - } - - if ([object isKindOfClass:[BTClientToken class]]) { - BTClientToken *otherToken = object; - return [self.json.asDictionary isEqualToDictionary:otherToken.json.asDictionary]; - } - - return NO; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTConfiguration.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTConfiguration.m deleted file mode 100755 index 197a7e4d..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTConfiguration.m +++ /dev/null @@ -1,23 +0,0 @@ -#import "BTConfiguration.h" - -@implementation BTConfiguration - -- (instancetype)init { - @throw [[NSException alloc] initWithName:@"Invalid initializer" reason:@"Use designated initializer" userInfo:nil]; -} - -- (instancetype)initWithJSON:(BTJSON *)json { - if (self = [super init]) { - _json = json; - } - return self; -} - -+ (BOOL)isBetaEnabledPaymentOption:(NSString*)__unused paymentOption { - return false; -} - -+ (void)setBetaPaymentOption:(NSString*) __unused paymentOption isEnabled:(BOOL) __unused isEnabled { /* NO OP */ } - - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTErrors.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTErrors.m deleted file mode 100755 index fcbcffaa..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTErrors.m +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTErrors.h" - -#pragma mark Error userInfo Keys - -NSString *const BTCustomerInputBraintreeValidationErrorsKey = @"BTCustomerInputBraintreeValidationErrorsKey"; diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTHTTP.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTHTTP.h deleted file mode 100755 index 25b160e7..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTHTTP.h +++ /dev/null @@ -1,87 +0,0 @@ -#import -#import "BTHTTPErrors.h" -#import "BTJSON.h" - -NS_ASSUME_NONNULL_BEGIN - -@class BTHTTPResponse, BTClientToken; - -/*! - @brief Performs HTTP methods on the Braintree Client API -*/ -@interface BTHTTP : NSObject - -/*! - @brief An optional array of pinned certificates, each an NSData instance consisting of DER encoded x509 certificates -*/ -@property (nonatomic, nullable, strong) NSArray *pinnedCertificates; - -/*! - @brief Initialize `BTHTTP` with the authorization fingerprint from a client token - - @param URL The base URL for the Braintree Client API - @param authorizationFingerprint The authorization fingerprint HMAC from a client token -*/ -- (instancetype)initWithBaseURL:(NSURL *)URL - authorizationFingerprint:(NSString *)authorizationFingerprint NS_DESIGNATED_INITIALIZER; - -/*! - @brief Initialize `BTHTTP` with a tokenization key - - @param URL The base URL for the Braintree Client API - @param tokenizationKey A tokenization key -*/ -- (instancetype)initWithBaseURL:(NSURL *)URL tokenizationKey:(NSString *)tokenizationKey NS_DESIGNATED_INITIALIZER; - -/*! - @brief A convenience initializer to initialize `BTHTTP` with a client token - - @param clientToken A client token -*/ -- (instancetype)initWithClientToken:(BTClientToken *)clientToken; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnullability" -- (nullable instancetype)init __attribute__((unavailable("Please use initWithBaseURL:authorizationFingerprint: instead."))); -#pragma clang diagnostic pop - -// For testing -@property (nonatomic, strong) NSURLSession *session; -@property (nonatomic, readonly, strong) NSURL *baseURL; - -/*! - @brief Queue that callbacks are dispatched onto, main queue if not otherwise specified -*/ -@property (nonatomic, strong) dispatch_queue_t dispatchQueue; - -- (void)GET:(NSString *)endpoint - completion:(nullable void(^)(BTJSON * _Nullable body, NSHTTPURLResponse * _Nullable response, NSError * _Nullable error))completionBlock; - -- (void)GET:(NSString *)endpoint - parameters:(nullable NSDictionary *)parameters - completion:(nullable void(^)(BTJSON * _Nullable body, NSHTTPURLResponse * _Nullable response, NSError * _Nullable error))completionBlock; - -- (void)POST:(NSString *)endpoint - completion:(nullable void(^)(BTJSON * _Nullable body, NSHTTPURLResponse * _Nullable response, NSError * _Nullable error))completionBlock; - -- (void)POST:(NSString *)endpoint - parameters:(nullable NSDictionary *)parameters - completion:(nullable void(^)(BTJSON * _Nullable body, NSHTTPURLResponse * _Nullable response, NSError * _Nullable error))completionBlock; - -- (void)PUT:(NSString *)endpoint - completion:(nullable void(^)(BTJSON * _Nullable body, NSHTTPURLResponse * _Nullable response, NSError * _Nullable error))completionBlock; - -- (void)PUT:(NSString *)endpoint - parameters:(nullable NSDictionary *)parameters - completion:(nullable void(^)(BTJSON * _Nullable body, NSHTTPURLResponse * _Nullable response, NSError * _Nullable error))completionBlock; - -- (void)DELETE:(NSString *)endpoint - completion:(nullable void(^)(BTJSON * _Nullable body, NSHTTPURLResponse * _Nullable response, NSError * _Nullable error))completionBlock; - -- (void)DELETE:(NSString *)endpoint - parameters:(nullable NSDictionary *)parameters - completion:(nullable void(^)(BTJSON * _Nullable body, NSHTTPURLResponse * _Nullable response, NSError * _Nullable error))completionBlock; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTHTTP.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTHTTP.m deleted file mode 100755 index 63eec3bf..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTHTTP.m +++ /dev/null @@ -1,384 +0,0 @@ -#import "BTHTTP.h" - -#include - -#import "Braintree-Version.h" -#import "BTClientToken.h" -#import "BTAPIPinnedCertificates.h" -#import "BTURLUtils.h" -#import "BTLogger_Internal.h" - -@interface BTHTTP () - -@property (nonatomic, strong) NSURL *baseURL; -@property (nonatomic, copy) NSString *authorizationFingerprint; -@property (nonatomic, copy) NSString *tokenizationKey; - -@end - -@implementation BTHTTP - -- (instancetype)init { - return nil; -} - -- (instancetype)initWithBaseURL:(NSURL *)URL authorizationFingerprint:(NSString *)authorizationFingerprint { - self = [super init]; - if (self) { - NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration ephemeralSessionConfiguration]; - configuration.HTTPAdditionalHeaders = self.defaultHeaders; - self.baseURL = URL; - - NSOperationQueue *delegateQueue = [[NSOperationQueue alloc] init]; - delegateQueue.name = @"com.braintreepayments.BTHTTP"; - delegateQueue.maxConcurrentOperationCount = NSOperationQueueDefaultMaxConcurrentOperationCount; - - self.authorizationFingerprint = authorizationFingerprint; - self.session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:delegateQueue]; - self.pinnedCertificates = [BTAPIPinnedCertificates trustedCertificates]; - } - return self; -} - -- (instancetype)initWithBaseURL:(nonnull NSURL *)URL tokenizationKey:(nonnull NSString *)tokenizationKey { - if (self = [super init]) { - NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration ephemeralSessionConfiguration]; - configuration.HTTPAdditionalHeaders = self.defaultHeaders; - self.baseURL = URL; - - NSOperationQueue *delegateQueue = [[NSOperationQueue alloc] init]; - delegateQueue.name = @"com.braintreepayments.BTHTTP"; - delegateQueue.maxConcurrentOperationCount = NSOperationQueueDefaultMaxConcurrentOperationCount; - - self.session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:delegateQueue]; - self.pinnedCertificates = [BTAPIPinnedCertificates trustedCertificates]; - self.tokenizationKey = tokenizationKey; - } - return self; -} - -- (instancetype)initWithClientToken:(BTClientToken *)clientToken { - return [self initWithBaseURL:[clientToken.json[@"clientApiUrl"] asURL] authorizationFingerprint:clientToken.authorizationFingerprint]; -} - -- (instancetype)copyWithZone:(NSZone *)zone { - BTHTTP *copiedHTTP; - if (self.authorizationFingerprint) { - copiedHTTP = [[[self class] allocWithZone:zone] initWithBaseURL:self.baseURL authorizationFingerprint:self.authorizationFingerprint]; - } else { - copiedHTTP = [[[self class] allocWithZone:zone] initWithBaseURL:self.baseURL tokenizationKey:self.tokenizationKey]; - } - - copiedHTTP.pinnedCertificates = [_pinnedCertificates copy]; - return copiedHTTP; -} - -#pragma mark - HTTP Methods - -- (void)GET:(NSString *)aPath completion:(void(^)(BTJSON *body, NSHTTPURLResponse *response, NSError *error))completionBlock { - [self GET:aPath parameters:nil completion:completionBlock]; -} - -- (void)GET:(NSString *)aPath parameters:(NSDictionary *)parameters completion:(void(^)(BTJSON *body, NSHTTPURLResponse *response, NSError *error))completionBlock { - [self httpRequest:@"GET" path:aPath parameters:parameters completion:completionBlock]; -} - -- (void)POST:(NSString *)aPath completion:(void(^)(BTJSON *body, NSHTTPURLResponse *response, NSError *error))completionBlock { - [self POST:aPath parameters:nil completion:completionBlock]; -} - -- (void)POST:(NSString *)aPath parameters:(NSDictionary *)parameters completion:(void(^)(BTJSON *body, NSHTTPURLResponse *response, NSError *error))completionBlock { - [self httpRequest:@"POST" path:aPath parameters:parameters completion:completionBlock]; -} - -- (void)PUT:(NSString *)aPath completion:(void(^)(BTJSON *body, NSHTTPURLResponse *response, NSError *error))completionBlock { - [self PUT:aPath parameters:nil completion:completionBlock]; -} - -- (void)PUT:(NSString *)aPath parameters:(NSDictionary *)parameters completion:(void(^)(BTJSON *body, NSHTTPURLResponse *response, NSError *error))completionBlock { - [self httpRequest:@"PUT" path:aPath parameters:parameters completion:completionBlock]; -} - -- (void)DELETE:(NSString *)aPath completion:(void(^)(BTJSON *body, NSHTTPURLResponse *response, NSError *error))completionBlock { - [self DELETE:aPath parameters:nil completion:completionBlock]; -} - -- (void)DELETE:(NSString *)aPath parameters:(NSDictionary *)parameters completion:(void(^)(BTJSON *body, NSHTTPURLResponse *response, NSError *error))completionBlock { - [self httpRequest:@"DELETE" path:aPath parameters:parameters completion:completionBlock]; -} - -#pragma mark - Underlying HTTP - -- (void)httpRequest:(NSString *)method path:(NSString *)aPath parameters:(NSDictionary *)parameters completion:(void(^)(BTJSON *body, NSHTTPURLResponse *response, NSError *error))completionBlock { - - BOOL hasHttpPrefix = aPath != nil && [aPath hasPrefix:@"http"]; - if (!hasHttpPrefix && (!self.baseURL || [self.baseURL.absoluteString isEqualToString:@""])) { - NSMutableDictionary *errorUserInfo = [NSMutableDictionary new]; - if (method) errorUserInfo[@"method"] = method; - if (aPath) errorUserInfo[@"path"] = aPath; - if (parameters) errorUserInfo[@"parameters"] = parameters; - completionBlock(nil, nil, [NSError errorWithDomain:BTHTTPErrorDomain code:BTHTTPErrorCodeMissingBaseURL userInfo:errorUserInfo]); - return; - } - - BOOL isNotDataURL = ![self.baseURL.scheme isEqualToString:@"data"]; - NSURL *fullPathURL; - if (aPath && isNotDataURL) { - if (hasHttpPrefix) { - fullPathURL = [NSURL URLWithString:aPath]; - } else { - fullPathURL = [self.baseURL URLByAppendingPathComponent:aPath]; - } - } else { - fullPathURL = self.baseURL; - } - - NSMutableDictionary *mutableParameters = [NSMutableDictionary dictionaryWithDictionary:parameters]; - if (self.authorizationFingerprint) { - mutableParameters[@"authorization_fingerprint"] = self.authorizationFingerprint; - } - parameters = [mutableParameters copy]; - - if (!fullPathURL) { - // baseURL can be non-nil (e.g. an empty string) and still return nil for -URLByAppendingPathComponent: - // causing a crash when NSURLComponents.componentsWithString is called with nil. - NSMutableDictionary *errorUserInfo = [NSMutableDictionary new]; - if (method) errorUserInfo[@"method"] = method; - if (aPath) errorUserInfo[@"path"] = aPath; - if (parameters) errorUserInfo[@"parameters"] = parameters; - errorUserInfo[NSLocalizedFailureReasonErrorKey] = @"fullPathURL was nil"; - completionBlock(nil, nil, [NSError errorWithDomain:BTHTTPErrorDomain code:BTHTTPErrorCodeMissingBaseURL userInfo:errorUserInfo]); - return; - } - - NSURLComponents *components = [NSURLComponents componentsWithString:fullPathURL.absoluteString]; - - NSMutableDictionary *headers = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; - - NSMutableURLRequest *request; - - if ([method isEqualToString:@"GET"] || [method isEqualToString:@"DELETE"]) { - if (isNotDataURL) { - NSString *encodedParametersString = [BTURLUtils queryStringWithDictionary:parameters]; - components.percentEncodedQuery = encodedParametersString; - } - request = [NSMutableURLRequest requestWithURL:components.URL]; - } else { - request = [NSMutableURLRequest requestWithURL:components.URL]; - - NSError *jsonSerializationError; - NSData *bodyData; - - if ([parameters isKindOfClass:[NSDictionary class]]) { - bodyData = [NSJSONSerialization dataWithJSONObject:parameters - options:0 - error:&jsonSerializationError]; - } - - if (jsonSerializationError != nil) { - completionBlock(nil, nil, jsonSerializationError); - return; - } - - [request setHTTPBody:bodyData]; - headers[@"Content-Type"] = @"application/json; charset=utf-8"; - } - if (self.tokenizationKey) { - headers[@"Client-Key"] = self.tokenizationKey; - } - [request setAllHTTPHeaderFields:headers]; - - [request setHTTPMethod:method]; - - // Perform the actual request - NSURLSessionTask *task = [self.session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - [self handleRequestCompletion:data response:response error:error completionBlock:completionBlock]; - }]; - [task resume]; -} - -- (void)handleRequestCompletion:(NSData *)data response:(NSURLResponse *)response error:(NSError *)error completionBlock:(void(^)(BTJSON *body, NSHTTPURLResponse *response, NSError *error))completionBlock { - // Handle errors for which the response is irrelevant - // e.g. SSL, unavailable network, etc. - if (error != nil) { - [self callCompletionBlock:completionBlock body:nil response:nil error:error]; - return; - } - - NSHTTPURLResponse *httpResponse; - if ([response isKindOfClass:[NSHTTPURLResponse class]]) { - httpResponse = (NSHTTPURLResponse *)response; - } else if ([response.URL.scheme isEqualToString:@"data"]) { - httpResponse = [[NSHTTPURLResponse alloc] initWithURL:response.URL statusCode:200 HTTPVersion:nil headerFields:nil]; - } - - NSString *responseContentType = [response MIMEType]; - - NSMutableDictionary *errorUserInfo = [NSMutableDictionary new]; - errorUserInfo[BTHTTPURLResponseKey] = httpResponse; - - if (httpResponse.statusCode >= 400) { - errorUserInfo[NSLocalizedFailureReasonErrorKey] = [NSHTTPURLResponse localizedStringForStatusCode:httpResponse.statusCode]; - - BTJSON *json; - if ([responseContentType isEqualToString:@"application/json"]) { - json = (data.length == 0) ? [BTJSON new] : [[BTJSON alloc] initWithData:data]; - if (!json.isError) { - errorUserInfo[BTHTTPJSONResponseBodyKey] = json; - NSString *errorResponseMessage = [json[@"error"][@"message"] asString]; - if (errorResponseMessage) { - errorUserInfo[NSLocalizedDescriptionKey] = errorResponseMessage; - } - } - } - - BTHTTPErrorCode errorCode = httpResponse.statusCode >= 500 ? BTHTTPErrorCodeServerError : BTHTTPErrorCodeClientError; - if (httpResponse.statusCode == 429) { - errorCode = BTHTTPErrorCodeRateLimitError; - errorUserInfo[NSLocalizedDescriptionKey] = @"You are being rate-limited."; - errorUserInfo[NSLocalizedRecoverySuggestionErrorKey] = @"Please try again in a few minutes."; - } else if (httpResponse.statusCode >= 500) { - errorUserInfo[NSLocalizedRecoverySuggestionErrorKey] = @"Please try again later."; - } - - NSError *error = [NSError errorWithDomain:BTHTTPErrorDomain - code:errorCode - userInfo:[errorUserInfo copy]]; - [self callCompletionBlock:completionBlock body:json response:httpResponse error:error]; - return; - } - - // Empty response is valid - BTJSON *json = (data.length == 0) ? [BTJSON new] : [[BTJSON alloc] initWithData:data]; - if (json.isError) { - if (![responseContentType isEqualToString:@"application/json"]) { - // Return error for unsupported response type - errorUserInfo[NSLocalizedFailureReasonErrorKey] = [NSString stringWithFormat:@"BTHTTP only supports application/json responses, received Content-Type: %@", responseContentType]; - NSError *returnedError = [NSError errorWithDomain:BTHTTPErrorDomain - code:BTHTTPErrorCodeResponseContentTypeNotAcceptable - userInfo:[errorUserInfo copy]]; - [self callCompletionBlock:completionBlock body:nil response:nil error:returnedError]; - } else { - [self callCompletionBlock:completionBlock body:nil response:nil error:json.asError]; - } - return; - } - - [self callCompletionBlock:completionBlock body:json response:httpResponse error:nil]; -} - -- (void)callCompletionBlock:(void(^)(BTJSON *body, NSHTTPURLResponse *response, NSError *error))completionBlock - body:(BTJSON *)jsonBody - response:(NSHTTPURLResponse *)response - error:(NSError *)error { - if (completionBlock) { - dispatch_async(self.dispatchQueue, ^{ - completionBlock(jsonBody, response, error); - }); - } -} - -- (dispatch_queue_t)dispatchQueue { - return _dispatchQueue ?: dispatch_get_main_queue(); -} - -#pragma mark - Default Headers - -- (NSDictionary *)defaultHeaders { - return @{ @"User-Agent": [self userAgentString], - @"Accept": [self acceptString], - @"Accept-Language": [self acceptLanguageString] }; -} - -- (NSString *)userAgentString { - return [NSString stringWithFormat:@"Braintree/iOS/%@", BRAINTREE_VERSION]; -} - -- (NSString *)platformString { - size_t size = 128; - char *hwModel = alloca(size); - - if (sysctlbyname("hw.model", hwModel, &size, NULL, 0) != 0) { - return nil; - } - - NSString *hwModelString = [NSString stringWithCString:hwModel encoding:NSUTF8StringEncoding]; -#if TARGET_IPHONE_SIMULATOR - hwModelString = [hwModelString stringByAppendingString:@"(simulator)"]; -#endif - return hwModelString; -} - -- (NSString *)architectureString { - size_t size = 128; - char *hwMachine = alloca(size); - - if (sysctlbyname("hw.machine", hwMachine, &size, NULL, 0) != 0) { - return nil; - } - - return [NSString stringWithCString:hwMachine encoding:NSUTF8StringEncoding]; -} - -- (NSString *)acceptString { - return @"application/json"; -} - -- (NSString *)acceptLanguageString { - NSLocale *locale = [NSLocale currentLocale]; - return [NSString stringWithFormat:@"%@-%@", - [locale objectForKey:NSLocaleLanguageCode], - [locale objectForKey:NSLocaleCountryCode]]; -} - -#pragma mark - Helpers - -- (NSArray *)pinnedCertificateData { - NSMutableArray *pinnedCertificates = [NSMutableArray array]; - for (NSData *certificateData in self.pinnedCertificates) { - [pinnedCertificates addObject:(__bridge_transfer id)SecCertificateCreateWithData(NULL, (__bridge CFDataRef)certificateData)]; - } - return pinnedCertificates; -} - -- (void)URLSession:(__unused NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential *))completionHandler { - if ([[[challenge protectionSpace] authenticationMethod] isEqualToString:NSURLAuthenticationMethodServerTrust]) { - NSString *domain = challenge.protectionSpace.host; - SecTrustRef serverTrust = [[challenge protectionSpace] serverTrust]; - - NSArray *policies = @[(__bridge_transfer id)SecPolicyCreateSSL(true, (__bridge CFStringRef)domain)]; - SecTrustSetPolicies(serverTrust, (__bridge CFArrayRef)policies); - SecTrustSetAnchorCertificates(serverTrust, (__bridge CFArrayRef)self.pinnedCertificateData); - SecTrustResultType result; - - OSStatus errorCode = SecTrustEvaluate(serverTrust, &result); - - BOOL evaluatesAsTrusted = (result == kSecTrustResultUnspecified || result == kSecTrustResultProceed); - if (errorCode == errSecSuccess && evaluatesAsTrusted) { - NSURLCredential *credential = [NSURLCredential credentialForTrust:serverTrust]; - completionHandler(NSURLSessionAuthChallengeUseCredential, credential); - } else { - completionHandler(NSURLSessionAuthChallengeRejectProtectionSpace, NULL); - } - } else { - completionHandler(NSURLSessionAuthChallengePerformDefaultHandling, NULL); - } -} - -- (BOOL)isEqualToHTTP:(BTHTTP *)http { - return [self.baseURL isEqual:http.baseURL] && [self.authorizationFingerprint isEqualToString:http.authorizationFingerprint]; -} - -- (BOOL)isEqual:(id)object { - if (self == object) { - return YES; - } - - if ([object isKindOfClass:[BTHTTP class]]) { - return [self isEqualToHTTP:object]; - } - - return NO; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTHTTPErrors.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTHTTPErrors.m deleted file mode 100755 index 917a5ab4..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTHTTPErrors.m +++ /dev/null @@ -1,7 +0,0 @@ -#import "BTHTTPErrors.h" - -NSString * const BTHTTPErrorDomain = @"com.braintreepayments.BTHTTPErrorDomain"; - -NSString * const BTHTTPURLResponseKey = @"com.braintreepayments.BTHTTPURLResponseKey"; - -NSString * const BTHTTPJSONResponseBodyKey = @"com.braintreepayments.BTHTTPJSONResponseBodyKey"; diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTJSON.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTJSON.m deleted file mode 100755 index b9bff2cf..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTJSON.m +++ /dev/null @@ -1,257 +0,0 @@ -#import "BTJSON.h" - -NSString * const BTJSONErrorDomain = @"com.briantreepayments.BTJSONErrorDomain"; - -@interface BTJSON () - -@property (nonatomic, strong) NSArray *subscripts; -@property (nonatomic, strong) id value; - -@end - -@implementation BTJSON - -@synthesize value = _value; - -- (instancetype)init { - self = [super init]; - if (self) { - self.subscripts = [NSMutableArray array]; - self.value = @{}; - } - return self; -} - -- (instancetype)initWithData:(NSData *)data { - NSError *error; - id value = [NSJSONSerialization JSONObjectWithData:data - options:NSJSONReadingAllowFragments - error:&error]; - if (error != nil) { - return self = [self initWithValue:error]; - } - - return self = [self initWithValue:value]; -} - -- (instancetype)initWithValue:(id)value { - self = [self init]; - if (self) { - self.value = value; - } - return self; -} - - -#pragma mark Subscripting - -- (id)objectForKeyedSubscript:(NSString *)key { - BTJSON *json = [[BTJSON alloc] initWithValue:_value]; - json.subscripts = [self.subscripts arrayByAddingObject:key]; - - return json; -} - -- (id)objectAtIndexedSubscript:(NSUInteger)idx { - BTJSON *json = [[BTJSON alloc] initWithValue:_value]; - json.subscripts = [self.subscripts arrayByAddingObject:@(idx)]; - - return json; -} - -- (id)value { - id value = _value; - for (id key in self.subscripts) { - if ([value isKindOfClass:[NSArray class]]) { - if (![key isKindOfClass:[NSNumber class]]) { - value = [self chainedErrorOrErrorWithCode:BTJSONErrorAccessInvalid userInfo:nil]; - break; - } - - NSUInteger idx = [(NSNumber *)key unsignedIntegerValue]; - if (idx >= [(NSArray *)value count]) { - value = nil; - break; - } - - value = [value objectAtIndexedSubscript:idx]; - } else if ([value isKindOfClass:[NSDictionary class]]) { - if (![key isKindOfClass:[NSString class]]) { - value = [self chainedErrorOrErrorWithCode:BTJSONErrorAccessInvalid userInfo:nil]; - break; - } - - value = [value objectForKeyedSubscript:key]; - } else { - value = [self chainedErrorOrErrorWithCode:BTJSONErrorValueInvalid userInfo:@{ NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"Attempted to index into a value that is neither an object nor an array using key (%@).", key] }]; - break; - } - } - return value; -} - -#pragma mark Validity Checks - -- (BOOL)isError { - return [self.value isKindOfClass:[NSError class]]; -} - -- (NSError *)asError { - if (![self.value isKindOfClass:[NSError class]]) { - return nil; - } - - return self.value; -} - -#pragma mark Generating JSON - -- (NSData *)asJSONAndReturnError:(NSError **)error { - return [NSJSONSerialization dataWithJSONObject:self.value - options:0 - error:error]; -} - -- (NSString *)asPrettyJSONAndReturnError:(NSError **)error { - return [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:self.value - options:NSJSONWritingPrettyPrinted - error:error] - encoding:NSUTF8StringEncoding]; -} - - -#pragma mark JSON Type Casts - -- (NSString *)asString { - if (![self.value isKindOfClass:[NSString class]]) { - return nil; - } - - return self.value; -} - -- (NSArray *)asArray { - if (![self.value isKindOfClass:[NSArray class]]) { - return nil; - } - - return self.value; -} - -- (NSDecimalNumber *)asNumber { - if (![self.value isKindOfClass:[NSNumber class]]) { - return nil; - } - - return [NSDecimalNumber decimalNumberWithDecimal:[self.value decimalValue]]; -} - -#pragma mark JSON Extension Type Casts - -- (NSURL *)asURL { - NSString *urlString = self.asString; - - if (urlString == nil) { - return nil; - } - - return [NSURL URLWithString:urlString]; -} - -- (NSArray *)asStringArray { - NSArray *array = (NSArray *)self.asArray; - - for (id obj in array) { - if (![obj isKindOfClass:[NSString class]]) { - return nil; - } - } - - return array; -} - -- (NSDictionary *)asDictionary { - NSDictionary *dictionary = self.value; - - if (![dictionary isKindOfClass:[NSDictionary class]]) { - return nil; - } - - return dictionary; -} - -- (NSInteger)asIntegerOrZero { - NSNumber *number = self.value; - - if (![number isKindOfClass:[NSNumber class]]) { - return 0; - } - - return number.integerValue; -} - -- (NSInteger)asEnum:(nonnull NSDictionary *)mapping orDefault:(NSInteger)defaultValue { - id key = self.value; - NSNumber *value = mapping[key]; - - if (!value || ![value isKindOfClass:[NSNumber class]]) { - return defaultValue; - } - - return value.integerValue; -} - -// @name JSON Type Checks - -- (BOOL)isString { - return [self.value isKindOfClass:[NSString class]]; -} - -- (BOOL)isNumber { - return [self.value isKindOfClass:[NSNumber class]]; -} - -- (BOOL)isArray { - return [self.value isKindOfClass:[NSArray class]]; -} - -- (BOOL)isObject { - return [self.value isKindOfClass:[NSDictionary class]]; -} - -- (BOOL)isTrue { - return [self.value isEqual:@YES]; -} - -- (BOOL)isFalse { - return [self.value isEqual:@NO]; -} - -- (BOOL)isNull { - return [self.value isKindOfClass:[NSNull class]]; -} - -#pragma mark Error Handling - -- (NSError *)chainedErrorOrErrorWithCode:(NSInteger)code - userInfo:(NSDictionary *)userInfo { - if ([_value isKindOfClass:[NSError class]]) { - return _value; - } - - return [NSError errorWithDomain:BTJSONErrorDomain - code:code - userInfo:userInfo]; -} - -#pragma mark - - -- (NSString *)description { - return [self debugDescription]; -} - -- (NSString *)debugDescription { - return [NSString stringWithFormat:@"", self, self.value]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTKeychain.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTKeychain.h deleted file mode 100755 index 99b7e12a..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTKeychain.h +++ /dev/null @@ -1,12 +0,0 @@ -#import - -@interface BTKeychain : NSObject - -+ (BOOL)setString:(NSString *)string forKey:(NSString *)key; -+ (NSString *)stringForKey:(NSString *)key; - -+ (BOOL)setData:(NSData *)data forKey:(NSString *)key; -+ (NSData *)dataForKey:(NSString *)key; - - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTKeychain.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTKeychain.m deleted file mode 100755 index fb631afc..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTKeychain.m +++ /dev/null @@ -1,98 +0,0 @@ -#import "BTKeychain.h" -@import Security; - -@implementation BTKeychain - -+ (BOOL)setString:(NSString *)string forKey:(NSString *)key { - NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; - return [self setData:data forKey:key]; -} - -+ (NSString *)stringForKey:(NSString *)key { - NSData *data = [self dataForKey:key]; - return data == nil ? nil : [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; -} - -+ (NSString *)keychainKeyForKey:(NSString *)key { - return [NSString stringWithFormat:@"com.braintreepayments.Braintree-API.%@", key]; -} - -+ (BOOL)setData:(NSData *)data forKey:(NSString *)key { - if(!key) { - return NO; - } - - BOOL success = YES; - - key = [self keychainKeyForKey:key]; - - // First check if it already exists, by creating a search dictionary and requesting that - // nothing be returned, and performing the search anyway. - NSMutableDictionary *existsQueryDictionary = [NSMutableDictionary dictionary]; - - [existsQueryDictionary setObject:(__bridge id)kSecClassGenericPassword forKey:(__bridge id)kSecClass]; - - // Add the keys to the search dict - [existsQueryDictionary setObject:@"Service" forKey:(__bridge id)kSecAttrService]; - [existsQueryDictionary setObject:key forKey:(__bridge id)kSecAttrAccount]; - - OSStatus res = SecItemCopyMatching((__bridge CFDictionaryRef)existsQueryDictionary, NULL); - if(res == errSecItemNotFound) { - if(data) { - NSMutableDictionary *addDict = existsQueryDictionary; - [addDict setObject:data forKey:(__bridge id)kSecValueData]; - [addDict setObject:(__bridge id)kSecAttrAccessibleWhenUnlockedThisDeviceOnly forKey:(__bridge id)kSecAttrAccessible]; - - res = SecItemAdd((__bridge CFDictionaryRef)addDict, NULL); - if (res != errSecSuccess) { - success = NO; - } - } - } - else if(res == errSecSuccess) { - if(data) { - // Modify an existing one - // Actually pull it now of the keychain at this point. - NSDictionary *attributeDict = [NSDictionary dictionaryWithObject:data forKey:(__bridge id)kSecValueData]; - - res = SecItemUpdate((__bridge CFDictionaryRef)existsQueryDictionary, (__bridge CFDictionaryRef)attributeDict); - if (res != errSecSuccess) { - success = NO; - } - } else { - SecItemDelete((__bridge CFDictionaryRef)existsQueryDictionary); - } - } - else { - success = NO; - } - - return success; -} - -+ (NSData *)dataForKey:(NSString *)key { - - key = [self keychainKeyForKey:key]; - - NSMutableDictionary *existsQueryDictionary = [NSMutableDictionary dictionary]; - - [existsQueryDictionary setObject:(__bridge id)kSecClassGenericPassword forKey:(__bridge id)kSecClass]; - - // Add the keys to the search dict - [existsQueryDictionary setObject:@"Service" forKey:(__bridge id)kSecAttrService]; - [existsQueryDictionary setObject:key forKey:(__bridge id)kSecAttrAccount]; - - // We want the data back! - [existsQueryDictionary setObject:(id)kCFBooleanTrue forKey:(__bridge id)kSecReturnData]; - - CFTypeRef cfData = NULL; - OSStatus res = SecItemCopyMatching((__bridge CFDictionaryRef)existsQueryDictionary, &cfData); - NSData *data = (id)CFBridgingRelease(cfData); - if(res == errSecSuccess) { - return data; - } - - return nil; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTLogger.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTLogger.m deleted file mode 100755 index 83bbda15..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTLogger.m +++ /dev/null @@ -1,85 +0,0 @@ -#import - -#import "BTLogger_Internal.h" - -#define variadicLogLevel(level, format) \ - va_list args; \ - va_start(args, format); \ - [self logLevel:level format:format arguments:args]; \ - va_end(args); - - -@implementation BTLogger - -+ (instancetype)sharedLogger { - static BTLogger *instance; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - instance = [self new]; - }); - - return instance; -} - -- (instancetype)init { - self = [super init]; - if (self) { - _level = BTLogLevelInfo; - } - return self; -} - -- (void)log:(NSString *)format, ... { - variadicLogLevel(BTLogLevelInfo, format) -} - -- (void)critical:(NSString *)format, ... { - variadicLogLevel(BTLogLevelCritical, format) -} - -- (void)error:(NSString *)format, ... { - variadicLogLevel(BTLogLevelError, format) -} - -- (void)warning:(NSString *)format, ... { - variadicLogLevel(BTLogLevelWarning, format) -} - -- (void)info:(NSString *)format, ... { - variadicLogLevel(BTLogLevelInfo, format) -} - -- (void)debug:(NSString *)format, ... { - variadicLogLevel(BTLogLevelDebug, format) -} - -- (void)logLevel:(BTLogLevel)level format:(NSString *)format arguments:(va_list)arguments { - if (level <= self.level) { - NSString *message = [[NSString alloc] initWithFormat:format arguments:arguments]; - if (self.logBlock) { - self.logBlock(level, message); - } else { - NSString *levelString = [[self class] levelString:level]; - NSLog(@"[BraintreeSDK] %@ %@", [levelString uppercaseString], message); - } - } -} - -+ (NSString *)levelString:(BTLogLevel)level { - switch (level) { - case BTLogLevelCritical: - return @"Critical"; - case BTLogLevelError: - return @"Error"; - case BTLogLevelWarning: - return @"Warning"; - case BTLogLevelInfo: - return @"Info"; - case BTLogLevelDebug: - return @"Debug"; - default: - return nil; - } -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTLogger_Internal.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTLogger_Internal.h deleted file mode 100755 index 1a625e35..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTLogger_Internal.h +++ /dev/null @@ -1,19 +0,0 @@ -#import - -#import "BTLogger.h" - -@interface BTLogger () - -- (void)log:(NSString *)format, ...; -- (void)critical:(NSString *)format, ...; -- (void)error:(NSString *)format, ...; -- (void)warning:(NSString *)format, ...; -- (void)info:(NSString *)format, ...; -- (void)debug:(NSString *)format, ...; - -/*! - @brief Custom block for handling log messages -*/ -@property (nonatomic, copy) void (^logBlock)(BTLogLevel level, NSString *message); - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTPaymentMethodNonce.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTPaymentMethodNonce.m deleted file mode 100755 index 8d5d4fbc..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTPaymentMethodNonce.m +++ /dev/null @@ -1,34 +0,0 @@ -#import "BTPaymentMethodNonce.h" - -@interface BTPaymentMethodNonce () -@property (nonatomic, copy, readwrite) NSString *nonce; -@property (nonatomic, copy, readwrite) NSString *localizedDescription; -@property (nonatomic, copy, readwrite) NSString *type; -@property (nonatomic, readwrite, assign) BOOL isDefault; -@end - -@implementation BTPaymentMethodNonce - -- (instancetype)initWithNonce:(NSString *)nonce localizedDescription:(NSString *)description type:(NSString *)type { - if (!nonce) return nil; - - if (self = [super init]) { - self.nonce = nonce; - self.localizedDescription = description; - self.type = type; - } - return self; -} - -- (nullable instancetype)initWithNonce:(NSString *)nonce localizedDescription:(nullable NSString *)description { - return [self initWithNonce:nonce localizedDescription:description type:@"Unknown"]; -} - -- (nullable instancetype)initWithNonce:(NSString *)nonce localizedDescription:(NSString *)description type:(nonnull NSString *)type isDefault:(BOOL)isDefault { - if (self = [self initWithNonce:nonce localizedDescription:description type:type]) { - _isDefault = isDefault; - } - return self; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTPaymentMethodNonceParser.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTPaymentMethodNonceParser.m deleted file mode 100755 index 64f5c7e8..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTPaymentMethodNonceParser.m +++ /dev/null @@ -1,61 +0,0 @@ -#import "BTPaymentMethodNonce.h" -#import "BTPaymentMethodNonceParser.h" - -@interface BTPaymentMethodNonceParser () - -/// Dictionary of JSON parsing blocks keyed by types as strings. The blocks have the following type: -/// -/// `BTPaymentMethodNonce *(^)(NSDictionary *json)` -@property (nonatomic, strong) NSMutableDictionary *JSONParsingBlocks; - -@end - -@implementation BTPaymentMethodNonceParser - -+ (instancetype)sharedParser { - static BTPaymentMethodNonceParser *sharedParser; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - sharedParser = [[BTPaymentMethodNonceParser alloc] init]; - }); - return sharedParser; -} - -- (NSMutableDictionary *)JSONParsingBlocks { - if (!_JSONParsingBlocks) { - _JSONParsingBlocks = [NSMutableDictionary dictionary]; - } - return _JSONParsingBlocks; -} - -- (BOOL)isTypeAvailable:(NSString *)type { - return self.JSONParsingBlocks[type] != nil; -} - -- (NSArray *)allTypes { - return self.JSONParsingBlocks.allKeys; -} - -- (void)registerType:(NSString *)type withParsingBlock:(BTPaymentMethodNonce *(^)(BTJSON *))jsonParsingBlock { - if (jsonParsingBlock) { - self.JSONParsingBlocks[type] = [jsonParsingBlock copy]; - } -} - -- (BTPaymentMethodNonce *)parseJSON:(BTJSON *)json withParsingBlockForType:(NSString *)type { - BTPaymentMethodNonce *(^block)(BTJSON *) = self.JSONParsingBlocks[type]; - if (!json) { - return nil; - } - if (block) { - return block(json); - } - // Unregistered types should fall back to parsing basic nonce and description from JSON - if (![json[@"nonce"] isString]) return nil; - return [[BTPaymentMethodNonce alloc] initWithNonce:[json[@"nonce"] asString] - localizedDescription:[json[@"description"] asString] - type:@"Unknown" - isDefault:[json[@"default"] isTrue]]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTPostalAddress.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTPostalAddress.m deleted file mode 100755 index 25a3121e..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTPostalAddress.m +++ /dev/null @@ -1,24 +0,0 @@ -#import "BTPostalAddress.h" - -@implementation BTPostalAddress - -// Property names follow the `Braintree_Address` convention as documented at: -// https://developers.braintreepayments.com/ios+php/reference/response/address - -- (id)copyWithZone:(__unused NSZone *)zone { - BTPostalAddress *address = [[BTPostalAddress alloc] init]; - address.recipientName = self.recipientName; - address.streetAddress = self.streetAddress; - address.extendedAddress = self.extendedAddress; - address.locality = self.locality; - address.countryCodeAlpha2 = self.countryCodeAlpha2; - address.postalCode = self.postalCode; - address.region = self.region; - return address; -} - -- (NSString *)debugDescription { - return [NSString stringWithFormat:@"<%@:%p \"%@\" %@, %@, %@, %@, %@ %@ %@>", NSStringFromClass([self class]), self, [self description], self.recipientName, self.streetAddress, self.extendedAddress, self.locality, self.region, self.postalCode, self.countryCodeAlpha2]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTTokenizationService.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTTokenizationService.m deleted file mode 100755 index d1f5a192..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTTokenizationService.m +++ /dev/null @@ -1,74 +0,0 @@ -#import "BTTokenizationService.h" - -NSString * const BTTokenizationServiceErrorDomain = @"com.braintreepayments.BTTokenizationServiceErrorDomain"; -NSString * const BTTokenizationServiceViewPresentingDelegateOption = @"viewControllerPresentingDelegate"; -NSString * const BTTokenizationServiceAppSwitchDelegateOption = @"BTTokenizationServiceAppSwitchDelegateOption"; -NSString * const BTTokenizationServicePayPalScopesOption = @"BTPaymentRequest.additionalPayPalScopes"; -NSString * const BTTokenizationServiceAmountOption = @"BTTokenizationServiceAmountOption"; -NSString * const BTTokenizationServiceNonceOption = @"BTTokenizationServiceNonceOption"; - -@interface BTTokenizationService () -/// Dictionary of tokenization blocks keyed by types as strings. The blocks have the following type: -/// -/// `void (^)(BTAPIClient * _Nonnull, NSDictionary * _Nullable, void (^ _Nonnull)(BTPaymentMethodNonce * _Nullable, NSError * _Nullable))` -@property (nonatomic, strong) NSMutableDictionary *tokenizationBlocks; -@end - -@implementation BTTokenizationService - -+ (instancetype)sharedService { - static BTTokenizationService *sharedService; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - sharedService = [[BTTokenizationService alloc] init]; - }); - return sharedService; -} - -- (NSMutableDictionary *)tokenizationBlocks { - if (!_tokenizationBlocks) { - _tokenizationBlocks = [NSMutableDictionary dictionary]; - } - return _tokenizationBlocks; -} - -- (void)registerType:(NSString *)type withTokenizationBlock:(void (^)(BTAPIClient * _Nonnull, NSDictionary * _Nullable, void (^ _Nonnull)(BTPaymentMethodNonce * _Nullable, NSError * _Nullable)))tokenizationBlock -{ - self.tokenizationBlocks[type] = [tokenizationBlock copy]; -} - -- (BOOL)isTypeAvailable:(NSString *)type { - return self.tokenizationBlocks[type] != nil; -} - -- (NSArray *)allTypes { - return [self.tokenizationBlocks allKeys]; -} - -- (void)tokenizeType:(NSString *)type - withAPIClient:(BTAPIClient *)apiClient - completion:(void (^)(BTPaymentMethodNonce * _Nullable, NSError * _Nullable))completion -{ - [self tokenizeType:type options:nil withAPIClient:apiClient completion:completion]; -} - -- (void)tokenizeType:(NSString *)type - options:(NSDictionary *)options - withAPIClient:(BTAPIClient *)apiClient - completion:(void (^)(BTPaymentMethodNonce * _Nullable, NSError * _Nullable))completion -{ - void(^block)(BTAPIClient *, NSDictionary *, void(^)(BTPaymentMethodNonce *, NSError *)) = self.tokenizationBlocks[type]; - if (block) { - block(apiClient, options ?: @{}, completion); - } else { - NSError *error = [NSError errorWithDomain:BTTokenizationServiceErrorDomain - code:BTTokenizationServiceErrorTypeNotRegistered - userInfo:@{NSLocalizedDescriptionKey: [NSString stringWithFormat:@"%@ processing not available", type], - NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"Type '%@' is not registered with BTTokenizationService", type], - NSLocalizedRecoverySuggestionErrorKey: [NSString stringWithFormat:@"Please link Braintree%@.framework to your app", type] - }]; - completion(nil, error); - } -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTURLUtils.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTURLUtils.h deleted file mode 100755 index 4930ff3c..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTURLUtils.h +++ /dev/null @@ -1,9 +0,0 @@ -#import - -@interface BTURLUtils : NSObject - -+ (NSURL *)URLfromURL:(NSURL *)URL withAppendedQueryDictionary:(NSDictionary *)dictionary; -+ (NSString *)queryStringWithDictionary:(NSDictionary *)dict; -+ (NSDictionary *)dictionaryForQueryString:(NSString *)queryString; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTURLUtils.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTURLUtils.m deleted file mode 100755 index 2d28fdd4..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/BTURLUtils.m +++ /dev/null @@ -1,87 +0,0 @@ -#import "BTURLUtils.h" - -@implementation BTURLUtils - -+ (NSURL *)URLfromURL:(NSURL *)URL withAppendedQueryDictionary:(NSDictionary *)dictionary { - if (!URL) { - return nil; - } - - NSURLComponents *urlComponents = [NSURLComponents componentsWithURL:URL resolvingAgainstBaseURL:NO]; - urlComponents.percentEncodedQuery = [self queryStringWithDictionary:dictionary]; - return urlComponents.URL; -} - -+ (NSString *)queryStringWithDictionary:(NSDictionary *)dict { - NSMutableString *queryString = [NSMutableString string]; - for (id key in dict) { - NSString *encodedKey = [self stringByURLEncodingAllCharactersInString:[key description]]; - id value = [dict objectForKey:key]; - if([value isKindOfClass:[NSArray class]]) { - for(id obj in value) { - [queryString appendFormat:@"%@%%5B%%5D=%@&", - encodedKey, - [self stringByURLEncodingAllCharactersInString:[obj description]] - ]; - } - } else if([value isKindOfClass:[NSDictionary class]]) { - for(id subkey in value) { - [queryString appendFormat:@"%@%%5B%@%%5D=%@&", - encodedKey, - [self stringByURLEncodingAllCharactersInString:[subkey description]], - [self stringByURLEncodingAllCharactersInString:[[value objectForKey:subkey] description]] - ]; - } - } else if([value isKindOfClass:[NSNull class]]) { - [queryString appendFormat:@"%@=&", encodedKey]; - } else { - [queryString appendFormat:@"%@=%@&", - encodedKey, - [self stringByURLEncodingAllCharactersInString:[value description]] - ]; - } - } - if([queryString length] > 0) { - [queryString deleteCharactersInRange:NSMakeRange([queryString length] - 1, 1)]; // remove trailing & - } - return queryString; -} - -+ (NSString *)stringByURLEncodingAllCharactersInString:(NSString *)aString { - // See Section 2.2. http://www.ietf.org/rfc/rfc2396.txt - NSString *reservedCharacters = @";/?:@&=+$,"; - - NSMutableCharacterSet *URLQueryPartAllowedCharacterSet = [[NSCharacterSet URLQueryAllowedCharacterSet] mutableCopy]; - [URLQueryPartAllowedCharacterSet removeCharactersInString:reservedCharacters]; - - return [aString stringByAddingPercentEncodingWithAllowedCharacters:URLQueryPartAllowedCharacterSet]; -} - -+ (NSDictionary *)dictionaryForQueryString:(NSString *)queryString { - NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; - NSArray *components = [queryString componentsSeparatedByString:@"&"]; - for (NSString *keyValueString in components) { - if ([keyValueString length] == 0) { - continue; - } - - NSArray *keyValueArray = [keyValueString componentsSeparatedByString:@"="]; - NSString *key = [self percentDecodedStringForString:keyValueArray[0]]; - if (!key) { - continue; - } - if (keyValueArray.count == 2) { - NSString *value = [self percentDecodedStringForString:keyValueArray[1]]; - parameters[key] = value; - } else { - parameters[key] = [NSNull null]; - } - } - return [NSDictionary dictionaryWithDictionary:parameters]; -} - -+ (NSString *)percentDecodedStringForString:(NSString *)string { - return [[string stringByReplacingOccurrencesOfString:@"+" withString:@" "] stringByRemovingPercentEncoding]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Braintree-Version.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Braintree-Version.h deleted file mode 100755 index ba9afb86..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Braintree-Version.h +++ /dev/null @@ -1 +0,0 @@ -#define BRAINTREE_VERSION (@"4.8.4") diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Info.plist b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Info.plist deleted file mode 100755 index d0786bc0..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 4.8.4 - CFBundleSignature - ???? - CFBundleVersion - 4.8.4 - NSPrincipalClass - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTAPIClient.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTAPIClient.h deleted file mode 100755 index 306e7db4..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTAPIClient.h +++ /dev/null @@ -1,112 +0,0 @@ -#import -#import "BTClientMetadata.h" -#import "BTConfiguration.h" -#import "BTJSON.h" - -@class BTPaymentMethodNonce; - -NS_ASSUME_NONNULL_BEGIN - -extern NSString *const BTAPIClientErrorDomain; - -typedef NS_ENUM(NSInteger, BTAPIClientErrorType) { - BTAPIClientErrorTypeUnknown = 0, - - /// Configuration fetch failed - BTAPIClientErrorTypeConfigurationUnavailable, - - /// The authorization provided to the API client is insufficient - BTAPIClientErrorTypeNotAuthorized, -}; - -/*! - @class BTAPIClient - @brief This class acts as the entry point for accessing the Braintree APIs via common HTTP methods performed on API endpoints. - @discussion It also manages authentication via tokenization key and provides access to a merchant's gateway configuration. -*/ -@interface BTAPIClient : NSObject - -/*! - @brief Initialize a new API client. - - @param authorization Your tokenization key or client token. Passing an invalid value may return `nil`. - @return A Braintree API client, or `nil` if initialization failed. -*/ -- (nullable instancetype)initWithAuthorization:(NSString *)authorization; - -/*! - @brief Create a copy of an existing API client, but specify a new source and integration type. - @discussion This provides a way to override an API client's source and integration metadata, which - is captured and sent to Braintree as part of the analytics we track. -*/ -- (instancetype)copyWithSource:(BTClientMetadataSourceType)source - integration:(BTClientMetadataIntegrationType)integration; - -/*! - @brief Provides configuration data as a `BTJSON` object. - - @discussion The configuration data can be used by supported payment options to configure themselves - dynamically through the Control Panel. It also contains configuration options for the - Braintree SDK Core components. - - @note This method is asynchronous because it requires a network call to fetch the - configuration for a merchant account from Braintree servers. This configuration is - cached on subsequent calls for better performance. -*/ -- (void)fetchOrReturnRemoteConfiguration:(void (^)(BTConfiguration * _Nullable configuration, NSError * _Nullable error))completionBlock; - -/*! - @brief Fetches a customer's vaulted payment method nonces. - - @discussion Must be using client token with a customer ID specified. - - @param completion Callback that returns an array of payment method nonces. - On success, `paymentMethodNonces` contains the nonces and `error` is `nil`. The default payment method nonce, if one exists, will be first. - On failure, `error` contains the error that occured and `paymentMethodNonces` is `nil`. -*/ -- (void)fetchPaymentMethodNonces:(void(^)(NSArray * _Nullable paymentMethodNonces, NSError * _Nullable error))completion; - -/*! - @brief Fetches a customer's vaulted payment method nonces. - - @discussion Must be using client token with a customer ID specified. - - @param defaultFirst Specifies whether to sorts the fetched payment method nonces with the default payment method or the most recently used payment method first - @param completion Callback that returns an array of payment method nonces -*/ -- (void)fetchPaymentMethodNonces:(BOOL)defaultFirst - completion:(void(^)(NSArray * _Nullable paymentMethodNonces, NSError * _Nullable error))completion; - -/*! - @brief Perfom an HTTP GET on a URL composed of the configured from environment and the given path. - - @param path The endpoint URI path. - @param parameters Optional set of query parameters to be encoded with the request. - @param completionBlock A block object to be executed when the request finishes. - On success, `body` and `response` will contain the JSON body response and the - HTTP response and `error` will be `nil`; on failure, `body` and `response` will be - `nil` and `error` will contain the error that occurred. -*/ -- (void)GET:(NSString *)path - parameters:(nullable NSDictionary *)parameters - completion:(nullable void(^)(BTJSON * _Nullable body, NSHTTPURLResponse * _Nullable response, NSError * _Nullable error))completionBlock; - -/*! - @brief Perfom an HTTP POST on a URL composed of the configured from environment and the given path. - - @param path The endpoint URI path. - @param parameters Optional set of parameters to be JSON encoded and sent in the body of the request. - @param completionBlock A block object to be executed when the request finishes. - On success, `body` and `response` will contain the JSON body response and the - HTTP response and `error` will be `nil`; on failure, `body` and `response` will be - `nil` and `error` will contain the error that occurred. -*/ -- (void)POST:(NSString *)path - parameters:(nullable NSDictionary *)parameters - completion:(nullable void(^)(BTJSON * _Nullable body, NSHTTPURLResponse * _Nullable response, NSError * _Nullable error))completionBlock; - -- (instancetype)init __attribute__((unavailable("Use initWithAuthorization: instead."))); - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTAppSwitch.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTAppSwitch.h deleted file mode 100755 index e424b55e..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTAppSwitch.h +++ /dev/null @@ -1,171 +0,0 @@ -#import - -@protocol BTAppSwitchHandler; - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark - BTAppSwitch - -/*! - @class BTAppSwitch - @brief Handles return URLs when returning from app switch and routes the return URL to the correct app switch handler class. - @discussion `returnURLScheme` must contain your app's registered URL Type that starts with the app's bundle - ID. When your app returns from app switch, the app delegate should call `handleOpenURL:sourceApplication:` -*/ -@interface BTAppSwitch : NSObject - -/*! - @brief The URL scheme to return to this app after switching to another app. - - @discussion This URL scheme must be registered as a URL Type in the app's info.plist, and it must start with the app's bundle ID. -*/ -@property (nonatomic, copy) NSString *returnURLScheme; - -/*! - @brief The singleton instance -*/ -+ (instancetype)sharedInstance; - -/*! - @brief Sets the return URL scheme for your app. - - @discussion This must be configured if your app integrates a payment option that may switch to either - Mobile Safari or to another app to finish the payment authorization workflow. - - @param returnURLScheme The return URL scheme -*/ -+ (void)setReturnURLScheme:(NSString *)returnURLScheme; - -/*! - @brief Handles a return from app switch - - @param url The URL that was opened to return to your app - @param sourceApplication The source app that requested the launch of your app - @return `YES` if the app switch successfully handled the URL, or `NO` if the attempt to handle the URL failed. -*/ -+ (BOOL)handleOpenURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication; - -/*! - @brief Handles a return from app switch - - @param url The URL that was opened to return to your app - @param options The options dictionary provided by `application:openURL:options:` - @return `YES` if the app switch successfully handled the URL, or `NO` if the attempt to handle the URL failed. -*/ -+ (BOOL)handleOpenURL:(NSURL *)url options:(NSDictionary *)options; - -/*! - @brief Registers a class that knows how to handle a return from app switch -*/ -- (void)registerAppSwitchHandler:(Class)handler; - -/*! - @brief Unregisters a class that knows how to handle a return from app switch -*/ -- (void)unregisterAppSwitchHandler:(Class)handler; - -- (BOOL)handleOpenURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication; - -@end - -#pragma mark - BTAppSwitchDelegate - -extern NSString * const BTAppSwitchWillSwitchNotification; -extern NSString * const BTAppSwitchDidSwitchNotification; -extern NSString * const BTAppSwitchWillProcessPaymentInfoNotification; -extern NSString * const BTAppSwitchNotificationTargetKey; - -/*! - @brief Specifies the destination of an app switch -*/ -typedef NS_ENUM(NSInteger, BTAppSwitchTarget) { - BTAppSwitchTargetUnknown = 0, - /// Native app - BTAppSwitchTargetNativeApp, - /// Browser (i.e. Mobile Safari) - BTAppSwitchTargetWebBrowser, -}; - -/*! - @brief Protocol for receiving payment lifecycle messages from a payment option that may initiate an app or browser switch event to authorize payments. -*/ -@protocol BTAppSwitchDelegate - -/*! - @brief The app switcher will perform an app switch in order to obtain user payment authorization. - - @discussion Your implementation of this method may set your app to the state - it should be in if the user manually app-switches back to your app. - For example, re-enable any controls that are disabled. - - @param appSwitcher The app switcher -*/ -- (void)appSwitcherWillPerformAppSwitch:(id)appSwitcher; - -/*! - @brief Delegates receive this message when the app switcher has successfully performed an app switch. - - @discussion You may use this hook to prepare your UI for app switch return. Keep in mind that - users may manually switch back to your app via the iOS task manager. - - @note You may also hook into the app switch lifecycle via UIApplicationWillResignActiveNotification. - - @param appSwitcher The app switcher instance performing user authentication - @param target The destination that was actually used for this app switch -*/ -- (void)appSwitcher:(id)appSwitcher didPerformSwitchToTarget:(BTAppSwitchTarget)target; - -/*! - @brief The app switcher has obtained user payment details and/or user authorization and will process the results. - - @discussion This typically indicates asynchronous network activity. - When you receive this message, your UI should indicate activity. - - In the case of an app switch, this message indicates that the user has returned to this app; - this is usually after handleAppSwitchReturnURL: is called in your UIApplicationDelegate. - - @note You may also hook into the app switch lifecycle via UIApplicationWillResignActiveNotification. - - @param appSwitcher The app switcher -*/ -- (void)appSwitcherWillProcessPaymentInfo:(id)appSwitcher; - -@end - -#pragma mark - BTAppSwitchHandler protocol - -/*! - @protocol BTAppSwitchHandler - @brief A protocol for handling the return from switching out of an app to gather payment information. - @note The app may switch out to Mobile Safari or to a native app. -*/ -@protocol BTAppSwitchHandler - -@required - -/*! - @brief Determine whether the app switch return URL can be handled. - - @param url the URL you receive in `application:openURL:sourceApplication:annotation` when returning to your app - @param sourceApplication The source application you receive in `application:openURL:sourceApplication:annotation` - @return `YES` when the object can handle returning from the application with a URL -*/ -+ (BOOL)canHandleAppSwitchReturnURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication; - -/*! - @brief Pass control back to `BTPayPalDriver` after returning from app or browser switch. - - @param url The URL you receive in `application:openURL:sourceApplication:annotation` -*/ -+ (void)handleAppSwitchReturnURL:(NSURL *)url; - -@optional - -/*! - @brief Indicates whether an iOS app is installed and available for app switch. -*/ -- (BOOL)isiOSAppAvailableForAppSwitch; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTClientMetadata.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTClientMetadata.h deleted file mode 100755 index 81fbcc26..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTClientMetadata.h +++ /dev/null @@ -1,60 +0,0 @@ -#import - -typedef NS_ENUM(NSInteger, BTClientMetadataSourceType) { - BTClientMetadataSourceUnknown = 0, - BTClientMetadataSourcePayPalApp, - BTClientMetadataSourcePayPalBrowser, - BTClientMetadataSourceVenmoApp, - BTClientMetadataSourceForm, -}; - -typedef NS_ENUM(NSInteger, BTClientMetadataIntegrationType) { - BTClientMetadataIntegrationCustom, - BTClientMetadataIntegrationDropIn, - BTClientMetadataIntegrationDropIn2, - BTClientMetadataIntegrationUnknown -}; - -NS_ASSUME_NONNULL_BEGIN - -/*! - @class BTClientMetadata - @brief Represents the metadata associated with a session for posting along with payment data during tokenization - - @discussion When a payment method is tokenized, the client api accepts parameters under - _meta which are used to determine where payment data originated. - - In general, this data may evolve and be used in different ways by different - integrations in a single app. For example, if both Apple Pay and drop in are - used. In this case, the source and integration may change over time, while - the sessionId should remain constant. To achieve this, users of this class - should use `mutableCopy` to create a new copy based on the existing session - and then update the object as needed. -*/ -@interface BTClientMetadata : NSObject - -@property (nonatomic, assign, readonly) BTClientMetadataIntegrationType integration; -@property (nonatomic, assign, readonly) BTClientMetadataSourceType source; - -/*! - @brief Auto-generated UUID -*/ -@property (nonatomic, copy, readonly) NSString *sessionId; - -#pragma mark Derived Properties - -@property (nonatomic, copy, readonly) NSString *integrationString; -@property (nonatomic, copy, readonly) NSString *sourceString; -@property (nonatomic, strong, readonly) NSDictionary *parameters; - -@end - -@interface BTMutableClientMetadata : BTClientMetadata - -- (void)setIntegration:(BTClientMetadataIntegrationType)integration; -- (void)setSource:(BTClientMetadataSourceType)source; -- (void)setSessionId:(NSString *)sessionId; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTClientToken.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTClientToken.h deleted file mode 100755 index ddf3da2c..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTClientToken.h +++ /dev/null @@ -1,50 +0,0 @@ -#import -#import "BTJSON.h" - -NS_ASSUME_NONNULL_BEGIN - -extern NSString * const BTClientTokenKeyVersion; -extern NSString * const BTClientTokenErrorDomain; -extern NSString * const BTClientTokenKeyAuthorizationFingerprint; -extern NSString * const BTClientTokenKeyConfigURL; - -typedef NS_ENUM(NSInteger, BTClientTokenError) { - BTClientTokenErrorUnknown = 0, - BTClientTokenErrorInvalid, - BTClientTokenErrorUnsupportedVersion, -}; - -@interface BTClientToken : NSObject - -/*! - @brief The client token as a BTJSON object -*/ -@property (nonatomic, readonly, strong) BTJSON *json; - -/*! - @brief The extracted authorization fingerprint -*/ -@property (nonatomic, readonly, copy) NSString *authorizationFingerprint; - -/*! - @brief The extracted configURL -*/ -@property (nonatomic, readonly, strong) NSURL *configURL; - -/*! - @brief The original string used to initialize this instance -*/ -@property (nonatomic, readonly, copy) NSString *originalValue; - -#pragma mark - Initializers - -/*! - @brief Initialize a client token with a client token string generated by a Braintree Server Library. -*/ -- (nullable instancetype)initWithClientToken:(NSString *)clientToken error:(NSError **)error NS_DESIGNATED_INITIALIZER; - -- (instancetype)init __attribute__((unavailable("Please use initWithClientToken:error: instead."))); - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTConfiguration.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTConfiguration.h deleted file mode 100755 index a6189165..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTConfiguration.h +++ /dev/null @@ -1,31 +0,0 @@ -#import -#import "BTJSON.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface BTConfiguration : NSObject - -- (instancetype)initWithJSON:(BTJSON *)json NS_DESIGNATED_INITIALIZER; - -/*! - @brief The merchant account's configuration as a `BTJSON` object -*/ -@property (nonatomic, readonly, strong) BTJSON *json; - -#pragma mark - Undesignated initializers (do not use) - -- (instancetype)init __attribute__((unavailable("Please use initWithJSON: instead."))); - -/*! - @brief Returns true if the corresponding beta flag is set, otherwise returns false -*/ -+ (BOOL)isBetaEnabledPaymentOption:(NSString*)paymentOption DEPRECATED_MSG_ATTRIBUTE("Pay with Venmo is no longer in beta"); - -/*! - @brief Set a corresponding beta flag -*/ -+ (void)setBetaPaymentOption:(NSString*)paymentOption isEnabled:(BOOL)isEnabled DEPRECATED_MSG_ATTRIBUTE("Pay with Venmo is no longer in beta"); - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTEnums.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTEnums.h deleted file mode 100755 index 33e4fe78..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTEnums.h +++ /dev/null @@ -1,18 +0,0 @@ -/*! - @brief Card type - */ -typedef NS_ENUM(NSInteger, BTCardNetwork) { - BTCardNetworkUnknown = 0, - BTCardNetworkAMEX, - BTCardNetworkDinersClub, - BTCardNetworkDiscover, - BTCardNetworkMasterCard, - BTCardNetworkVisa, - BTCardNetworkJCB, - BTCardNetworkLaser, - BTCardNetworkMaestro, - BTCardNetworkUnionPay, - BTCardNetworkSolo, - BTCardNetworkSwitch, - BTCardNetworkUKMaestro, -}; diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTErrors.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTErrors.h deleted file mode 100755 index 5834862d..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTErrors.h +++ /dev/null @@ -1,8 +0,0 @@ -#import - -#pragma mark NSError userInfo Keys - -/*! - @brief NSError userInfo key for validation errors. -*/ -extern NSString * _Nonnull const BTCustomerInputBraintreeValidationErrorsKey; diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTHTTPErrors.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTHTTPErrors.h deleted file mode 100755 index 953645d2..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTHTTPErrors.h +++ /dev/null @@ -1,34 +0,0 @@ -#import - -/*! - @brief The error domain for BTHTTP errors -*/ -extern NSString * const BTHTTPErrorDomain; - -/*! - @brief Key for userInfo dictionary that contains the NSHTTPURLResponse from server when it returns an HTTP error -*/ -extern NSString * const BTHTTPURLResponseKey; - -/*! - @brief Key for userInfo dictionary that contains the BTJSON body of the HTTP error response -*/ -extern NSString * const BTHTTPJSONResponseBodyKey; - -/*! - @brief BTHTTP error codes -*/ -typedef NS_ENUM(NSInteger, BTHTTPErrorCode) { - /// Unknown error (reserved) - BTHTTPErrorCodeUnknown = 0, - /// The response had a Content-Type header that is not supported - BTHTTPErrorCodeResponseContentTypeNotAcceptable, - /// The response was a 4xx error, e.g. 422, indicating a problem with the client's request - BTHTTPErrorCodeClientError, - /// The response was a 403 server error - BTHTTPErrorCodeServerError, - /// The BTHTTP instance was missing a base URL - BTHTTPErrorCodeMissingBaseURL, - /// The response was a 429, indicating a rate limiting error - BTHTTPErrorCodeRateLimitError -}; diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTJSON.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTJSON.h deleted file mode 100755 index e8e58965..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTJSON.h +++ /dev/null @@ -1,127 +0,0 @@ -#import - -NS_ASSUME_NONNULL_BEGIN - -extern NSString * const BTJSONErrorDomain; - -typedef NS_ENUM(NSInteger, BTJSONErrorCode) { - BTJSONErrorValueUnknown = 0, - BTJSONErrorValueInvalid = 1, - BTJSONErrorAccessInvalid = 2, -}; - -/*! - @brief A type-safe wrapper around JSON - - @see http://www.json.org/ - - @discussion The primary goal of this class is to two-fold: (1) prevent bugs by staying true to JSON (json.org) - rather than interpreting it in mysterious ways; (2) prevent bugs by making JSON interpretation - as un-surprising as possible. - - Most notably, type casting occurs via the as* nullable methods; errors are deferred and can be checked explicitly using isError and asError. - - @code - ## Example Data: - { - "foo": "bar", - "baz": [1, 2, 3] - } - - ## Example Usage: - - let json : BTJSON = BTJSON(data:data); - json.isError // false - json.isObject // true - json.isNumber // false - json.asObject // self - json["foo"] // JSON(@"bar") - json["foo"].isString // true - json["foo"].asString // @"bar" - json["baz"].asString // null - json["baz"]["quux"].isError // true - json["baz"]["quux"].asError // NSError(domain: BTJSONErrorDomain, code: BTJSONErrorCodeTypeInvalid) - json["baz"][0].asError // null - json["baz"][0].asInteger // - json["random"]["nested"]["things"][3].isError // true - - let json : BTJSON = BTJSON() // json.asJson => {} - json["foo"][0] = "bar" // json.asJSON => { "foo": ["bar"] } - json["baz"] = [ 1, 2, 3 ] // json.asJSON => { "foo": ["bar"], "baz": [1,2,3] } - json["quux"] = NSSet() // json.isError => true, json.asJSON => throws NSError(domain: BTJSONErrorDomain, code: BTJSONErrorInvalidData) - @endcode -*/ -@interface BTJSON : NSObject - -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -- (instancetype)initWithValue:(id)value; - -- (instancetype)initWithData:(NSData *)data; - -/// @name Subscripting - -/*! - @brief Indexes into the JSON as if the current value is an object - - @discussion Notably, this method will always return successfully; however, if the value is not an object, the JSON will wrap an error. -*/ -- (id)objectForKeyedSubscript:(NSString *)key; - -/*! - @brief Indexes into the JSON as if the current value is an array - - @discussion Notably, this method will always return successfully; however, if the value is not an array, the JSON will wrap an error. -*/ -- (BTJSON *)objectAtIndexedSubscript:(NSUInteger)idx; - -/// @name Validity Checks - -@property (nonatomic, assign, readonly) BOOL isError; - -- (nullable NSError *)asError; - -/// @name Generating JSON - -- (nullable NSData *)asJSONAndReturnError:(NSError **)error; -- (nullable NSString *)asPrettyJSONAndReturnError:(NSError **)error; - -/// @name JSON Type Casts - -- (nullable NSString *)asString; - -- (nullable NSArray *)asArray; - -- (nullable NSDecimalNumber *)asNumber; - -/// @name JSON Extension Type Casts - -- (nullable NSURL *)asURL; - -- (nullable NSArray *)asStringArray; - -- (nullable NSDictionary *)asDictionary; - -- (NSInteger)asIntegerOrZero; - -- (NSInteger)asEnum:(NSDictionary *)mapping orDefault:(NSInteger)defaultValue; - -/// @name JSON Type Checks - -@property (nonatomic, assign, readonly) BOOL isString; - -@property (nonatomic, assign, readonly) BOOL isNumber; - -@property (nonatomic, assign, readonly) BOOL isArray; - -@property (nonatomic, assign, readonly) BOOL isObject; - -@property (nonatomic, assign, readonly) BOOL isTrue; - -@property (nonatomic, assign, readonly) BOOL isFalse; - -@property (nonatomic, assign, readonly) BOOL isNull; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTLogger.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTLogger.h deleted file mode 100755 index 88471a09..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTLogger.h +++ /dev/null @@ -1,42 +0,0 @@ -#import - -/*! - @brief Braintree SDK Logging Levels -*/ -typedef NS_ENUM(NSUInteger, BTLogLevel) { - - /// Suppress all log output - BTLogLevelNone = 0, - - /// Only log critical issues (e.g. irrecoverable errors) - BTLogLevelCritical = 1, - - /// Log errors (e.g. expected or recoverable errors) - BTLogLevelError = 2, - - /// Log warnings (e.g. use of pre-release features) - BTLogLevelWarning = 3, - - /// Log basic information (e.g. state changes, network activity) - BTLogLevelInfo = 4, - - /// Log debugging statements (anything and everything) - BTLogLevelDebug = 5 -}; - -/*! - @brief Braintree leveled logger - */ -@interface BTLogger : NSObject - -/*! - @brief The logger singleton used by the Braintree SDK -*/ -+ (instancetype)sharedLogger; - -/*! - @brief The current log level, with default value BTLogLevelInfo -*/ -@property (nonatomic, assign) BTLogLevel level; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTPaymentMethodNonce.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTPaymentMethodNonce.h deleted file mode 100755 index b9ba30d4..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTPaymentMethodNonce.h +++ /dev/null @@ -1,71 +0,0 @@ -#import - -NS_ASSUME_NONNULL_BEGIN - -/*! - @class BTPaymentMethodNonce - @brief BTPaymentMethodNonce is for generic tokenized payment information. - - @discussion For example, if a customer's vaulted payment methods contains a type that's not recognized or supported by the - Braintree SDK or the client-side integration (e.g. the vault contains a PayPal account but the client-side - integration does not include the PayPal component), this type can act as a fallback. - - The payment method nonce is a public token that acts as a placeholder for sensitive payments data that - has been uploaded to Braintree for subsequent processing. The nonce is safe to access on the client and can be - used on your server to reference the data in Braintree operations, such as Transaction.sale. -*/ -@interface BTPaymentMethodNonce : NSObject - -/*! - @brief Initialize a new Payment Method Nonce. - - @param nonce A transactable payment method nonce. - @param description A human-readable description. - @param type A string identifying the type of the payment method. - @return A Payment Method Nonce, or `nil` if nonce is nil. -*/ -- (nullable instancetype)initWithNonce:(NSString *)nonce localizedDescription:(nullable NSString *)description type:(NSString *)type; - -/*! - @brief Initialize a new Payment Method Nonce. - - @param nonce A transactable payment method nonce. - @param description A human-readable description. - @return A Payment Method Nonce, or `nil` if nonce is nil. -*/ -- (nullable instancetype)initWithNonce:(NSString *)nonce localizedDescription:(nullable NSString *)description; - -/*! - @brief Initialize a new Payment Method Nonce. - - @param nonce A transactable payment method nonce. - @param description A human-readable description. - @param type A string identifying the type of the payment method. - @param isDefault A boolean indicating whether this is a default payment method. - @return A Payment Method Nonce, or `nil` if nonce is nil. -*/ -- (nullable instancetype)initWithNonce:(NSString *)nonce localizedDescription:(NSString *)description type:(nonnull NSString *)type isDefault:(BOOL)isDefault; - -/*! - @brief The one-time use payment method nonce -*/ -@property (nonatomic, readonly, copy) NSString *nonce; - -/*! - @brief A localized description of the payment info -*/ -@property (nonatomic, readonly, copy) NSString *localizedDescription; - -/*! - @brief The type of the tokenized data, e.g. PayPal, Venmo, MasterCard, Visa, Amex -*/ -@property (nonatomic, readonly, copy) NSString *type; - -/*! - @brief True if this nonce is the customer's default payment method, otherwise false. -*/ -@property (nonatomic, readonly, assign) BOOL isDefault; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTPaymentMethodNonceParser.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTPaymentMethodNonceParser.h deleted file mode 100755 index 2e6a7fbb..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTPaymentMethodNonceParser.h +++ /dev/null @@ -1,59 +0,0 @@ -#import "BTJSON.h" -#import "BTPaymentMethodNonce.h" -#import - -NS_ASSUME_NONNULL_BEGIN - -/*! - @class BTPaymentMethodNonceParser - @brief A JSON parser that parses `BTJSON` into concrete `BTPaymentMethodNonce` objects. It supports registration of parsers at runtime. - - @discussion `BTPaymentMethodNonceParser` provides access to JSON parsing for different payment options - without introducing compile-time dependencies on payment option frameworks and their symbols. -*/ -@interface BTPaymentMethodNonceParser : NSObject - -/*! - @brief The singleton instance -*/ -+ (instancetype)sharedParser; - -/*! - @brief An array of the tokenization types currently registered -*/ -@property (nonatomic, readonly, strong) NSArray *allTypes; - -/*! - @brief Indicates whether a tokenization type is currently registered - - @param type The tokenization type string -*/ -- (BOOL)isTypeAvailable:(NSString *)type; - -/*! - @brief Registers a parsing block for a tokenization type. - - @param type The tokenization type string - @param jsonParsingBlock The block to execute when `parseJSON:type:` is called for the tokenization type. - This block should return a `BTPaymentMethodNonce` object, or `nil` if the JSON cannot be parsed. -*/ -- (void)registerType:(NSString *)type withParsingBlock:(BTPaymentMethodNonce * _Nullable (^)(BTJSON *json))jsonParsingBlock; - -/*! - @brief Parses tokenized payment information that has been serialized to JSON, and returns a `BTPaymentMethodNonce` object. - - @discussion The `BTPaymentMethodNonce` object is created by the JSON parsing block that has been registered for the tokenization - type. - - If the `type` has not been registered, this method will attempt to read the nonce from the JSON and return - a basic object; if it fails, it will return `nil`. - - @param json The tokenized payment info, serialized to JSON - @param type The registered type of the parsing block to use - @return A `BTPaymentMethodNonce` object, or `nil` if the tokenized payment info JSON does not contain a nonce -*/ -- (nullable BTPaymentMethodNonce *)parseJSON:(BTJSON *)json withParsingBlockForType:(NSString *)type; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTPostalAddress.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTPostalAddress.h deleted file mode 100755 index dcf3a90d..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTPostalAddress.h +++ /dev/null @@ -1,44 +0,0 @@ -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface BTPostalAddress : NSObject - -/*! - @brief Optional. Recipient name for shipping address. -*/ -@property (nonatomic, nullable, copy) NSString *recipientName; - -/*! - @brief Line 1 of the Address (eg. number, street, etc). -*/ -@property (nonatomic, copy) NSString *streetAddress; - -/*! - @brief Optional line 2 of the Address (eg. suite, apt #, etc.). -*/ -@property (nonatomic, nullable, copy) NSString *extendedAddress; - -/*! - @brief City name -*/ -@property (nonatomic, copy) NSString *locality; - -/*! - @brief 2 letter country code. -*/ -@property (nonatomic, copy) NSString *countryCodeAlpha2; - -/*! - @brief Zip code or equivalent is usually required for countries that have them. For list of countries that do not have postal codes please refer to http://en.wikipedia.org/wiki/Postal_code. -*/ -@property (nonatomic, nullable, copy) NSString *postalCode; - -/*! - @brief 2 letter code for US states, and the equivalent for other countries. -*/ -@property (nonatomic, nullable, copy) NSString *region; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTTokenizationService.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTTokenizationService.h deleted file mode 100755 index d21d0d5f..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTTokenizationService.h +++ /dev/null @@ -1,76 +0,0 @@ -#import -#import "BTAPIClient.h" -#import "BTPaymentMethodNonce.h" - -NS_ASSUME_NONNULL_BEGIN - -extern NSString * const BTTokenizationServiceErrorDomain; -extern NSString * const BTTokenizationServiceAppSwitchDelegateOption; -extern NSString * const BTTokenizationServiceViewPresentingDelegateOption; -extern NSString * const BTTokenizationServicePayPalScopesOption; -extern NSString * const BTTokenizationServiceAmountOption; -extern NSString * const BTTokenizationServiceNonceOption; - -typedef NS_ENUM(NSInteger, BTTokenizationServiceError) { - BTTokenizationServiceErrorUnknown = 0, - BTTokenizationServiceErrorTypeNotRegistered, -}; - -/*! - @class BTTokenizationService - @brief A tokenization service that supports registration of tokenizers at runtime. - - @discussion `BTTokenizationService` provides access to tokenization services from payment options - (e.g. `BTPayPalDriver`) without introducing compile-time dependencies on the frameworks. -*/ -@interface BTTokenizationService : NSObject - -/*! - @brief The singleton instance of the tokenization service -*/ -+ (instancetype)sharedService; - -/*! - @brief Registers a block to execute for a given type when `tokenizeType:withAPIClient:completion:` or`tokenizeType:options:withAPIClient:completion:` are invoked. - - @param type A type string to identify the tokenization block. Providing a type that has already - been registered will overwrite the previously registered tokenization block. - @param tokenizationBlock The tokenization block to register for a type. -*/ -- (void)registerType:(NSString *)type withTokenizationBlock:(void(^)(BTAPIClient *apiClient, NSDictionary * _Nullable options, void(^)(BTPaymentMethodNonce * _Nullable paymentMethodNonce, NSError * _Nullable error)))tokenizationBlock; - -/*! - @brief Indicates whether a type has been registered with a valid tokenization block. -*/ -- (BOOL)isTypeAvailable:(NSString *)type; - -/*! - @brief Perform tokenization for the given type. This will execute the tokenization block that has been registered for the type. - - @param type The tokenization type to perform - @param apiClient The API client to use when performing tokenization. - @param completion The completion block to invoke when tokenization has completed. -*/ -- (void)tokenizeType:(NSString *)type - withAPIClient:(BTAPIClient *)apiClient - completion:(void(^)(BTPaymentMethodNonce * _Nullable paymentMethodNonce, NSError * _Nullable error))completion; - -/*! - @brief Perform tokenization for the given type. This will execute the tokenization block that has been registered for the type. - - @param type The tokenization type to perform - @param options A dictionary of data to use when invoking the tokenization block. This can be - used to pass data into a tokenization client/driver, e.g. credit card raw details. - @param apiClient The API client to use when performing tokenization. - @param completion The completion block to invoke when tokenization has completed. -*/ -- (void)tokenizeType:(NSString *)type - options:(nullable NSDictionary *)options - withAPIClient:(BTAPIClient *)apiClient - completion:(void(^)(BTPaymentMethodNonce * _Nullable paymentMethodNonce, NSError * _Nullable error))completion; - -@property (nonatomic, readonly, strong) NSArray *allTypes; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTViewControllerPresentingDelegate.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTViewControllerPresentingDelegate.h deleted file mode 100755 index 22206eed..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BTViewControllerPresentingDelegate.h +++ /dev/null @@ -1,34 +0,0 @@ -#import - -NS_ASSUME_NONNULL_BEGIN - -/*! - @brief Protocol for receiving payment lifecycle messages from a payment driver that requires presentation of a view controller to authorize a payment. -*/ -@protocol BTViewControllerPresentingDelegate - -/*! - @brief The payment driver requires presentation of a view controller in order to proceed. - - @discussion Your implementation should present the viewController modally, e.g. via - `presentViewController:animated:completion:` - - @param driver The payment driver - @param viewController The view controller to present -*/ -- (void)paymentDriver:(id)driver requestsPresentationOfViewController:(UIViewController *)viewController; - -/*! - @brief The payment driver requires dismissal of a view controller. - - @discussion Your implementation should dismiss the viewController, e.g. via - `dismissViewControllerAnimated:completion:` - - @param driver The payment driver - @param viewController The view controller to be dismissed -*/ -- (void)paymentDriver:(id)driver requestsDismissalOfViewController:(UIViewController *)viewController; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BraintreeCore.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BraintreeCore.h deleted file mode 100755 index 84a491c9..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeCore/Public/BraintreeCore.h +++ /dev/null @@ -1,28 +0,0 @@ -#import - -//! Project version number for BraintreeCore. -FOUNDATION_EXPORT double BraintreeCoreVersionNumber; - -//! Project version string for BraintreeCore. -FOUNDATION_EXPORT const unsigned char BraintreeCoreVersionString[]; - -#import "BTAPIClient.h" -#import "BTAppSwitch.h" -#import "BTClientMetadata.h" -#import "BTClientToken.h" -#import "BTConfiguration.h" -#import "BTEnums.h" -#import "BTErrors.h" -#import "BTHTTPErrors.h" -#import "BTJSON.h" -#import "BTLogger.h" -#import "BTPostalAddress.h" -#import "BTPaymentMethodNonce.h" -#import "BTPaymentMethodNonceParser.h" -#import "BTTokenizationService.h" -#import "BTPaymentMethodNonce.h" -#import "BTViewControllerPresentingDelegate.h" - -#ifndef __BT_AVAILABLE -#define __BT_AVAILABLE(class) NSClassFromString(class) != nil -#endif /*__BT_AVAILABLE*/ diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/BTDataCollector.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/BTDataCollector.m deleted file mode 100755 index c5427512..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/BTDataCollector.m +++ /dev/null @@ -1,276 +0,0 @@ -#import "BTConfiguration+DataCollector.h" -#import "BTDataCollector_Internal.h" -#import - -@interface BTDataCollector () -@property (nonatomic, assign) BTDataCollectorEnvironment environment; -@property (nonatomic, copy) NSString *fraudMerchantId; -@property (nonatomic, copy) BTAPIClient *apiClient; -@end - -@implementation BTDataCollector - -static NSString *BTDataCollectorSharedMerchantId = @"600000"; -static Class PayPalDataCollectorClass; - -NSString * const BTDataCollectorKountErrorDomain = @"com.braintreepayments.BTDataCollectorKountErrorDomain"; - -#pragma mark - Initialization and setup - -+ (void)load { - if (self == [BTDataCollector class]) { - PayPalDataCollectorClass = NSClassFromString(@"PPDataCollector"); - } -} - -- (instancetype)initWithAPIClient:(BTAPIClient *)apiClient { - if (self = [super init]) { - [self setUpKountWithDebugOn:NO]; - _apiClient = apiClient; - } - - return self; -} - -- (void)setUpKountWithDebugOn:(BOOL)debugLogging { - self.kount = [KDataCollector sharedCollector]; - self.kount.debug = debugLogging; - - CLAuthorizationStatus locationStatus = [CLLocationManager authorizationStatus]; - if ((locationStatus != kCLAuthorizationStatusAuthorizedWhenInUse && locationStatus != kCLAuthorizationStatusAuthorizedAlways) || ![CLLocationManager locationServicesEnabled]) { - self.kount.locationCollectorConfig = KLocationCollectorConfigSkip; - } -} - -#pragma mark - Accessors - -+ (void)setPayPalDataCollectorClass:(Class)payPalDataCollectorClass { - // +load will always set PayPalDataCollectorClass - if ([payPalDataCollectorClass isSubclassOfClass:NSClassFromString(@"PPDataCollector")]) { - PayPalDataCollectorClass = payPalDataCollectorClass; - } -} - -- (void)setCollectorUrl:(__unused NSString *)url { - // do nothing -} - -- (void)setCollectorEnvironment:(KEnvironment)environment { - self.kount.environment = environment; -} - -- (void)setFraudMerchantId:(NSString *)fraudMerchantId { - _fraudMerchantId = fraudMerchantId; - self.kount.merchantID = [fraudMerchantId integerValue]; -} - -#pragma mark - Public methods - -- (void)collectCardFraudData:(void (^)(NSString * _Nonnull))completion { - [self collectFraudDataForCard:YES forPayPal:NO completion:completion]; -} - -- (void)collectFraudData:(void (^)(NSString * _Nonnull))completion { - [self collectFraudDataForCard:YES forPayPal:YES completion:completion]; -} - -#pragma mark - Helper methods - -- (void)collectFraudDataForCard:(BOOL)includeCard forPayPal:(BOOL)includePayPal completion:(void (^)(NSString *deviceData))completion { - [self.apiClient fetchOrReturnRemoteConfiguration:^(BTConfiguration * _Nullable configuration, NSError * _Nullable __unused _) { - NSMutableDictionary *dataDictionary = [NSMutableDictionary new]; - - dispatch_group_t collectorDispatchGroup = dispatch_group_create(); - [self onCollectorStart]; - - if (configuration.isKountEnabled && includeCard) { - BTDataCollectorEnvironment btEnvironment = [self environmentFromString:[configuration.json[@"environment"] asString]]; - [self setCollectorEnvironment:[self collectorEnvironment:btEnvironment]]; - - NSString *merchantId = self.fraudMerchantId ?: [configuration kountMerchantId]; - self.kount.merchantID = [merchantId integerValue]; - - NSString *deviceSessionId = [self sessionId]; - dataDictionary[@"device_session_id"] = deviceSessionId; - dataDictionary[@"fraud_merchant_id"] = merchantId; - dispatch_group_enter(collectorDispatchGroup); - [self.kount collectForSession:deviceSessionId completion:^(__unused NSString * _Nonnull sessionID, __unused BOOL success, __unused NSError * _Nullable error) { - if (success) { - [self onCollectorSuccess]; - } else { - [self onCollectorError:error]; - } - dispatch_group_leave(collectorDispatchGroup); - }]; - } - - if (includePayPal) { - NSString *payPalClientMetadataId = [BTDataCollector generatePayPalClientMetadataId]; - if (payPalClientMetadataId) { - dataDictionary[@"correlation_id"] = payPalClientMetadataId; - } - } - - dispatch_group_notify(collectorDispatchGroup, dispatch_get_main_queue(), ^{ - NSError *error; - NSData *data = [NSJSONSerialization dataWithJSONObject:dataDictionary options:0 error:&error]; - // Defensive check: JSON serialization should never fail - if (!data) { - NSLog(@"ERROR: Failed to create deviceData string, error = %@", error); - [self onCollectorError:error]; - if (completion) { - completion(@""); - } - return; - } - NSString *deviceData = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; - - // If only PayPal fraud is being collected, immediately inform the delegate that collection has - // finished, since PayPal fraud does not allow us to know when it has officially finished collection. - if (!includeCard && includePayPal) { - [self onCollectorSuccess]; - } - - if (completion) { - completion(deviceData); - } - }); - }]; -} - -- (NSString *)collectFraudDataForCard:(BOOL)includeCard forPayPal:(BOOL)includePayPal -{ - [self onCollectorStart]; - NSMutableDictionary *dataDictionary = [NSMutableDictionary new]; - if (includeCard) { - NSString *deviceSessionId = [self sessionId]; - dataDictionary[@"device_session_id"] = deviceSessionId; - dataDictionary[@"fraud_merchant_id"] = self.fraudMerchantId; - - [self.kount collectForSession:deviceSessionId completion:^(__unused NSString * _Nonnull sessionID, BOOL success, NSError * _Nullable error) { - if (success) { - [self onCollectorSuccess]; - } else { - [self onCollectorError:error]; - } - }]; - } - - if (includePayPal) { - NSString *payPalClientMetadataId = [BTDataCollector generatePayPalClientMetadataId]; - if (payPalClientMetadataId) { - dataDictionary[@"correlation_id"] = payPalClientMetadataId; - } - } - - NSError *error; - NSData *data = [NSJSONSerialization dataWithJSONObject:dataDictionary options:0 error:&error]; - if (!data) { - NSLog(@"ERROR: Failed to create deviceData string, error = %@", error); - [self onCollectorError:error]; - return @""; - } - - // If only PayPal fraud is being collected, immediately inform the delegate that collection has - // finished, since PayPal fraud does not allow us to know when it has officially finished collection. - if (!includeCard && includePayPal) { - [self onCollectorSuccess]; - } - - return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; -} - -+ (NSString *)generatePayPalClientMetadataId { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wundeclared-selector" - if (PayPalDataCollectorClass && [PayPalDataCollectorClass respondsToSelector:@selector(generateClientMetadataID)]) { - return [PayPalDataCollectorClass performSelector:@selector(generateClientMetadataID)]; - } -#pragma clang diagnostic pop - - return nil; -} - -/// Generates a new session ID -- (NSString *)sessionId { - return [[[NSUUID UUID] UUIDString] stringByReplacingOccurrencesOfString:@"-" withString:@""]; -} - -- (BTDataCollectorEnvironment)environmentFromString:(NSString *)environment { - if ([environment isEqualToString:@"production"]) { - return BTDataCollectorEnvironmentProduction; - } else if ([environment isEqualToString:@"sandbox"]) { - return BTDataCollectorEnvironmentSandbox; - } else if ([environment isEqualToString:@"qa"]) { - return BTDataCollectorEnvironmentQA; - } else { - return BTDataCollectorEnvironmentDevelopment; - } -} - -- (KEnvironment)collectorEnvironment:(BTDataCollectorEnvironment)environment { - switch (environment) { - case BTDataCollectorEnvironmentProduction: - return KEnvironmentProduction; - default: - return KEnvironmentTest; - } -} - -#pragma mark DeviceCollectorSDKDelegate methods - -/// The collector has started. -- (void)onCollectorStart { - if ([self.delegate respondsToSelector:@selector(dataCollectorDidStart:)]) { - [self.delegate dataCollectorDidStart:self]; - } -} - -/// The collector finished successfully. -- (void)onCollectorSuccess { - if ([self.delegate respondsToSelector:@selector(dataCollectorDidComplete:)]) { - [self.delegate dataCollectorDidComplete:self]; - } -} - -/// An error occurred. -/// -/// @param error Triggering error if available -- (void)onCollectorError:(NSError *)error { - if ([self.delegate respondsToSelector:@selector(dataCollector:didFailWithError:)]) { - [self.delegate dataCollector:self didFailWithError:error]; - } -} - -#pragma mark - Deprecated methods - -- (instancetype)initWithEnvironment:(BTDataCollectorEnvironment)environment { - if (self = [super init]) { - [self setUpKountWithDebugOn:NO]; - [self setCollectorEnvironment:[self collectorEnvironment:environment]]; - [self setFraudMerchantId:BTDataCollectorSharedMerchantId]; - } - return self; -} - -+ (NSString *)payPalClientMetadataId { - return [BTDataCollector generatePayPalClientMetadataId]; -} - -/// At this time, this method only collects data with Kount. However, it is possible that in the future, -/// we will want to collect data (for card transactions) with PayPal as well. If this becomes the case, -/// we can modify this method to include a clientMetadataID without breaking the public interface. -- (NSString *)collectCardFraudData { - return [self collectFraudDataForCard:YES forPayPal:NO]; -} - -- (NSString *)collectPayPalClientMetadataId { - return [self collectFraudDataForCard:NO forPayPal:YES]; -} - -/// Similar to `collectCardFraudData` but with the addition of the payPalClientMetadataId, if available. -- (NSString *)collectFraudData { - return [self collectFraudDataForCard:YES forPayPal:YES]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/BTDataCollector_Internal.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/BTDataCollector_Internal.h deleted file mode 100755 index f95c022c..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/BTDataCollector_Internal.h +++ /dev/null @@ -1,16 +0,0 @@ -#import "BTDataCollector.h" -#import "KDataCollector.h" - -@interface BTDataCollector () - -/*! - @brief The Kount SDK device collector, exposed internally for testing -*/ -@property (nonatomic, strong, nonnull) KDataCollector *kount; - -/*! - @brief The `PPDataCollector` class, exposed internally for injecting test doubles for unit tests -*/ -+ (void)setPayPalDataCollectorClass:(nonnull Class)payPalDataCollectorClass; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Kount/KDataCollector.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Kount/KDataCollector.h deleted file mode 100755 index 0573b7e2..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Kount/KDataCollector.h +++ /dev/null @@ -1,103 +0,0 @@ -// -// KDataCollector.h -// Kount Data Collector SDK -// -// Copyright © 2016 Kount Inc. All rights reserved. -// - -#import - -// Error Codes -typedef NS_ENUM(NSInteger, KDataCollectorErrorCode) { - - KDataCollectorErrorCodeUnknown = 0, - - // A system error occurred - KDataCollectorErrorCodeNSError, - - // A required collector timed out - KDataCollectorErrorCodeTimeout, - - // A bad parameter was passed into the data collector - KDataCollectorErrorCodeBadParameter, - - // A network connection isn't available - KDataCollectorErrorCodeNoNetwork, - - // An error occurred while validating a response from the server - KDataCollectorErrorCodeResponseValidation, -}; - -NS_ASSUME_NONNULL_BEGIN - -extern NSString *const KDataCollectorErrorDomain; - -// Version of the Kount Data Collector SDK -extern NSString *const KDataCollectorVersion; - -// Configuration settings for location collection -typedef NS_ENUM(NSInteger, KLocationCollectorConfig) { - - // Request permission if not currently authorized (default) - KLocationCollectorConfigRequestPermission = 0, - - // Only collect if app already has location permissions - // (use in cases where requesting permission is done by the app itself) - KLocationCollectorConfigPassive, - - // Skip location collection - KLocationCollectorConfigSkip, -}; - -// Configuration settings Kount collection environment -typedef NS_ENUM(NSInteger, KEnvironment) { - - // Unknown Environment - KEnvironmentUnknown = 0, - - // Test Environment - KEnvironmentTest, - - // Production Environment - KEnvironmentProduction, -}; - -// KDataCollector enables you to collect device information for the given session -// -// First, configure the collector during the initialization of your application -// Second, call collectForSession when you start the payment checkout process -// -@interface KDataCollector : NSObject - -// Get the shared instance of the Data Collector -+ (KDataCollector *)sharedCollector; - -// -// Configuration -// - -// The Kount Merchant ID -@property NSInteger merchantID; -// The configuration of the location collector to determine if and how it goes about collection location -@property KLocationCollectorConfig locationCollectorConfig; -// Debug logging to the console -@property BOOL debug; -// Timeout in MS for the collection -@property NSInteger timeoutInMS; -// The Kount environment -@property KEnvironment environment; - -// -// Collection -// - -// Collect data for the session. -// -// @param sessionID A unique session ID that should match the sessionID for the payment transaction -// @param completionBlock This completion block will be called when the collection has completed or an error occurs. -- (void)collectForSession:(NSString *)sessionID completion:(nullable void (^)(NSString *_Nonnull sessionID, BOOL success, NSError *_Nullable error))completionBlock; - -NS_ASSUME_NONNULL_END - -@end - diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Kount/libDeviceCollectorLibrary.a b/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Kount/libDeviceCollectorLibrary.a deleted file mode 100755 index 3aa3bc9714b928f27e77218c84abba6f306fb39f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1374128 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
D(X67pY@*zUoN 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 z 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 z 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�u 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

UDNigM4aT|vA*R=Nfvn|WAQ{PgA({m19cpp3 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 RI@GFZ+w2;LAJ$;F{{!|3A&~$8 diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BTConfiguration+DataCollector.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BTConfiguration+DataCollector.h deleted file mode 100755 index 6077a184..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BTConfiguration+DataCollector.h +++ /dev/null @@ -1,19 +0,0 @@ -#if __has_include("BraintreeCore.h") -#import "BraintreeCore.h" -#else -#import -#endif - -@interface BTConfiguration (DataCollector) - -/*! - @brief Indicates whether Kount is enabled for the merchant account. -*/ -@property (nonatomic, readonly, assign) BOOL isKountEnabled; - -/*! - @brief Returns the Kount merchant id set in the Gateway -*/ -@property (nonatomic, readonly, assign) NSString *kountMerchantId; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BTConfiguration+DataCollector.m b/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BTConfiguration+DataCollector.m deleted file mode 100755 index c997c1c6..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BTConfiguration+DataCollector.m +++ /dev/null @@ -1,13 +0,0 @@ -#import "BTConfiguration+DataCollector.h" - -@implementation BTConfiguration (DataCollector) - -- (BOOL)isKountEnabled { - return [self.json[@"kount"][@"kountMerchantId"] isString]; -} - --(NSString *)kountMerchantId { - return [self.json[@"kount"][@"kountMerchantId"] asString]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BTDataCollector.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BTDataCollector.h deleted file mode 100755 index 5deda069..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BTDataCollector.h +++ /dev/null @@ -1,195 +0,0 @@ -#if __has_include("BraintreeCore.h") -#import "BraintreeCore.h" -#else -#import -#endif - -#import - -typedef NS_ENUM(NSInteger, BTDataCollectorEnvironment) { - BTDataCollectorEnvironmentDevelopment, - BTDataCollectorEnvironmentQA, - BTDataCollectorEnvironmentSandbox, - BTDataCollectorEnvironmentProduction -}; - -@protocol BTDataCollectorDelegate; - -NS_ASSUME_NONNULL_BEGIN - -extern NSString * const BTDataCollectorKountErrorDomain; - -/*! - @class BTDataCollector - @brief Braintree's advanced fraud protection solution -*/ -@interface BTDataCollector : NSObject - -/*! - @brief Set a BTDataCollectorDelegate to receive notifications about collector events. - @see BTDataCollectorDelegate protocol declaration -*/ -@property (nonatomic, weak) id delegate; - -/*! - @brief Initializes a `BTDataCollector` instance for an environment. - - @param environment The desired environment to target. This setting will determine which default collectorURL is used when collecting fraud data from the device. -*/ -- (instancetype)initWithEnvironment:(BTDataCollectorEnvironment)environment DEPRECATED_MSG_ATTRIBUTE("Use BTDataCollector initWithAPIClient: instead"); - -/*! - @brief Initializes a `BTDataCollector` instance with a BTAPIClient. - - @param apiClient The API client which can retrieve remote configuration for the data collector. -*/ -- (instancetype)initWithAPIClient:(BTAPIClient *)apiClient; - -/*! - @brief Collects device data using Kount and PayPal. - - @discussion This method collects device data using both Kount and PayPal. If you want to collect data for Kount, - use `-collectCardFraudData`. To collect data for PayPal, integrate PayPalDataCollector and use - `[PPDataCollector collectPayPalDeviceData]`. - - For lifecycle events such as a completion callback, use BTDataCollectorDelegate. Although you do not need - to wait for the completion callback before performing the transaction, the data will be most effective if you do. - Normal response time is less than 1 second, and it should never take more than 10 seconds. - - We recommend that you call this method as early as possible, e.g. at app launch. If that's too early, - calling it e.g. when the customer initiates checkout should also be fine. - - Store the return value as deviceData to use with debit/credit card transactions on your server, - e.g. with `Transaction.sale`. - - @param completion A completion block callback that returns a deviceData string that should be passed into server-side calls, such as `Transaction.sale`. This JSON serialized string contains the merchant ID, session ID, and the PayPal fraud ID (if PayPal is available). -*/ -- (void)collectFraudData:(void (^)(NSString *deviceData))completion; - -/*! - @brief Collects device data for Kount. - - @discussion This should be used when the user is paying with a card. - - For lifecycle events such as a completion callback, use BTDataCollectorDelegate. Although you do not need - to wait for the completion callback before performing the transaction, the data will be most effective if you do. - Normal response time is less than 1 second, and it should never take more than 10 seconds. - - We recommend that you call this method as early as possible, e.g. at app launch. If that's too early, - calling it e.g. when the customer initiates checkout should also be fine. - - @param completion A completion block callback that returns a deviceData string that should be passed in to server-side calls, such as `Transaction.sale` This JSON serialized string contains the merchant ID and session ID. -*/ -- (void)collectCardFraudData:(void (^)(NSString *deviceData))completion; - -#pragma mark - Direct Integrations - -/*! - @brief Set your fraud merchant id. - - @note If you do not call this method, a generic Braintree value will be used. - - @param fraudMerchantId The fraudMerchantId you have established with your Braintree account manager. -*/ -- (void)setFraudMerchantId:(NSString *)fraudMerchantId; - -#pragma mark - Deprecated - -/*! - @brief Set the URL that the Device Collector will use. - - @note If you do not call this method, a generic Braintree value will be used. - - @param url Full URL to device collector 302-redirect page -*/ -- (void)setCollectorUrl:(NSString *)url DEPRECATED_MSG_ATTRIBUTE("The collector URL is no longer used. The environment will be automatically chosen."); - -/*! - @brief Generates a new PayPal fraud ID if PayPal is integrated; otherwise returns `nil`. - - @note This returns a raw client metadata ID, which is not the correct format for device datawhen creating a transaction. Instead, use `[PPDataCollector collectPayPalDeviceData]`. - - @return a client metadata ID to send as a header -*/ -+ (nullable NSString *)payPalClientMetadataId DEPRECATED_MSG_ATTRIBUTE("Integrate PayPalDataCollector and use PPDataCollector +clientMetadataID instead."); - -/*! - @brief Collects device data for Kount. - - @discussion This should be used when the user is paying with a card. - - For lifecycle events such as a completion callback, use BTDataCollectorDelegate. Although you do not need - to wait for the completion callback before performing the transaction, the data will be most effective if you do. - Normal response time is less than 1 second, and it should never take more than 10 seconds. - - @return a deviceData string that should be passed into server-side calls, such as `Transaction.sale`. - This JSON serialized string contains the merchant ID and session ID. -*/ -- (NSString *)collectCardFraudData DEPRECATED_MSG_ATTRIBUTE("Use BTDataCollector -collectCardFraudData: instead"); - -/*! - @brief Collects device data for PayPal. - - @discussion This should be used when the user is paying with PayPal or Venmo only. - - @return a deviceData string that should be passed into server-side calls, such as `Transaction.sale`, - for PayPal transactions. This JSON serialized string contains a PayPal fraud ID. -*/ -- (NSString *)collectPayPalClientMetadataId DEPRECATED_MSG_ATTRIBUTE("Integrate PayPalDataCollector and use PPDataCollector +collectPayPalDeviceData instead."); - -/*! - @brief Collects device data using Kount and PayPal. - - @discussion This method collects device data using both Kount and PayPal. If you want to collect data for Kount, - use `-collectCardFraudData`. To collect data for PayPal, integrate PayPalDataCollector and use - `[PPDataCollector collectPayPalDeviceData]`. - - For lifecycle events such as a completion callback, use BTDataCollectorDelegate. Although you do not need - to wait for the completion callback before performing the transaction, the data will be most effective if you do. - Normal response time is less than 1 second, and it should never take more than 10 seconds. - - Store the return value as deviceData to use with debit/credit card transactions on your server, - e.g. with `Transaction.sale`. - - @return a deviceData string that should be passed into server-side calls, such as `Transaction.sale`. - This JSON serialized string contains the merchant ID, session ID, and - the PayPal fraud ID (if PayPal is available). -*/ -- (NSString *)collectFraudData DEPRECATED_MSG_ATTRIBUTE("Use BTDataCollector -collectFraudData: instead"); - -@end - -/*! - @brief Provides status updates from a BTDataCollector instance. At this time, updates will only be sent for card fraud data (from Kount). -*/ -@protocol BTDataCollectorDelegate - -/*! - @brief The collector finished successfully. - - @discussion Use this delegate method if, due to fraud, you want to wait - until collection completes before performing a transaction. - - This method is required because there's no reason to implement BTDataCollectorDelegate without this method. -*/ -- (void)dataCollectorDidComplete:(BTDataCollector *)dataCollector; - -@optional - -/*! - @brief The collector has started. -*/ -- (void)dataCollectorDidStart:(BTDataCollector *)dataCollector; - -/*! - @brief An error occurred. - - @param error Triggering error. If the error domain is BTDataCollectorKountErrorDomain, then the - errorCode is a Kount error code. See error.userInfo[NSLocalizedFailureReasonErrorKey] - for the cause of the failure. -*/ -- (void)dataCollector:(BTDataCollector *)dataCollector didFailWithError:(NSError *)error; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BraintreeDataCollector.h b/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BraintreeDataCollector.h deleted file mode 100755 index 74fb0754..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/Public/BraintreeDataCollector.h +++ /dev/null @@ -1,8 +0,0 @@ -#import - -FOUNDATION_EXPORT double BraintreeDataCollectorVersionNumber; - -FOUNDATION_EXPORT const unsigned char BraintreeDataCollectorVersionString[]; - -#import "BTDataCollector.h" - diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/README.md b/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/README.md deleted file mode 100755 index 6a7293b7..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeDataCollector/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Braintree Data Collector - -Our `BraintreeDataCollector` provides a fraud solution powered by `BTDataCollector`, PayPal, and Kount. - -See our [Advanced Fraud Tools - Client-Side Documentation](https://developers.braintreepayments.com/ios/guides/advanced-fraud-tools/client-side) for more information. diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreeDropIn.podspec b/examples/braintree/ios/Frameworks/Braintree/BraintreeDropIn.podspec deleted file mode 100755 index e9599e4a..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreeDropIn.podspec +++ /dev/null @@ -1,40 +0,0 @@ -# This podspec is here to add BraintreeDropIn to the demo without including the dependencies on Braintree -Pod::Spec.new do |s| - s.name = "BraintreeDropIn" - s.version = "99.99.99-github-master" - s.summary = "Braintree v.zero: A modern foundation for accepting payments" - s.description = <<-DESC - Braintree is a full-stack payments platform for developers - - This CocoaPod will help you accept payments in your iOS app. - - Check out our development portal at https://developers.braintreepayments.com. - DESC - s.homepage = "https://www.braintreepayments.com/how-braintree-works" - s.documentation_url = "https://developers.braintreepayments.com/ios/start/hello-client" - s.screenshots = "https://raw.githubusercontent.com/braintree/braintree_ios/master/screenshot.png" - s.license = "MIT" - s.author = { "Braintree" => "code@getbraintree.com" } - s.source = { :git => "https://github.com/braintree/braintree-ios-drop-in.git", :branch => 'master' } - s.social_media_url = "https://twitter.com/braintree" - - s.platform = :ios, "9.0" - s.requires_arc = true - s.compiler_flags = "-Wall -Werror -Wextra" - - s.subspec "DropIn" do |sub| - sub.source_files = "BraintreeDropIn/**/*.{h,m}" - sub.public_header_files = "BraintreeDropIn/Public/*.h" - sub.frameworks = "UIKit" - sub.dependency "BraintreeDropIn/UIKit" - end - - s.subspec "UIKit" do |sub| - sub.source_files = "BraintreeUIKit/**/*.{h,m}" - sub.public_header_files = "BraintreeUIKit/Public/*.h" - sub.frameworks = "UIKit" - sub.resource_bundles = { - "Braintree-UIKit-Localization" => ["BraintreeUIKit/Localization/*.lproj"] } - end -end - diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTConfiguration+PayPal.m b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTConfiguration+PayPal.m deleted file mode 100755 index d332c9ba..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTConfiguration+PayPal.m +++ /dev/null @@ -1,13 +0,0 @@ -#import "BTConfiguration+PayPal.h" - -@implementation BTConfiguration (PayPal) - -- (BOOL)isPayPalEnabled { - return [self.json[@"paypalEnabled"] isTrue]; -} - -- (BOOL)isBillingAgreementsEnabled { - return [self.json[@"paypal"][@"billingAgreementsEnabled"] isTrue]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalAccountNonce.m b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalAccountNonce.m deleted file mode 100755 index 2a350dd2..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalAccountNonce.m +++ /dev/null @@ -1,44 +0,0 @@ -#import "BTPayPalAccountNonce_Internal.h" - -@interface BTPayPalAccountNonce () -@property (nonatomic, readwrite, copy) NSString *email; -@property (nonatomic, readwrite, copy) NSString *firstName; -@property (nonatomic, readwrite, copy) NSString *lastName; -@property (nonatomic, readwrite, copy) NSString *phone; -@property (nonatomic, readwrite, strong) BTPostalAddress *billingAddress; -@property (nonatomic, readwrite, strong) BTPostalAddress *shippingAddress; -@property (nonatomic, readwrite, copy) NSString *clientMetadataId; -@property (nonatomic, readwrite, copy) NSString *payerId; -@property (nonatomic, readwrite, strong) BTPayPalCreditFinancing *creditFinancing; -@end - -@implementation BTPayPalAccountNonce - -- (instancetype)initWithNonce:(NSString *)nonce - description:(NSString *)description - email:(NSString *)email - firstName:(NSString *)firstName - lastName:(NSString *)lastName - phone:(NSString *)phone - billingAddress:(BTPostalAddress *)billingAddress - shippingAddress:(BTPostalAddress *)shippingAddress - clientMetadataId:(NSString *)clientMetadataId - payerId:(NSString *)payerId - isDefault:(BOOL)isDefault - creditFinancing:(BTPayPalCreditFinancing *)creditFinancing -{ - if (self = [super initWithNonce:nonce localizedDescription:description type:@"PayPal" isDefault:isDefault]) { - _email = email; - _firstName = firstName; - _lastName = lastName; - _phone = phone; - _billingAddress = [billingAddress copy]; - _shippingAddress = [shippingAddress copy]; - _clientMetadataId = clientMetadataId; - _payerId = payerId; - _creditFinancing = creditFinancing; - } - return self; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalAccountNonce_Internal.h b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalAccountNonce_Internal.h deleted file mode 100755 index 50ad737c..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalAccountNonce_Internal.h +++ /dev/null @@ -1,40 +0,0 @@ -#import "BTPayPalAccountNonce.h" -#if __has_include("BraintreeCore.h") -#import "BraintreeCore.h" -#else -#import -#endif - -@interface BTPayPalCreditFinancingAmount () - -- (instancetype)initWithCurrency:(NSString *)currency value:(NSString *)value; - -@end - -@interface BTPayPalCreditFinancing () - -- (instancetype)initWithCardAmountImmutable:(BOOL)cardAmountImmutable - monthlyPayment:(BTPayPalCreditFinancingAmount *)monthlyPayment - payerAcceptance:(BOOL)payerAcceptance - term:(NSInteger)term - totalCost:(BTPayPalCreditFinancingAmount *)totalCost - totalInterest:(BTPayPalCreditFinancingAmount *)totalInterest; - -@end - -@interface BTPayPalAccountNonce () - -- (instancetype)initWithNonce:(NSString *)nonce - description:(NSString *)description - email:(NSString *)email - firstName:(NSString *)firstName - lastName:(NSString *)lastName - phone:(NSString *)phone - billingAddress:(BTPostalAddress *)billingAddress - shippingAddress:(BTPostalAddress *)shippingAddress - clientMetadataId:(NSString *)clientMetadataId - payerId:(NSString *)payerId - isDefault:(BOOL)isDefault - creditFinancing:(BTPayPalCreditFinancing *)creditFinancing; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalCreditFinancing.m b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalCreditFinancing.m deleted file mode 100755 index 8047d484..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalCreditFinancing.m +++ /dev/null @@ -1,34 +0,0 @@ -#import "BTPayPalAccountNonce_Internal.h" - -@interface BTPayPalCreditFinancing () - -@property (nonatomic, readwrite) BOOL cardAmountImmutable; -@property (nonatomic, readwrite, strong) BTPayPalCreditFinancingAmount *monthlyPayment; -@property (nonatomic, readwrite) BOOL payerAcceptance; -@property (nonatomic, readwrite) NSInteger term; -@property (nonatomic, readwrite, strong) BTPayPalCreditFinancingAmount *totalCost; -@property (nonatomic, readwrite, strong) BTPayPalCreditFinancingAmount *totalInterest; - -@end - -@implementation BTPayPalCreditFinancing - -- (instancetype)initWithCardAmountImmutable:(BOOL)cardAmountImmutable - monthlyPayment:(BTPayPalCreditFinancingAmount *)monthlyPayment - payerAcceptance:(BOOL)payerAcceptance - term:(NSInteger)term - totalCost:(BTPayPalCreditFinancingAmount *)totalCost - totalInterest:(BTPayPalCreditFinancingAmount *)totalInterest -{ - if (self = [super init]) { - _cardAmountImmutable = cardAmountImmutable; - _monthlyPayment = monthlyPayment; - _payerAcceptance = payerAcceptance; - _term = term; - _totalCost = totalCost; - _totalInterest = totalInterest; - } - return self; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalCreditFinancingAmount.m b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalCreditFinancingAmount.m deleted file mode 100755 index 74d39eb8..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalCreditFinancingAmount.m +++ /dev/null @@ -1,20 +0,0 @@ -#import "BTPayPalAccountNonce_Internal.h" - -@interface BTPayPalCreditFinancingAmount () - -@property (nonatomic, readwrite, copy) NSString *currency; -@property (nonatomic, readwrite, copy) NSString *value; - -@end - -@implementation BTPayPalCreditFinancingAmount - -- (instancetype)initWithCurrency:(NSString *)currency value:(NSString *)value { - if (self = [super init]) { - _currency = currency; - _value = value; - } - return self; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalDriver.m b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalDriver.m deleted file mode 100755 index 7b6ae422..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalDriver.m +++ /dev/null @@ -1,963 +0,0 @@ -#import "BTPayPalDriver_Internal.h" - -#import "PPOTRequest.h" -#import "PPOTCore.h" - -#if __has_include("BraintreeCore.h") -#import "BTAPIClient_Internal.h" -#import "BTPayPalAccountNonce_Internal.h" -#import "BTPostalAddress.h" -#import "BTLogger_Internal.h" -#else -#import -#import -#import -#import -#import -#endif -#import -#import "BTConfiguration+PayPal.h" - -NSString *const BTPayPalDriverErrorDomain = @"com.braintreepayments.BTPayPalDriverErrorDomain"; - -static void (^appSwitchReturnBlock)(NSURL *url); - -typedef NS_ENUM(NSUInteger, BTPayPalPaymentType) { - BTPayPalPaymentTypeUnknown = 0, - BTPayPalPaymentTypeFuturePayments, - BTPayPalPaymentTypeCheckout, - BTPayPalPaymentTypeBillingAgreement, -}; - -@interface BTPayPalDriver () -@end - -@implementation BTPayPalDriver - -+ (void)load { - if (self == [BTPayPalDriver class]) { - PayPalClass = [PPOTCore class]; - - [[BTAppSwitch sharedInstance] registerAppSwitchHandler:self]; - - [[BTTokenizationService sharedService] registerType:@"PayPal" withTokenizationBlock:^(BTAPIClient *apiClient, __unused NSDictionary *options, void (^completionBlock)(BTPaymentMethodNonce *paymentMethodNonce, NSError *error)) { - BTPayPalDriver *driver = [[BTPayPalDriver alloc] initWithAPIClient:apiClient]; - driver.viewControllerPresentingDelegate = options[BTTokenizationServiceViewPresentingDelegateOption]; - driver.appSwitchDelegate = options[BTTokenizationServiceAppSwitchDelegateOption]; - [driver authorizeAccountWithAdditionalScopes:options[BTTokenizationServicePayPalScopesOption] completion:completionBlock]; - }]; - - [[BTPaymentMethodNonceParser sharedParser] registerType:@"PayPalAccount" withParsingBlock:^BTPaymentMethodNonce * _Nullable(BTJSON * _Nonnull payPalAccount) { - return [self payPalAccountFromJSON:payPalAccount]; - }]; - } -} - -- (instancetype)initWithAPIClient:(BTAPIClient *)apiClient { - if (self = [super init]) { - BTClientMetadataSourceType source = [self isiOSAppAvailableForAppSwitch] ? BTClientMetadataSourcePayPalApp : BTClientMetadataSourcePayPalBrowser; - _apiClient = [apiClient copyWithSource:source integration:apiClient.metadata.integration]; - } - return self; -} - -- (instancetype)init { - return nil; -} - -#pragma mark - Authorization (Future Payments) - -- (void)authorizeAccountWithCompletion:(void (^)(BTPayPalAccountNonce *paymentMethod, NSError *error))completionBlock { - [self authorizeAccountWithAdditionalScopes:[NSSet set] completion:completionBlock]; -} - -- (void)authorizeAccountWithAdditionalScopes:(NSSet *)additionalScopes completion:(void (^)(BTPayPalAccountNonce *, NSError *))completionBlock { - [self authorizeAccountWithAdditionalScopes:additionalScopes forceFuturePaymentFlow:false completion:completionBlock]; -} - -- (void)authorizeAccountWithAdditionalScopes:(NSSet *)additionalScopes forceFuturePaymentFlow:(BOOL)forceFuturePaymentFlow completion:(void (^)(BTPayPalAccountNonce *, NSError *))completionBlock { - if (!self.apiClient) { - NSError *error = [NSError errorWithDomain:BTPayPalDriverErrorDomain - code:BTPayPalDriverErrorTypeIntegration - userInfo:@{NSLocalizedDescriptionKey: @"BTPayPalDriver failed because BTAPIClient is nil."}]; - completionBlock(nil, error); - return; - } - - [self setAuthorizationAppSwitchReturnBlock:completionBlock]; - - [self.apiClient fetchOrReturnRemoteConfiguration:^(BTConfiguration *configuration, NSError *error) { - if (error) { - if (completionBlock) completionBlock(nil, error); - return; - } - - if (configuration.isBillingAgreementsEnabled && !forceFuturePaymentFlow) { - // Switch to Billing Agreements flow - BTPayPalRequest *payPalRequest = [[BTPayPalRequest alloc] init]; // Drop-in only supports Vault flow, which does not use currency code or amount - [self requestBillingAgreement:payPalRequest completion:completionBlock]; - return; - } - - if (![self verifyAppSwitchWithRemoteConfiguration:configuration.json error:&error]) { - if (completionBlock) completionBlock(nil, error); - return; - } - - PPOTAuthorizationRequest *request = - [self.requestFactory requestWithScopeValues:[self.defaultOAuth2Scopes setByAddingObjectsFromSet:(additionalScopes ? additionalScopes : [NSSet set])] - privacyURL:[configuration.json[@"paypal"][@"privacyUrl"] asURL] - agreementURL:[configuration.json[@"paypal"][@"userAgreementUrl"] asURL] - clientID:[self paypalClientIdWithRemoteConfiguration:configuration.json] - environment:[self payPalEnvironmentForRemoteConfiguration:configuration.json] - callbackURLScheme:self.returnURLScheme]; - - if (self.apiClient.clientToken) { - request.additionalPayloadAttributes = @{ @"client_token": self.apiClient.clientToken.originalValue }; - } else if (self.apiClient.tokenizationKey) { - request.additionalPayloadAttributes = @{ @"client_key": self.apiClient.tokenizationKey }; - } - - if (![SFSafariViewController class]) { - [self informDelegateWillPerformAppSwitch]; - } - [request performWithAdapterBlock:^(BOOL success, NSURL *url, PPOTRequestTarget target, NSString *clientMetadataId, NSError *error) { - self.clientMetadataId = clientMetadataId; - - [self sendAnalyticsEventForInitiatingOneTouchForPaymentType:BTPayPalPaymentTypeFuturePayments withSuccess:success target:target]; - - [self handlePayPalRequestWithSuccess:success error:error requestURL:url target:target paymentType:BTPayPalPaymentTypeFuturePayments completion:completionBlock]; - }]; - }]; -} - -- (void)setAuthorizationAppSwitchReturnBlock:(void (^)(BTPayPalAccountNonce *account, NSError *error))completionBlock { - [self setAppSwitchReturnBlock:completionBlock forPaymentType:BTPayPalPaymentTypeFuturePayments]; -} - -#pragma mark - Billing Agreement - -- (void)requestBillingAgreement:(BTPayPalRequest *)request completion:(void (^)(BTPayPalAccountNonce *tokenizedCheckout, NSError *error))completionBlock { - [self requestExpressCheckout:request isBillingAgreement:YES handler:nil completion:completionBlock]; -} - -- (void)requestBillingAgreement:(BTPayPalRequest *)request handler:(id)handler completion:(void (^)(BTPayPalAccountNonce * _Nullable, NSError * _Nullable))completionBlock { - [self requestExpressCheckout:request isBillingAgreement:YES handler:handler completion:completionBlock]; -} - -- (void)setBillingAgreementAppSwitchReturnBlock:(void (^)(BTPayPalAccountNonce *tokenizedAccount, NSError *error))completionBlock { - [self setAppSwitchReturnBlock:completionBlock forPaymentType:BTPayPalPaymentTypeBillingAgreement]; -} - -#pragma mark - Express Checkout (One-Time Payments) - -- (void)requestOneTimePayment:(BTPayPalRequest *)request completion:(void (^)(BTPayPalAccountNonce *tokenizedCheckout, NSError *error))completionBlock { - [self requestExpressCheckout:request isBillingAgreement:NO handler:nil completion:completionBlock]; -} - -- (void)requestOneTimePayment:(BTPayPalRequest *)request handler:(id)handler completion:(void (^)(BTPayPalAccountNonce *tokenizedCheckout, NSError *error))completionBlock { - [self requestExpressCheckout:request isBillingAgreement:NO handler:handler completion:completionBlock]; -} - -- (void)setOneTimePaymentAppSwitchReturnBlock:(void (^)(BTPayPalAccountNonce *tokenizedAccount, NSError *error))completionBlock { - [self setAppSwitchReturnBlock:completionBlock forPaymentType:BTPayPalPaymentTypeCheckout]; -} - -#pragma mark - Helpers - -/// A "Hermes checkout" is used by both Billing Agreements and Express Checkout -- (void)requestExpressCheckout:(BTPayPalRequest *)request - isBillingAgreement:(BOOL)isBillingAgreement - handler:(id)handler - completion:(void (^)(BTPayPalAccountNonce *tokenizedCheckout, NSError *error))completionBlock { - if (!self.apiClient) { - NSError *error = [NSError errorWithDomain:BTPayPalDriverErrorDomain - code:BTPayPalDriverErrorTypeIntegration - userInfo:@{NSLocalizedDescriptionKey: @"BTPayPalDriver failed because BTAPIClient is nil."}]; - completionBlock(nil, error); - return; - } - - if (!request || (!isBillingAgreement && !request.amount)) { - completionBlock(nil, [NSError errorWithDomain:BTPayPalDriverErrorDomain code:BTPayPalDriverErrorTypeInvalidRequest userInfo:nil]); - return; - } - - [self.apiClient fetchOrReturnRemoteConfiguration:^(BTConfiguration *configuration, NSError *error) { - if (error) { - if (completionBlock) completionBlock(nil, error); - return; - } - - if (![self verifyAppSwitchWithRemoteConfiguration:configuration.json error:&error]) { - if (completionBlock) completionBlock(nil, error); - return; - } - - NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; - NSMutableDictionary *experienceProfile = [NSMutableDictionary dictionary]; - - if (!isBillingAgreement) { - parameters[@"intent"] = [self.class intentTypeToString:request.intent]; - if (request.amount != nil) { - parameters[@"amount"] = request.amount; - } - } else { - if (request.billingAgreementDescription.length > 0) { - parameters[@"description"] = request.billingAgreementDescription; - } - } - - parameters[@"offer_paypal_credit"] = @(request.offerCredit); - - experienceProfile[@"no_shipping"] = @(!request.isShippingAddressRequired); - - experienceProfile[@"brand_name"] = request.displayName ?: [configuration.json[@"paypal"][@"displayName"] asString]; - - NSString *landingPageTypeValue = [self.class landingPageTypeToString:request.landingPageType]; - if (landingPageTypeValue != nil) { - experienceProfile[@"landing_page_type"] = landingPageTypeValue; - } - - if (request.localeCode != nil) { - experienceProfile[@"locale_code"] = request.localeCode; - } - - // Currency code should only be used for Hermes Checkout (one-time payment). - // For BA, currency should not be used. - NSString *currencyCode = request.currencyCode ?: [configuration.json[@"paypal"][@"currencyIsoCode"] asString]; - if (!isBillingAgreement && currencyCode) { - parameters[@"currency_iso_code"] = currencyCode; - } - - if (request.shippingAddressOverride != nil) { - experienceProfile[@"address_override"] = @YES; - BTPostalAddress *shippingAddress = request.shippingAddressOverride; - parameters[@"line1"] = shippingAddress.streetAddress; - parameters[@"line2"] = shippingAddress.extendedAddress; - parameters[@"city"] = shippingAddress.locality; - parameters[@"state"] = shippingAddress.region; - parameters[@"postal_code"] = shippingAddress.postalCode; - parameters[@"country_code"] = shippingAddress.countryCodeAlpha2; - parameters[@"recipient_name"] = shippingAddress.recipientName; - } else { - experienceProfile[@"address_override"] = @NO; - } - - NSString *returnURI; - NSString *cancelURI; - - [[self.class payPalClass] redirectURLsForCallbackURLScheme:self.returnURLScheme - withReturnURL:&returnURI - withCancelURL:&cancelURI]; - if (!returnURI || !cancelURI) { - completionBlock(nil, [NSError errorWithDomain:BTPayPalDriverErrorDomain - code:BTPayPalDriverErrorTypeIntegrationReturnURLScheme - userInfo:@{NSLocalizedFailureReasonErrorKey: @"Application may not support One Touch callback URL scheme.", - NSLocalizedRecoverySuggestionErrorKey: @"Check the return URL scheme" }]); - return; - } - - if (returnURI) { - parameters[@"return_url"] = returnURI; - } - if (cancelURI) { - parameters[@"cancel_url"] = cancelURI; - } - - parameters[@"experience_profile"] = experienceProfile; - - self.payPalRequest = request; - - NSString *url = isBillingAgreement ? @"setup_billing_agreement" : @"create_payment_resource"; - - [self.apiClient POST:[NSString stringWithFormat:@"v1/paypal_hermes/%@",url] - parameters:parameters - completion:^(BTJSON *body, __unused NSHTTPURLResponse *response, NSError *error) { - - if (error) { - NSString *errorDetailsIssue = ((BTJSON *)error.userInfo[BTHTTPJSONResponseBodyKey][@"paymentResource"][@"errorDetails"][0][@"issue"]).asString; - if (error.userInfo[NSLocalizedDescriptionKey] == nil && errorDetailsIssue != nil) { - NSMutableDictionary *dictionary = [error.userInfo mutableCopy]; - dictionary[NSLocalizedDescriptionKey] = errorDetailsIssue; - error = [NSError errorWithDomain:error.domain code:error.code userInfo:dictionary]; - } - - if (completionBlock) completionBlock(nil, error); - return; - } - - if (isBillingAgreement) { - [self setBillingAgreementAppSwitchReturnBlock:completionBlock]; - } else { - [self setOneTimePaymentAppSwitchReturnBlock:completionBlock]; - } - - NSString *payPalClientID = [configuration.json[@"paypal"][@"clientId"] asString]; - - if (!payPalClientID && [self payPalEnvironmentForRemoteConfiguration:configuration.json] == PayPalEnvironmentMock) { - payPalClientID = @"FAKE-PAYPAL-CLIENT-ID"; - } - - NSURL *approvalUrl = [body[@"paymentResource"][@"redirectUrl"] asURL]; - if (approvalUrl == nil) { - approvalUrl = [body[@"agreementSetup"][@"approvalUrl"] asURL]; - } - - approvalUrl = [self decorateApprovalURL:approvalUrl forRequest:request]; - - PPOTCheckoutRequest *request = nil; - if (isBillingAgreement) { - request = [self.requestFactory billingAgreementRequestWithApprovalURL:approvalUrl - clientID:payPalClientID - environment:[self payPalEnvironmentForRemoteConfiguration:configuration.json] - callbackURLScheme:self.returnURLScheme]; - } else { - request = [self.requestFactory checkoutRequestWithApprovalURL:approvalUrl - clientID:payPalClientID - environment:[self payPalEnvironmentForRemoteConfiguration:configuration.json] - callbackURLScheme:self.returnURLScheme]; - } - - // Call custom handler and return before beginning the default approval process - if (handler != nil) { - [handler handleApproval:request paypalApprovalDelegate:self]; - return; - } - - if (![SFSafariViewController class]) { - [self informDelegateWillPerformAppSwitch]; - } - - [request performWithAdapterBlock:^(BOOL success, NSURL *url, PPOTRequestTarget target, NSString *clientMetadataId, NSError *error) { - self.clientMetadataId = clientMetadataId; - - if (isBillingAgreement) { - [self sendAnalyticsEventForInitiatingOneTouchForPaymentType:BTPayPalPaymentTypeBillingAgreement withSuccess:success target:target]; - } else { - [self sendAnalyticsEventForInitiatingOneTouchForPaymentType:BTPayPalPaymentTypeCheckout withSuccess:success target:target]; - } - - [self handlePayPalRequestWithSuccess:success - error:error - requestURL:url - target:target - paymentType:isBillingAgreement ? BTPayPalPaymentTypeBillingAgreement : BTPayPalPaymentTypeCheckout - completion:completionBlock]; - }]; - }]; - }]; -} - -- (void)setAppSwitchReturnBlock:(void (^)(BTPayPalAccountNonce *tokenizedAccount, NSError *error))completionBlock - forPaymentType:(BTPayPalPaymentType)paymentType { - appSwitchReturnBlock = ^(NSURL *url) { - if (self.safariViewController) { - [self informDelegatePresentingViewControllerNeedsDismissal]; - } else { - [self informDelegateWillProcessAppSwitchReturn]; - } - - // Before parsing the return URL, check whether the user cancelled by breaking - // out of the PayPal app switch flow (e.g. "Done" button in SFSafariViewController) - if ([url.absoluteString isEqualToString:SFSafariViewControllerFinishedURL]) { - if (completionBlock) completionBlock(nil, nil); - return; - } - - [[self.class payPalClass] parseResponseURL:url completionBlock:^(PPOTResult *result) { - - [self sendAnalyticsEventForHandlingOneTouchResult:result forPaymentType:paymentType]; - - switch (result.type) { - case PPOTResultTypeError: - if (completionBlock) completionBlock(nil, result.error); - break; - case PPOTResultTypeCancel: - if (result.error) { - [[BTLogger sharedLogger] error:@"PayPal error: %@", result.error]; - } - if (completionBlock) completionBlock(nil, nil); - break; - case PPOTResultTypeSuccess: { - - NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; - parameters[@"paypal_account"] = [result.response mutableCopy]; - - if (paymentType == BTPayPalPaymentTypeCheckout) { - parameters[@"paypal_account"][@"options"] = @{ @"validate": @NO }; - if (self.payPalRequest) { - parameters[@"paypal_account"][@"intent"] = [self.class intentTypeToString:self.payPalRequest.intent]; - } - } - if (self.clientMetadataId) { - parameters[@"paypal_account"][@"correlation_id"] = self.clientMetadataId; - } - - BTClientMetadata *metadata = [self clientMetadata]; - parameters[@"_meta"] = @{ - @"source" : metadata.sourceString, - @"integration" : metadata.integrationString, - @"sessionId" : metadata.sessionId, - }; - - [self.apiClient POST:@"/v1/payment_methods/paypal_accounts" - parameters:parameters - completion:^(BTJSON *body, __unused NSHTTPURLResponse *response, NSError *error) - { - if (error) { - [self sendAnalyticsEventForTokenizationFailureForPaymentType:paymentType]; - if (completionBlock) completionBlock(nil, error); - return; - } - - [self sendAnalyticsEventForTokenizationSuccessForPaymentType:paymentType]; - - BTJSON *payPalAccount = body[@"paypalAccounts"][0]; - BTPayPalAccountNonce *tokenizedAccount = [self.class payPalAccountFromJSON:payPalAccount]; - - [self sendAnalyticsEventIfCreditFinancingInNonce:tokenizedAccount forPaymentType:paymentType]; - - if (completionBlock) completionBlock(tokenizedAccount, nil); - }]; - - break; - } - } - appSwitchReturnBlock = nil; - }]; - }; -} - -- (void)handlePayPalRequestWithSuccess:(BOOL)success - error:(NSError *)error - requestURL:(NSURL *)url - target:(PPOTRequestTarget)target - paymentType:(BTPayPalPaymentType)paymentType - completion:(void (^)(BTPayPalAccountNonce *, NSError *))completionBlock -{ - if (success) { - // Defensive programming in case PayPal One Touch returns a non-HTTP URL so that SFSafariViewController doesn't crash - if ([SFSafariViewController class] && ![url.scheme.lowercaseString hasPrefix:@"http"]) { - NSError *urlError = [NSError errorWithDomain:BTPayPalDriverErrorDomain - code:BTPayPalDriverErrorTypeUnknown - userInfo:@{ NSLocalizedDescriptionKey: [NSString stringWithFormat:@"Attempted to open an invalid URL in SFSafariViewController: %@://", url.scheme], - NSLocalizedRecoverySuggestionErrorKey: @"Try again or contact Braintree Support." }]; - if (completionBlock) completionBlock(nil, urlError); - - NSString *eventName = [NSString stringWithFormat:@"ios.%@.%@.error.safariviewcontrollerbadscheme.%@", [self.class eventStringForPaymentType:paymentType], [self.class eventStringForRequestTarget:target], url.scheme]; - [self.apiClient sendAnalyticsEvent:eventName]; - - return; - } - [self performSwitchRequest:url]; - if (![SFSafariViewController class]) { - [self informDelegateDidPerformAppSwitchToTarget:target]; - } - } else { - if (completionBlock) completionBlock(nil, error); - } -} - -- (void)performSwitchRequest:(NSURL *)appSwitchURL { - if ([SFSafariViewController class]) { - [self informDelegatePresentingViewControllerRequestPresent:appSwitchURL]; - } else { - UIApplication *application = [UIApplication sharedApplication]; -#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 100000 - if ([application respondsToSelector:@selector(openURL:options:completionHandler:)]) { - [application openURL:appSwitchURL options:[NSDictionary dictionary] completionHandler:nil]; - } else { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [application openURL:appSwitchURL]; -#pragma clang diagnostic pop - } -#else -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [application openURL:appSwitchURL]; -#pragma clang diagnostic pop -#endif - } -} - -- (NSString *)payPalEnvironmentForRemoteConfiguration:(BTJSON *)configuration { - NSString *btPayPalEnvironmentName = [configuration[@"paypal"][@"environment"] asString]; - if ([btPayPalEnvironmentName isEqualToString:@"offline"]) { - return PayPalEnvironmentMock; - } else if ([btPayPalEnvironmentName isEqualToString:@"live"]) { - return PayPalEnvironmentProduction; - } else { - // Fall back to mock when configuration has an unsupported value for environment, e.g. "custom" - // Instead of returning btPayPalEnvironmentName - return PayPalEnvironmentMock; - } -} - -- (NSString *)paypalClientIdWithRemoteConfiguration:(BTJSON *)configuration { - if ([[configuration[@"paypal"][@"environment"] asString] isEqualToString:@"offline"] && ![configuration[@"paypal"][@"clientId"] isString]) { - return @"mock-paypal-client-id"; - } else { - return [configuration[@"paypal"][@"clientId"] asString]; - } -} - -- (BTClientMetadata *)clientMetadata { - BTMutableClientMetadata *metadata = [self.apiClient.metadata mutableCopy]; - - if ([self isiOSAppAvailableForAppSwitch]) { - metadata.source = BTClientMetadataSourcePayPalApp; - } else { - metadata.source = BTClientMetadataSourcePayPalBrowser; - } - - return [metadata copy]; -} - -- (NSSet *)defaultOAuth2Scopes { - return [NSSet setWithObjects:@"https://uri.paypal.com/services/payments/futurepayments", @"email", nil]; -} - -+ (BTPostalAddress *)accountAddressFromJSON:(BTJSON *)addressJSON { - if (!addressJSON.isObject) { - return nil; - } - - BTPostalAddress *address = [[BTPostalAddress alloc] init]; - address.recipientName = [addressJSON[@"recipientName"] asString]; // Likely to be nil - address.streetAddress = [addressJSON[@"street1"] asString]; - address.extendedAddress = [addressJSON[@"street2"] asString]; - address.locality = [addressJSON[@"city"] asString]; - address.region = [addressJSON[@"state"] asString]; - address.postalCode = [addressJSON[@"postalCode"] asString]; - address.countryCodeAlpha2 = [addressJSON[@"country"] asString]; - - return address; -} - -+ (BTPostalAddress *)shippingOrBillingAddressFromJSON:(BTJSON *)addressJSON { - if (!addressJSON.isObject) { - return nil; - } - - BTPostalAddress *address = [[BTPostalAddress alloc] init]; - address.recipientName = [addressJSON[@"recipientName"] asString]; // Likely to be nil - address.streetAddress = [addressJSON[@"line1"] asString]; - address.extendedAddress = [addressJSON[@"line2"] asString]; - address.locality = [addressJSON[@"city"] asString]; - address.region = [addressJSON[@"state"] asString]; - address.postalCode = [addressJSON[@"postalCode"] asString]; - address.countryCodeAlpha2 = [addressJSON[@"countryCode"] asString]; - - return address; -} - -+ (BTPayPalCreditFinancingAmount *)creditFinancingAmountFromJSON:(BTJSON *)amountJSON { - if (!amountJSON.isObject) { - return nil; - } - - NSString *currency = [amountJSON[@"currency"] asString]; - NSString *value = [amountJSON[@"value"] asString]; - - return [[BTPayPalCreditFinancingAmount alloc] initWithCurrency:currency value:value]; -} - -+ (BTPayPalCreditFinancing *)creditFinancingFromJSON:(BTJSON *)creditFinancingOfferedJSON { - if (!creditFinancingOfferedJSON.isObject) { - return nil; - } - - BOOL isCardAmountImmutable = [creditFinancingOfferedJSON[@"cardAmountImmutable"] isTrue]; - - BTPayPalCreditFinancingAmount *monthlyPayment = [self.class creditFinancingAmountFromJSON:creditFinancingOfferedJSON[@"monthlyPayment"]]; - - BOOL payerAcceptance = [creditFinancingOfferedJSON[@"payerAcceptance"] isTrue]; - NSInteger term = [creditFinancingOfferedJSON[@"term"] asIntegerOrZero]; - BTPayPalCreditFinancingAmount *totalCost = [self.class creditFinancingAmountFromJSON:creditFinancingOfferedJSON[@"totalCost"]]; - BTPayPalCreditFinancingAmount *totalInterest = [self.class creditFinancingAmountFromJSON:creditFinancingOfferedJSON[@"totalInterest"]]; - - return [[BTPayPalCreditFinancing alloc] initWithCardAmountImmutable:isCardAmountImmutable - monthlyPayment:monthlyPayment - payerAcceptance:payerAcceptance - term:term - totalCost:totalCost - totalInterest:totalInterest]; -} - -+ (BTPayPalAccountNonce *)payPalAccountFromJSON:(BTJSON *)payPalAccount { - NSString *nonce = [payPalAccount[@"nonce"] asString]; - NSString *description = [payPalAccount[@"description"] asString]; - - BTJSON *details = payPalAccount[@"details"]; - - NSString *email = [details[@"email"] asString]; - NSString *clientMetadataId = [details[@"correlationId"] asString]; - // Allow email to be under payerInfo - if ([details[@"payerInfo"][@"email"] isString]) { - email = [details[@"payerInfo"][@"email"] asString]; - } - - NSString *firstName = [details[@"payerInfo"][@"firstName"] asString]; - NSString *lastName = [details[@"payerInfo"][@"lastName"] asString]; - NSString *phone = [details[@"payerInfo"][@"phone"] asString]; - NSString *payerId = [details[@"payerInfo"][@"payerId"] asString]; - BOOL isDefault = [payPalAccount[@"default"] isTrue]; - - BTPostalAddress *shippingAddress = [self.class shippingOrBillingAddressFromJSON:details[@"payerInfo"][@"shippingAddress"]]; - BTPostalAddress *billingAddress = [self.class shippingOrBillingAddressFromJSON:details[@"payerInfo"][@"billingAddress"]]; - if (!shippingAddress) { - shippingAddress = [self.class accountAddressFromJSON:details[@"payerInfo"][@"accountAddress"]]; - } - - // Braintree gateway has some inconsistent behavior depending on - // the type of nonce, and sometimes returns "PayPal" for description, - // and sometimes returns a real identifying string. The former is not - // desirable for display. The latter is. - // As a workaround, we ignore descriptions that look like "PayPal". - if ([description caseInsensitiveCompare:@"PayPal"] == NSOrderedSame) { - description = email; - } - - BTPayPalCreditFinancing *creditFinancing = [self.class creditFinancingFromJSON:details[@"creditFinancingOffered"]]; - - BTPayPalAccountNonce *tokenizedPayPalAccount = [[BTPayPalAccountNonce alloc] initWithNonce:nonce - description:description - email:email - firstName:firstName - lastName:lastName - phone:phone - billingAddress:billingAddress - shippingAddress:shippingAddress - clientMetadataId:clientMetadataId - payerId:payerId - isDefault:isDefault - creditFinancing:creditFinancing]; - - return tokenizedPayPalAccount; -} - -+ (NSString *)intentTypeToString:(BTPayPalRequestIntent)intentType { - NSString *result = nil; - - switch(intentType) { - case BTPayPalRequestIntentAuthorize: - result = @"authorize"; - break; - case BTPayPalRequestIntentSale: - result = @"sale"; - break; - case BTPayPalRequestIntentOrder: - result = @"order"; - break; - default: - result = @"authorize"; - break; - } - - return result; -} - -+ (NSString *)landingPageTypeToString:(BTPayPalRequestLandingPageType)landingPageType { - switch(landingPageType) { - case BTPayPalRequestLandingPageTypeLogin: - return @"login"; - case BTPayPalRequestLandingPageTypeBilling: - return @"billing"; - default: - return nil; - } -} - -#pragma mark - Delegate Informers - -- (void)informDelegateWillPerformAppSwitch { - NSNotification *notification = [[NSNotification alloc] initWithName:BTAppSwitchWillSwitchNotification object:self userInfo:nil]; - [[NSNotificationCenter defaultCenter] postNotification:notification]; - - if ([self.appSwitchDelegate respondsToSelector:@selector(appSwitcherWillPerformAppSwitch:)]) { - [self.appSwitchDelegate appSwitcherWillPerformAppSwitch:self]; - } -} - -- (void)informDelegateDidPerformAppSwitchToTarget:(PPOTRequestTarget)target { - BTAppSwitchTarget appSwitchTarget; - switch (target) { - case PPOTRequestTargetBrowser: - appSwitchTarget = BTAppSwitchTargetWebBrowser; - break; - case PPOTRequestTargetOnDeviceApplication: - appSwitchTarget = BTAppSwitchTargetNativeApp; - break; - case PPOTRequestTargetNone: - case PPOTRequestTargetUnknown: - appSwitchTarget = BTAppSwitchTargetUnknown; - // Should never happen - break; - } - - NSNotification *notification = [[NSNotification alloc] initWithName:BTAppSwitchDidSwitchNotification object:self userInfo:@{ BTAppSwitchNotificationTargetKey : @(appSwitchTarget) } ]; - [[NSNotificationCenter defaultCenter] postNotification:notification]; - - if ([self.appSwitchDelegate respondsToSelector:@selector(appSwitcher:didPerformSwitchToTarget:)]) { - [self.appSwitchDelegate appSwitcher:self didPerformSwitchToTarget:appSwitchTarget]; - } -} - -- (void)informDelegateWillProcessAppSwitchReturn { - NSNotification *notification = [[NSNotification alloc] initWithName:BTAppSwitchWillProcessPaymentInfoNotification object:self userInfo:nil]; - [[NSNotificationCenter defaultCenter] postNotification:notification]; - - if ([self.appSwitchDelegate respondsToSelector:@selector(appSwitcherWillProcessPaymentInfo:)]) { - [self.appSwitchDelegate appSwitcherWillProcessPaymentInfo:self]; - } -} - -- (void)informDelegatePresentingViewControllerRequestPresent:(NSURL*) appSwitchURL { - if (self.viewControllerPresentingDelegate != nil && [self.viewControllerPresentingDelegate respondsToSelector:@selector(paymentDriver:requestsPresentationOfViewController:)]) { - self.safariViewController = [[SFSafariViewController alloc] initWithURL:appSwitchURL]; - self.safariViewController.delegate = self; - [self.viewControllerPresentingDelegate paymentDriver:self requestsPresentationOfViewController:self.safariViewController]; - } else { - [[BTLogger sharedLogger] critical:@"Unable to display View Controller to continue PayPal flow. BTPayPalDriver needs a viewControllerPresentingDelegate to be set."]; - } -} - -- (void)informDelegatePresentingViewControllerNeedsDismissal { - if (self.viewControllerPresentingDelegate != nil && [self.viewControllerPresentingDelegate respondsToSelector:@selector(paymentDriver:requestsDismissalOfViewController:)]) { - [self.viewControllerPresentingDelegate paymentDriver:self requestsDismissalOfViewController:self.safariViewController]; - self.safariViewController = nil; - } else { - [[BTLogger sharedLogger] critical:@"Unable to dismiss View Controller to end PayPal flow. BTPayPalDriver needs a viewControllerPresentingDelegate to be set."]; - } -} - -#pragma mark - SFSafariViewControllerDelegate - -static NSString * const SFSafariViewControllerFinishedURL = @"sfsafariviewcontroller://finished"; - -- (void)safariViewControllerDidFinish:(__unused SFSafariViewController *)controller { - [self.class handleAppSwitchReturnURL:[NSURL URLWithString:SFSafariViewControllerFinishedURL]]; -} - -#pragma mark - Preflight check - -- (BOOL)verifyAppSwitchWithRemoteConfiguration:(BTJSON *)configuration error:(NSError * __autoreleasing *)error { - if (![configuration[@"paypalEnabled"] isTrue]) { - [self.apiClient sendAnalyticsEvent:@"ios.paypal-otc.preflight.disabled"]; - if (error != NULL) { - *error = [NSError errorWithDomain:BTPayPalDriverErrorDomain - code:BTPayPalDriverErrorTypeDisabled - userInfo:@{ NSLocalizedDescriptionKey: @"PayPal is not enabled for this merchant", - NSLocalizedRecoverySuggestionErrorKey: @"Enable PayPal for this merchant in the Braintree Control Panel" }]; - } - return NO; - } - - if (self.returnURLScheme == nil || [self.returnURLScheme isEqualToString:@""]) { - NSString *recoverySuggestion = @"PayPal requires a return URL scheme to be configured via [BTAppSwitch setReturnURLScheme:]. This custom URL scheme must also be registered with your app."; - [[BTLogger sharedLogger] critical:recoverySuggestion]; - - [self.apiClient sendAnalyticsEvent:@"ios.paypal-otc.preflight.nil-return-url-scheme"]; - if (error != NULL) { - *error = [NSError errorWithDomain:BTPayPalDriverErrorDomain - code:BTPayPalDriverErrorTypeIntegrationReturnURLScheme - userInfo:@{ NSLocalizedDescriptionKey: @"PayPal app switch is missing a returnURLScheme", - NSLocalizedRecoverySuggestionErrorKey: recoverySuggestion }]; - } - return NO; - } - - if (![[self.class payPalClass] doesApplicationSupportOneTouchCallbackURLScheme:self.returnURLScheme]) { - NSString *recoverySuggestion = [NSString stringWithFormat:@"PayPal requires [BTAppSwitch setReturnURLScheme:] to be configured to begin with your app's bundle ID (%@). Currently, it is set to (%@).", [NSBundle mainBundle].bundleIdentifier, self.returnURLScheme]; - [[BTLogger sharedLogger] critical:recoverySuggestion]; - - [self.apiClient sendAnalyticsEvent:@"ios.paypal-otc.preflight.invalid-return-url-scheme"]; - if (error != NULL) { - *error = [NSError errorWithDomain:BTPayPalDriverErrorDomain - code:BTPayPalDriverErrorTypeIntegrationReturnURLScheme - userInfo:@{NSLocalizedFailureReasonErrorKey: @"Application does not support One Touch callback URL scheme", - NSLocalizedRecoverySuggestionErrorKey: recoverySuggestion }]; - } - return NO; - } - - return YES; -} - -#pragma mark - Analytics Helpers - -+ (NSString *)eventStringForPaymentType:(BTPayPalPaymentType)paymentType { - switch (paymentType) { - case BTPayPalPaymentTypeBillingAgreement: - return @"paypal-ba"; - case BTPayPalPaymentTypeFuturePayments: - return @"paypal-future-payments"; - case BTPayPalPaymentTypeCheckout: - return @"paypal-single-payment"; - case BTPayPalPaymentTypeUnknown: - return nil; - } -} - -+ (NSString *)eventStringForRequestTarget:(PPOTRequestTarget)requestTarget { - switch (requestTarget) { - case PPOTRequestTargetNone: - return @"none"; - case PPOTRequestTargetUnknown: - return @"unknown"; - case PPOTRequestTargetOnDeviceApplication: - return @"appswitch"; - case PPOTRequestTargetBrowser: - return @"webswitch"; - } -} - -- (void)sendAnalyticsEventForInitiatingOneTouchForPaymentType:(BTPayPalPaymentType)paymentType - withSuccess:(BOOL)success - target:(PPOTRequestTarget)target -{ - if (paymentType == BTPayPalPaymentTypeUnknown) return; - - NSString *eventName = [NSString stringWithFormat:@"ios.%@.%@.initiate.%@", [self.class eventStringForPaymentType:paymentType], [self.class eventStringForRequestTarget:target], success ? @"started" : @"failed"]; - [self.apiClient sendAnalyticsEvent:eventName]; - - if ((paymentType == BTPayPalPaymentTypeCheckout || paymentType == BTPayPalPaymentTypeBillingAgreement) && self.payPalRequest.offerCredit) { - NSString *eventName = [NSString stringWithFormat:@"ios.%@.%@.credit.offered.%@", [self.class eventStringForPaymentType:paymentType], [self.class eventStringForRequestTarget:target], success ? @"started" : @"failed"]; - - [self.apiClient sendAnalyticsEvent:eventName]; - } -} - -- (void)sendAnalyticsEventForHandlingOneTouchResult:(PPOTResult *)result forPaymentType:(BTPayPalPaymentType)paymentType { - if (paymentType == BTPayPalPaymentTypeUnknown) return; - - NSString *eventName = [NSString stringWithFormat:@"ios.%@.%@", [self.class eventStringForPaymentType:paymentType], [self.class eventStringForRequestTarget:result.target]]; - - switch (result.type) { - case PPOTResultTypeError: - if (result.error.code == PPOTErrorCodePersistedDataFetchFailed) { - return [self.apiClient sendAnalyticsEvent:[NSString stringWithFormat:@"%@.failed-keychain", eventName]]; - } - return [self.apiClient sendAnalyticsEvent:[NSString stringWithFormat:@"%@.failed", eventName]]; - case PPOTResultTypeCancel: - if (result.error) { - return [self.apiClient sendAnalyticsEvent:[NSString stringWithFormat:@"%@.canceled-with-error", eventName]]; - } else { - return [self.apiClient sendAnalyticsEvent:[NSString stringWithFormat:@"%@.canceled", eventName]]; - } - case PPOTResultTypeSuccess: - return [self.apiClient sendAnalyticsEvent:[NSString stringWithFormat:@"%@.succeeded", eventName]]; - } -} - -- (void)sendAnalyticsEventIfCreditFinancingInNonce:(BTPayPalAccountNonce *)payPalAccountNonce forPaymentType:(BTPayPalPaymentType)paymentType { - if ([payPalAccountNonce creditFinancing]) { - NSString *eventName = [NSString stringWithFormat:@"ios.%@.credit.accepted", [self.class eventStringForPaymentType:paymentType]]; - - [self.apiClient sendAnalyticsEvent:eventName]; - } -} - -- (void)sendAnalyticsEventForTokenizationSuccessForPaymentType:(BTPayPalPaymentType)paymentType { - if (paymentType == BTPayPalPaymentTypeUnknown) return; - - NSString *eventName = [NSString stringWithFormat:@"ios.%@.tokenize.succeeded", [self.class eventStringForPaymentType:paymentType]]; - [self.apiClient sendAnalyticsEvent:eventName]; -} - -- (void)sendAnalyticsEventForTokenizationFailureForPaymentType:(BTPayPalPaymentType)paymentType { - if (paymentType == BTPayPalPaymentTypeUnknown) return; - - NSString *eventName = [NSString stringWithFormat:@"ios.%@.tokenize.failed", [self.class eventStringForPaymentType:paymentType]]; - [self.apiClient sendAnalyticsEvent:eventName]; -} - -#pragma mark - App Switch handling - -- (BOOL)isiOSAppAvailableForAppSwitch { - return [[self.class payPalClass] isWalletAppInstalled]; -} - -+ (BOOL)canHandleAppSwitchReturnURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication { - return appSwitchReturnBlock != nil && [PPOTCore canParseURL:url sourceApplication:sourceApplication]; -} - -+ (void)handleAppSwitchReturnURL:(NSURL *)url { - if (appSwitchReturnBlock) { - appSwitchReturnBlock(url); - } -} - -- (NSString *)returnURLScheme { - if (!_returnURLScheme) { - _returnURLScheme = [[BTAppSwitch sharedInstance] returnURLScheme]; - } - return _returnURLScheme; -} - -#pragma mark - BTPayPalApprovalHandler delegate methods - -- (void)onApprovalComplete:(NSURL *)url { - [self.class handleAppSwitchReturnURL:url]; -} - -- (void)onApprovalCancel { - [self.class handleAppSwitchReturnURL:[NSURL URLWithString:SFSafariViewControllerFinishedURL]]; -} - -#pragma mark - Internal - -- (NSURL *)decorateApprovalURL:(NSURL*)approvalURL forRequest:(BTPayPalRequest *)paypalRequest { - if (approvalURL != nil && paypalRequest.userAction != BTPayPalRequestUserActionDefault) { - NSURLComponents* approvalURLComponents = [[NSURLComponents alloc] initWithURL:approvalURL resolvingAgainstBaseURL:NO]; - if (approvalURLComponents != nil) { - NSString *userActionValue = [BTPayPalDriver userActionTypeToString:paypalRequest.userAction]; - if ([userActionValue length] > 0) { - NSString *query = [approvalURLComponents query]; - NSString *delimiter = [query length] == 0 ? @"" : @"&"; - query = [NSString stringWithFormat:@"%@%@useraction=%@", query, delimiter, userActionValue]; - approvalURLComponents.query = query; - } - return [approvalURLComponents URL]; - } - } - return approvalURL; -} - -+ (NSString *)userActionTypeToString:(BTPayPalRequestUserAction)userActionType { - NSString *result = nil; - - switch(userActionType) { - case BTPayPalRequestUserActionCommit: - result = @"commit"; - break; - default: - result = @""; - break; - } - - return result; -} - -- (BTPayPalRequestFactory *)requestFactory { - if (!_requestFactory) { - _requestFactory = [[BTPayPalRequestFactory alloc] init]; - } - return _requestFactory; -} - -static Class PayPalClass; - -+ (void)setPayPalClass:(Class)payPalClass { - if ([payPalClass isSubclassOfClass:[PPOTCore class]]) { - PayPalClass = payPalClass; - } -} - -+ (Class)payPalClass { - return PayPalClass; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalDriver_Internal.h b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalDriver_Internal.h deleted file mode 100755 index ece7f839..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalDriver_Internal.h +++ /dev/null @@ -1,81 +0,0 @@ -#import "BTPayPalDriver.h" -#import "BTPayPalRequestFactory.h" -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface BTPayPalDriver () - -/*! - @brief Set up the callback to be invoked on return from browser or app switch for PayPal Express Checkout (Checkout Flow) - - @discussion Exposed internally to test BTPayPalDriver app switch return behavior by simulating an app switch return -*/ -- (void)setOneTimePaymentAppSwitchReturnBlock:(void (^)(BTPayPalAccountNonce * _Nullable tokenizedCheckout, NSError * _Nullable error))completionBlock; - -/*! - @brief Set up the callback to be invoked on return from browser or app switch for PayPal Billing Agreement (Vault Flow) - - @discussion Exposed internally to test BTPayPalDriver app switch return behavior by simulating an app switch return -*/ -- (void)setBillingAgreementAppSwitchReturnBlock:(void (^)(BTPayPalAccountNonce * _Nullable tokenizedAccount, NSError * _Nullable error))completionBlock; - -/*! - @brief Set up the callback to be invoked on return from browser or app switch for PayPal Future Payments (Vault Flow) - - @discussion Exposed internally to test BTPayPalDriver app switch return behavior by simulating an app switch return -*/ -- (void)setAuthorizationAppSwitchReturnBlock:(void (^)(BTPayPalAccountNonce * _Nullable tokenizedAccount, NSError * _Nullable error))completionBlock; - -- (void)informDelegatePresentingViewControllerRequestPresent:(NSURL*) appSwitchURL; - -- (void)informDelegatePresentingViewControllerNeedsDismissal; - -/*! - @brief Exposed for testing to create stubbed versions of `PayPalOneTouchAuthorizationRequest` and `PayPalOneTouchCheckoutRequest` -*/ -@property (nonatomic, strong) BTPayPalRequestFactory *requestFactory; - -/*! - @brief Exposed for testing to provide subclasses of PayPalOneTouchCore to stub class methods -*/ -+ (Class)payPalClass; -+ (void)setPayPalClass:(Class)payPalClass; - -/*! - @brief Exposed for testing to provide a convenient way to inject custom return URL schemes -*/ -@property (nonatomic, copy) NSString *returnURLScheme; - -/*! - @brief Exposed for testing to get the instance of BTAPIClient after it has been copied by `copyWithSource:integration:` -*/ -@property (nonatomic, strong, nullable) BTAPIClient *apiClient; - -/*! - @brief Exposed for testing the clientMetadataId associated with this request -*/ -@property (nonatomic, strong) NSString *clientMetadataId; - -/*! - @brief Exposed for testing the intent associated with this request -*/ -@property (nonatomic, strong) BTPayPalRequest *payPalRequest; - -/*! - @brief Exposed for testing, the safariViewController instance used for the paypal flow on iOS >=9 -*/ -@property (nonatomic, strong, nullable) SFSafariViewController *safariViewController; - -/*! - @brief Used to test the Future Payments flow by force -*/ -- (void)authorizeAccountWithAdditionalScopes:(NSSet *)additionalScopes forceFuturePaymentFlow:(BOOL)forceFuturePaymentFlow completion:(void (^)(BTPayPalAccountNonce *, NSError *))completionBlock; - -+ (nullable BTPayPalCreditFinancingAmount *)creditFinancingAmountFromJSON:(BTJSON *)amountJSON; - -+ (nullable BTPayPalCreditFinancing *)creditFinancingFromJSON:(BTJSON *)creditFinancingOfferedJSON; - -@end - -NS_ASSUME_NONNULL_END diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalRequest.m b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalRequest.m deleted file mode 100755 index 6e4b9708..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalRequest.m +++ /dev/null @@ -1,29 +0,0 @@ -#import "BTPayPalRequest.h" - -@implementation BTPayPalRequest - -- (instancetype)init -{ - self = [super init]; - if (self) { - _shippingAddressRequired = NO; - _offerCredit = NO; - _intent = BTPayPalRequestIntentAuthorize; - _userAction = BTPayPalRequestUserActionDefault; - _landingPageType = BTPayPalRequestLandingPageTypeDefault; - } - return self; -} - -- (instancetype)initWithAmount:(NSString *)amount { - if (amount == nil) { - return nil; - } - - if (self = [self init]) { - _amount = amount; - } - return self; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalRequestFactory.h b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalRequestFactory.h deleted file mode 100755 index 673d085a..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalRequestFactory.h +++ /dev/null @@ -1,33 +0,0 @@ -#import -#import "PPOTRequest.h" -#import "PPOTCore.h" - -@interface BTPayPalRequestFactory : NSObject - -/*! - @brief Creates PayPal Express Checkout requests -*/ -- (PPOTCheckoutRequest *)checkoutRequestWithApprovalURL:(NSURL *)approvalURL - clientID:(NSString *)clientID - environment:(NSString *)environment - callbackURLScheme:(NSString *)callbackURLScheme; - -/*! - @brief Creates PayPal Billing Agreement requests -*/ -- (PPOTBillingAgreementRequest *)billingAgreementRequestWithApprovalURL:(NSURL *)approvalURL - clientID:(NSString *)clientID - environment:(NSString *)environment - callbackURLScheme:(NSString *)callbackURLScheme; - -/*! - @brief Creates PayPal Future Payment requests -*/ -- (PPOTAuthorizationRequest *)requestWithScopeValues:(NSSet *)scopeValues - privacyURL:(NSURL *)privacyURL - agreementURL:(NSURL *)agreementURL - clientID:(NSString *)clientID - environment:(NSString *)environment - callbackURLScheme:(NSString *)callbackURLScheme; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalRequestFactory.m b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalRequestFactory.m deleted file mode 100755 index 1508f992..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/BTPayPalRequestFactory.m +++ /dev/null @@ -1,45 +0,0 @@ -#import "BTPayPalRequestFactory.h" -#import "PPOTRequestFactory.h" - -@implementation BTPayPalRequestFactory - -- (PPOTCheckoutRequest *)checkoutRequestWithApprovalURL:(NSURL *)approvalURL - clientID:(NSString *)clientID - environment:(NSString *)environment - callbackURLScheme:(NSString *)callbackURLScheme -{ - return [PPOTRequestFactory checkoutRequestWithApprovalURL:approvalURL - pairingId:[PPOTRequest tokenFromApprovalURL:approvalURL] - clientID:clientID - environment:environment - callbackURLScheme:callbackURLScheme]; -} - -- (PPOTBillingAgreementRequest *)billingAgreementRequestWithApprovalURL:(NSURL *)approvalURL - clientID:(NSString *)clientID - environment:(NSString *)environment - callbackURLScheme:(NSString *)callbackURLScheme -{ - return [PPOTRequestFactory billingAgreementRequestWithApprovalURL:approvalURL - pairingId:[PPOTRequest tokenFromApprovalURL:approvalURL] - clientID:clientID - environment:environment - callbackURLScheme:callbackURLScheme]; -} - -- (PPOTAuthorizationRequest *)requestWithScopeValues:(NSSet *)scopeValues - privacyURL:(NSURL *)privacyURL - agreementURL:(NSURL *)agreementURL - clientID:(NSString *)clientID - environment:(NSString *)environment - callbackURLScheme:(NSString *)callbackURLScheme -{ - return [PPOTRequestFactory authorizationRequestWithScopeValues:scopeValues - privacyURL:privacyURL - agreementURL:agreementURL - clientID:clientID - environment:environment - callbackURLScheme:callbackURLScheme]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Info.plist b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Info.plist deleted file mode 100755 index d3de8eef..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/PPDataCollector.m b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/PPDataCollector.m deleted file mode 100755 index 66cf2390..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/PPDataCollector.m +++ /dev/null @@ -1,71 +0,0 @@ -// -// PPDataCollector.m -// PPDataCollector -// -// Copyright © 2015 PayPal, Inc. All rights reserved. -// - -#import "PPDataCollector_Internal.h" -#import "PPRCClientMetadataIDProvider.h" - -#import "PPOTDevice.h" -#import "PPOTVersion.h" -#import "PPOTMacros.h" -#import "PPOTURLSession.h" - -@implementation PPDataCollector - -+ (NSString *)generateClientMetadataID:(NSString *)pairingID { - static PPRCClientMetadataIDProvider *clientMetadataIDProvider; - __block NSString *clientMetadataPairingID = [pairingID copy]; - - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - PPRCClientMetadataIDProviderNetworkAdapterBlock adapterBlock = ^(NSURLRequest *request, PPRCClientMetadataIDProviderNetworkResponseBlock completionBlock) { - [[PPOTURLSession session] sendRequest:request completionBlock:^(NSData* responseData, NSHTTPURLResponse *response, __unused NSError *error) { - completionBlock(response, responseData); - }]; - }; - - clientMetadataIDProvider = [[PPRCClientMetadataIDProvider alloc] initWithAppGuid:[PPOTDevice appropriateIdentifier] - sourceAppVersion:PayPalOTVersion() - networkAdapterBlock:adapterBlock - pairingID:clientMetadataPairingID]; - // On first time, do not use a pairing ID to generate the client metadata ID because it's already been paired - clientMetadataPairingID = nil; - }); - - NSString *clientMetadataID = [clientMetadataIDProvider clientMetadataID:clientMetadataPairingID]; - PPLog(@"ClientMetadataID: %@", clientMetadataID); - return clientMetadataID; -} - -+ (NSString *)generateClientMetadataID { - return [PPDataCollector generateClientMetadataID:nil]; -} - -+ (nonnull NSString *)clientMetadataID:(nullable NSString *)pairingID { - return [self generateClientMetadataID:pairingID]; -} - -+ (nonnull NSString *)clientMetadataID { - return [self generateClientMetadataID]; -} - -+ (nonnull NSString *)collectPayPalDeviceData { - NSMutableDictionary *dataDictionary = [NSMutableDictionary new]; - NSString *payPalClientMetadataId = [PPDataCollector generateClientMetadataID]; - if (payPalClientMetadataId) { - dataDictionary[@"correlation_id"] = payPalClientMetadataId; - } - - NSError *error; - NSData *data = [NSJSONSerialization dataWithJSONObject:dataDictionary options:0 error:&error]; - if (!data) { - NSLog(@"ERROR: Failed to create deviceData string, error = %@", error); - } - - return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; -} - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/PPDataCollector_Internal.h b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/PPDataCollector_Internal.h deleted file mode 100755 index 2ba91dec..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/PPDataCollector_Internal.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// PPDataCollector.h -// PayPalDataCollector -// -// Copyright © 2015 PayPal, Inc. All rights reserved. -// - -#import "PPDataCollector.h" - -@interface PPDataCollector () - -/*! - @brief Generates a client metadata ID using an optional pairing ID. - - @note This is an internal method for generating raw client metadata IDs, which is not - the correct format for device data when creating a transaction. - - @param pairingID a pairing ID to associate with this clientMetadataID must be 10-32 chars long or null - @return a client metadata ID to send as a header -*/ -+ (nonnull NSString *)generateClientMetadataID:(nullable NSString *)pairingID; - -/*! - @brief Generates a client metadata ID. - - @note This is an internal method for generating raw client metadata IDs, which is not - the correct format for device data when creating a transaction. - - @return a client metadata ID to send as a header -*/ -+ (nonnull NSString *)generateClientMetadataID; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Public/PPDataCollector.h b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Public/PPDataCollector.h deleted file mode 100755 index 66ba92a8..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Public/PPDataCollector.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// PPDataCollector.h -// PayPalDataCollector -// -// Copyright © 2015 PayPal, Inc. All rights reserved. -// - -#import - -@interface PPDataCollector : NSObject - -/*! - @brief Returns a client metadata ID. - - @note This returns a raw client metadata ID, which is not the correct format for device data - when creating a transaction. Instead, it is recommended to use `collectPayPalDeviceData`. - - @param pairingID a pairing ID to associate with this clientMetadataID must be 10-32 chars long or null - @return a client metadata ID to send as a header -*/ -+ (nonnull NSString *)clientMetadataID:(nullable NSString *)pairingID; - -/*! - @brief Returns a client metadata ID. - - @note This returns a raw client metadata ID, which is not the correct format for device data - when creating a transaction. Instead, it is recommended to use `collectPayPalDeviceData`. - - @return a client metadata ID to send as a header -*/ -+ (nonnull NSString *)clientMetadataID DEPRECATED_MSG_ATTRIBUTE("Use [PPDataCollector collectPayPalDeviceData] to generate a device data string."); - -/*! - @brief Collects device data for PayPal. - - @discussion This should be used when the user is paying with PayPal or Venmo only. - - @return a deviceData string that should be passed into server-side calls, such as `Transaction.sale`, - for PayPal transactions. This JSON serialized string contains a PayPal fraud ID. -*/ -+ (nonnull NSString *)collectPayPalDeviceData; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Public/PayPalDataCollector.h b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Public/PayPalDataCollector.h deleted file mode 100755 index 65963f4e..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Public/PayPalDataCollector.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// PayPalDataCollector.h -// PayPalDataCollector -// -// Copyright © 2015 PayPal, Inc. All rights reserved. -// - -#import - -//! Project version number for PayPalRisk. -FOUNDATION_EXPORT double PayPalDataCollectorVersionNumber; - -//! Project version string for PayPalRisk. -FOUNDATION_EXPORT const unsigned char PayPalDataCollectorVersionString[]; - -#import "PPRCClientMetadataIDProvider.h" -#import "PPDataCollector.h" diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Risk/PPRCClientMetadataIDProvider.h b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Risk/PPRCClientMetadataIDProvider.h deleted file mode 100755 index 3ab3ba4f..00000000 --- a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Risk/PPRCClientMetadataIDProvider.h +++ /dev/null @@ -1,57 +0,0 @@ -// -// PPRiskComponentClientMetadataIDProvider.h -// PayPalOneTouch -// -// Copyright © 2015 PayPal, Inc. All rights reserved. -// - -#import - -/*! - @brief Block that processes a given HTTP response -*/ -typedef void (^PPRCClientMetadataIDProviderNetworkResponseBlock)(NSHTTPURLResponse * _Nonnull response, NSData * _Nonnull data); - -/*! - @brief Networking adapter block which is passed a URL request, the block must send the request, and then passes on the response to the given network response block -*/ -typedef void (^PPRCClientMetadataIDProviderNetworkAdapterBlock)(NSURLRequest * _Nonnull request, _Nonnull PPRCClientMetadataIDProviderNetworkResponseBlock); - -/*! - @brief Interface exposed from the Risk Component to bootstrap the Risk Component -*/ -@interface PPRCClientMetadataIDProvider : NSObject - -/*! - @brief Initializes the risk component - - @param appGuid the application's GUID - @param sourceAppVersion version of the source app/library - @param networkAdapterBlock the adapter block to send requests -*/ -- (nonnull instancetype)initWithAppGuid:(nonnull NSString *)appGuid - sourceAppVersion:(nonnull NSString *)sourceAppVersion - networkAdapterBlock:(nonnull PPRCClientMetadataIDProviderNetworkAdapterBlock)networkAdapterBlock; - -/*! - @brief Initializes the risk component - - @param appGuid the application's GUID - @param sourceAppVersion version of the source app/library - @param networkAdapterBlock the adapter block to send requests - @param pairingID the pairing ID to associate with -*/ -- (nonnull instancetype)initWithAppGuid:(nonnull NSString *)appGuid - sourceAppVersion:(nonnull NSString *)sourceAppVersion - networkAdapterBlock:(nonnull PPRCClientMetadataIDProviderNetworkAdapterBlock)networkAdapterBlock - pairingID:(nullable NSString *)pairingID; - -/*! - @brief Generates a client metadata ID - - @param pairingID a pairing ID to associate with this clientMetadataID must be 10-32 chars long or null - @return a client metadata ID -*/ -- (nonnull NSString *)clientMetadataID:(nullable NSString *)pairingID; - -@end diff --git a/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Risk/libPPRiskComponent.a b/examples/braintree/ios/Frameworks/Braintree/BraintreePayPal/PayPalDataCollector/Risk/libPPRiskComponent.a deleted file mode 100755 index fa3ce36a58203a1d6ca71622b9cb0c8ab9030d04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4517720 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[Iw$Z8YC41^GnjVH52(&&~uaqxll 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 dQDzgs4-|kteI7jzHCo5yzt=PbeBymCZ0Y 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