From 1d5020cbb60f0ff818e6511e1f07499f7598364a Mon Sep 17 00:00:00 2001 From: Mel <78050250+mludowise-stripe@users.noreply.github.com> Date: Mon, 16 Dec 2024 18:29:03 -0800 Subject: [PATCH] [Connect] Prepare to publish StripeConnect module (#4035) ## Summary Prepare for StripeConnect SDK release: - Adds `StripeConnect` to package managers and modules.yaml - Configures installation tests - Adds to modules list in main README - Adds changelog entry ## Motivation https://jira.corp.stripe.com/browse/MXMOBILE-2496 ## Testing - [x] Installation tests pass on CI - [x] Verify size report running on Emerge Tools: https://www.emergetools.com/build/14436e05-f195-4a1c-9b30-fc1950750883 ## Changelog > [Added] `StripeConnect` SDK to add connected account dashboard functionality to your app using [Connect embedded components](https://docs.stripe.com/connect/get-started-connect-embedded-components?platform=ios). --------- Co-authored-by: nschris-stripe --- CHANGELOG.md | 5 +++ Package.swift | 9 ++++++ README.md | 2 ++ StripeConnect.podspec | 23 +++++++++++++ .../CarthageTest.xcodeproj/project.pbxproj | 30 ++++------------- .../carthage/CarthageTest/Info.plist | 2 ++ .../CarthageTest/ViewController.swift | 32 ++++++++----------- .../CocoapodsTest.xcodeproj/project.pbxproj | 2 ++ .../CocoapodsTest/Info.plist | 2 ++ .../CocoapodsTest/ViewController.swift | 32 ++++++++----------- .../cocoapods/with_frameworks_swift/Podfile | 1 + .../with_objc/SPMTest/Info.plist | 2 ++ .../SPMTest.xcodeproj/project.pbxproj | 9 +++++- .../with_swift/SPMTest/Info.plist | 2 ++ .../with_swift/SPMTest/ViewController.swift | 7 +++- modules.yaml | 12 +++++++ 16 files changed, 110 insertions(+), 62 deletions(-) create mode 100644 StripeConnect.podspec diff --git a/CHANGELOG.md b/CHANGELOG.md index 541d4d9149e..dc54f3a6d52 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## X.X.X + +### Connect +* [Added] `StripeConnect` SDK to add connected account dashboard functionality to your app using [Connect embedded components](https://docs.stripe.com/connect/get-started-connect-embedded-components?platform=ios). + ## 24.1.3 2024-12-16 ### PaymentSheet, CustomerSheet * [Changed] Changed the edit and remove saved payment method flow so that tapping 'Edit' displays an icon that leads to a new update payment method screen that displays payment method details for card (last 4 digits of card number, cvc and expiry date fields), US Bank account (name, email, last 4 digits of bank acocunt), and SEPA debit (name, email, last 4 digits of IBAN). diff --git a/Package.swift b/Package.swift index d351d0ff1c3..459540e8dd4 100644 --- a/Package.swift +++ b/Package.swift @@ -39,6 +39,10 @@ let package = Package( .library( name: "StripeFinancialConnections", targets: ["StripeFinancialConnections"] + ), + .library( + name: "StripeConnect", + targets: ["StripeConnect"] ) ], targets: [ @@ -152,6 +156,11 @@ let package = Package( .process("Resources/Images"), .process("PrivacyInfo.xcprivacy") ] + ), + .target( + name: "StripeConnect", + dependencies: ["StripeCore", "StripeUICore", "StripeFinancialConnections"], + path: "StripeConnect/StripeConnect" ) ] ) diff --git a/README.md b/README.md index f6e6cb0ed56..f241fc5d907 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,7 @@ For help with Apple's App Privacy Details form in App Store Connect, visit [Stri | Module | Description | Size ([Download → Install](https://docs.emergetools.com/docs/ios-app-size#download-vs-install-size))                          | |--------|-------------|------| | [StripePaymentSheet](StripePaymentSheet) | Stripe's [prebuilt payment UI](https://stripe.com/docs/payments/accept-a-payment?platform=ios&ui=payment-sheet). | [![StripePaymentSheet size](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fwww.emergetools.com%2Fapi%2Fv2%2Fpublic_new_build%3FexampleId%3Dcom.stripe.StripePaymentSheetSize%26platform%3Dios%26badgeOption%3Ddownload_and_install_size%26buildType%3Drelease&query=$.badgeMetadata&label=StripePaymentSheet&logo=apple)](https://www.emergetools.com/app/example/ios/com.stripe.StripePaymentSheetSize/release?utm_campaign=badge-data) | +| [StripeConnect](StripeConnect) | Connect embedded components to add connected account dashboard functionality to your app. | [![StripeConnect size](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fwww.emergetools.com%2Fapi%2Fv2%2Fpublic_new_build%3FexampleId%3Dcom.stripe.StripeConnectSize%26platform%3Dios%26badgeOption%3Ddownload_and_install_size%26buildType%3Drelease&query=$.badgeMetadata&label=StripeConnect&logo=apple)](https://www.emergetools.com/app/example/ios/com.stripe.StripeConnectSize/release?utm_campaign=badge-data) | | [StripeIdentity](StripeIdentity) | Securely capture ID documents and selfies on iOS for use with [Stripe's Identity API](https://docs.stripe.com/identity) to confirm the identity of global users. | [![StripeIdentity size](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fwww.emergetools.com%2Fapi%2Fv2%2Fpublic_new_build%3FexampleId%3Dcom.stripe.StripeIdentitySize%26platform%3Dios%26badgeOption%3Ddownload_and_install_size%26buildType%3Drelease&query=$.badgeMetadata&label=StripeIdentity&logo=apple)](https://www.emergetools.com/app/example/ios/com.stripe.StripeIdentitySize/release?utm_campaign=badge-data) | | [StripeFinancialConnections](StripeFinancialConnections) | Securely connect financial accounts to Stripe's merchant account with [Stripe Financial Connections](https://docs.stripe.com/financial-connections). | [![StripeFinancialConnections size](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fwww.emergetools.com%2Fapi%2Fv2%2Fpublic_new_build%3FexampleId%3Dcom.stripe.StripeFinancialConnectionsSize%26platform%3Dios%26badgeOption%3Ddownload_and_install_size%26buildType%3Drelease&query=$.badgeMetadata&label=StripeFinancialConnections&logo=apple)](https://www.emergetools.com/app/example/ios/com.stripe.StripeFinancialConnectionsSize/release?utm_campaign=badge-data) | | Stripe | Contains all the below frameworks, plus [Issuing](https://stripe.com/docs/issuing/cards/digital-wallets?platform=iOS). | [![Stripe size](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fwww.emergetools.com%2Fapi%2Fv2%2Fpublic_new_build%3FexampleId%3Dcom.stripe.StripeSize%26platform%3Dios%26badgeOption%3Ddownload_and_install_size%26buildType%3Drelease&query=$.badgeMetadata&label=Stripe&logo=apple)](https://www.emergetools.com/app/example/ios/com.stripe.StripeSize/release?utm_campaign=badge-data) | @@ -94,6 +95,7 @@ For the `Stripe` module, link the following frameworks: For other modules, follow the instructions below: - [StripeApplePay](StripeApplePay/README.md#manual-linking) +- [StripeConnect](StripeConnect/README.md#manual-linking) - [StripeFinancialConnections](StripeFinancialConnections/README.md#manual-linking) - [StripeIdentity](StripeIdentity/README.md#manual-linking) - [StripePaymentSheet](StripePaymentSheet/README.md#manual-linking) diff --git a/StripeConnect.podspec b/StripeConnect.podspec new file mode 100644 index 00000000000..8693723ed59 --- /dev/null +++ b/StripeConnect.podspec @@ -0,0 +1,23 @@ +Pod::Spec.new do |s| + s.name = 'StripeConnect' + + # Do not update s.version directly. + # Instead, update the VERSION file and run ./ci_scripts/update_version.sh + s.version = '24.1.3' + + s.summary = 'Use Connect embedded components to add connected account dashboard functionality to your app.' + s.license = { type: 'MIT', file: 'LICENSE' } + s.homepage = 'https://docs.stripe.com/connect/get-started-connect-embedded-components' + s.authors = { 'Stripe' => 'support+github@stripe.com' } + s.source = { git: 'https://github.com/stripe/stripe-ios.git', tag: "#{s.version}" } + s.frameworks = 'Foundation', 'WebKit', 'UIKit' + s.requires_arc = true + s.platform = :ios + s.swift_version = '5.0' + # Connect only supports 15+, but setting this to 13.0 to make installation tests easier. + s.ios.deployment_target = '13.0' + s.source_files = 'StripeConnect/StripeConnect/**/*.swift' + s.dependency 'StripeCore', s.version.to_s + s.dependency 'StripeUICore', s.version.to_s + s.dependency 'StripeFinancialConnections', s.version.to_s +end diff --git a/Tests/installation_tests/carthage/CarthageTest.xcodeproj/project.pbxproj b/Tests/installation_tests/carthage/CarthageTest.xcodeproj/project.pbxproj index 28af3ec6a48..a7017bcd6bb 100644 --- a/Tests/installation_tests/carthage/CarthageTest.xcodeproj/project.pbxproj +++ b/Tests/installation_tests/carthage/CarthageTest.xcodeproj/project.pbxproj @@ -13,22 +13,18 @@ 04E6FCEE1B714AC2000C8759 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 04E6FCED1B714AC2000C8759 /* Images.xcassets */; }; 04E6FCF11B714AC2000C8759 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 04E6FCEF1B714AC2000C8759 /* LaunchScreen.xib */; }; 31138E6F28DBD87B008AF554 /* StripePaymentSheet.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 31138E6E28DBD87B008AF554 /* StripePaymentSheet.xcframework */; }; - 31138E7028DBD87B008AF554 /* StripePaymentSheet.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 31138E6E28DBD87B008AF554 /* StripePaymentSheet.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 31138E7228DBD87D008AF554 /* StripePaymentsUI.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 31138E7128DBD87D008AF554 /* StripePaymentsUI.xcframework */; }; - 31138E7328DBD87E008AF554 /* StripePaymentsUI.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 31138E7128DBD87D008AF554 /* StripePaymentsUI.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 31138E7528DBD881008AF554 /* StripePayments.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 31138E7428DBD881008AF554 /* StripePayments.xcframework */; }; - 31138E7628DBD881008AF554 /* StripePayments.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 31138E7428DBD881008AF554 /* StripePayments.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 3137B69427437E3500CE7F5C /* StripeApplePay.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3137B69327437E3500CE7F5C /* StripeApplePay.xcframework */; }; 31CA744B25CCC669007FE8BF /* Stripe3DS2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 31CA744A25CCC669007FE8BF /* Stripe3DS2.xcframework */; }; 31FF1DB1255FA383000EF4B0 /* Stripe.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04E6FD061B714DDF000C8759 /* Stripe.xcframework */; }; - 31FF1DB2255FA383000EF4B0 /* Stripe.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 04E6FD061B714DDF000C8759 /* Stripe.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 3B3F01C227445CDE00C53D34 /* StripeUICoreAssetTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B3F01C127445CDE00C53D34 /* StripeUICoreAssetTests.swift */; }; 3BD980302741675500B09BCD /* ModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BD9802F2741675500B09BCD /* ModelTests.swift */; }; 3BD9808F27431DFE00B09BCD /* StripeCardScan.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BD9808E27431DFE00B09BCD /* StripeCardScan.xcframework */; }; 3C4D20AD273C673200BC6444 /* StripeFinancialConnections.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C4D20AC273C673200BC6444 /* StripeFinancialConnections.xcframework */; }; E6AA24ED2744ABE000FD205E /* StripeCameraCore.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = E63B6743274344E400CFEDBA /* StripeCameraCore.xcframework */; }; - E6AA24EE2744ABE000FD205E /* StripeCameraCore.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E63B6743274344E400CFEDBA /* StripeCameraCore.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; E6AFFAF526E972950067462F /* StripeUICore.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = E6AFFAF426E972950067462F /* StripeUICore.xcframework */; }; + E6C5F5FE2CA109F100861709 /* StripeConnect.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = E6C5F5FD2CA109F100861709 /* StripeConnect.xcframework */; }; E6F05EAA2687C76F00614D61 /* StripeCore.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = E6F05EA92687C76F00614D61 /* StripeCore.xcframework */; }; /* End PBXBuildFile section */ @@ -42,24 +38,6 @@ }; /* End PBXContainerItemProxy section */ -/* Begin PBXCopyFilesBuildPhase section */ - 31FF1DB3255FA383000EF4B0 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 31138E7028DBD87B008AF554 /* StripePaymentSheet.xcframework in Embed Frameworks */, - 31138E7328DBD87E008AF554 /* StripePaymentsUI.xcframework in Embed Frameworks */, - E6AA24EE2744ABE000FD205E /* StripeCameraCore.xcframework in Embed Frameworks */, - 31FF1DB2255FA383000EF4B0 /* Stripe.xcframework in Embed Frameworks */, - 31138E7628DBD881008AF554 /* StripePayments.xcframework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - /* Begin PBXFileReference section */ 04E6FCE11B714AC2000C8759 /* CarthageTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CarthageTest.app; sourceTree = BUILT_PRODUCTS_DIR; }; 04E6FCE51B714AC2000C8759 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -83,6 +61,7 @@ E63B6743274344E400CFEDBA /* StripeCameraCore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = StripeCameraCore.xcframework; path = Carthage/Build/StripeCameraCore.xcframework; sourceTree = ""; }; E6A36A5B26BA4E0E002A4427 /* StripeIdentity.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = StripeIdentity.xcframework; path = Carthage/Build/StripeIdentity.xcframework; sourceTree = ""; }; E6AFFAF426E972950067462F /* StripeUICore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = StripeUICore.xcframework; path = Carthage/Build/StripeUICore.xcframework; sourceTree = ""; }; + E6C5F5FD2CA109F100861709 /* StripeConnect.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = StripeConnect.xcframework; path = Carthage/Build/StripeConnect.xcframework; sourceTree = ""; }; E6F05EA92687C76F00614D61 /* StripeCore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = StripeCore.xcframework; path = Carthage/Build/StripeCore.xcframework; sourceTree = ""; }; /* End PBXFileReference section */ @@ -99,6 +78,7 @@ 3C4D20AD273C673200BC6444 /* StripeFinancialConnections.xcframework in Frameworks */, 31138E7228DBD87D008AF554 /* StripePaymentsUI.xcframework in Frameworks */, 3137B69427437E3500CE7F5C /* StripeApplePay.xcframework in Frameworks */, + E6C5F5FE2CA109F100861709 /* StripeConnect.xcframework in Frameworks */, E6AA24ED2744ABE000FD205E /* StripeCameraCore.xcframework in Frameworks */, 31CA744B25CCC669007FE8BF /* Stripe3DS2.xcframework in Frameworks */, E6AFFAF526E972950067462F /* StripeUICore.xcframework in Frameworks */, @@ -177,6 +157,7 @@ 31CA744925CCC669007FE8BF /* Frameworks */ = { isa = PBXGroup; children = ( + E6C5F5FD2CA109F100861709 /* StripeConnect.xcframework */, 31138E7428DBD881008AF554 /* StripePayments.xcframework */, 31138E7128DBD87D008AF554 /* StripePaymentsUI.xcframework */, 31138E6E28DBD87B008AF554 /* StripePaymentSheet.xcframework */, @@ -202,7 +183,6 @@ 04E6FCDD1B714AC2000C8759 /* Sources */, 04E6FCDE1B714AC2000C8759 /* Frameworks */, 04E6FCDF1B714AC2000C8759 /* Resources */, - 31FF1DB3255FA383000EF4B0 /* Embed Frameworks */, ); buildRules = ( ); @@ -435,6 +415,7 @@ FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", + "$(PROJECT_DIR)/Carthage/Build", ); INFOPLIST_FILE = CarthageTest/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -454,6 +435,7 @@ FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", + "$(PROJECT_DIR)/Carthage/Build", ); INFOPLIST_FILE = CarthageTest/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/Tests/installation_tests/carthage/CarthageTest/Info.plist b/Tests/installation_tests/carthage/CarthageTest/Info.plist index 6905cc67bbf..6f0689927cb 100644 --- a/Tests/installation_tests/carthage/CarthageTest/Info.plist +++ b/Tests/installation_tests/carthage/CarthageTest/Info.plist @@ -36,5 +36,7 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + NSCameraUsageDescription + camera description diff --git a/Tests/installation_tests/carthage/CarthageTest/ViewController.swift b/Tests/installation_tests/carthage/CarthageTest/ViewController.swift index cda3a773946..13932e84b26 100644 --- a/Tests/installation_tests/carthage/CarthageTest/ViewController.swift +++ b/Tests/installation_tests/carthage/CarthageTest/ViewController.swift @@ -9,6 +9,7 @@ import Stripe import StripeApplePay import StripeCardScan +@_spi(PrivateBetaConnect) import StripeConnect import StripeFinancialConnections import UIKit @@ -19,25 +20,20 @@ class ViewController: UIViewController { StripeAPI.defaultPublishableKey = "test" StripeAPI.paymentRequest(withMerchantIdentifier: "test", country: "US", currency: "USD") - if #available(iOS 12.0, *) { - let _ = FinancialConnectionsSheet( - financialConnectionsSessionClientSecret: "", - returnURL: nil - ) - } + let _ = FinancialConnectionsSheet( + financialConnectionsSessionClientSecret: "", + returnURL: nil + ) - if #available(iOS 11.2, *) { - let _ = CardImageVerificationSheet( - cardImageVerificationIntentId: "foo", - cardImageVerificationIntentSecret: "foo" - ) - } - // Do any additional setup after loading the view, typically from a nib. - } + let _ = CardImageVerificationSheet( + cardImageVerificationIntentId: "foo", + cardImageVerificationIntentSecret: "foo" + ) - override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - // Dispose of any resources that can be recreated. + if #available(iOS 15.0, *) { + let _ = EmbeddedComponentManager { + return nil + } + } } - } diff --git a/Tests/installation_tests/cocoapods/with_frameworks_swift/CocoapodsTest.xcodeproj/project.pbxproj b/Tests/installation_tests/cocoapods/with_frameworks_swift/CocoapodsTest.xcodeproj/project.pbxproj index 0d55124390e..84574a22282 100644 --- a/Tests/installation_tests/cocoapods/with_frameworks_swift/CocoapodsTest.xcodeproj/project.pbxproj +++ b/Tests/installation_tests/cocoapods/with_frameworks_swift/CocoapodsTest.xcodeproj/project.pbxproj @@ -372,6 +372,7 @@ "${BUILT_PRODUCTS_DIR}/StripeApplePay/StripeApplePay.framework", "${BUILT_PRODUCTS_DIR}/StripeCameraCore/StripeCameraCore.framework", "${BUILT_PRODUCTS_DIR}/StripeCardScan/StripeCardScan.framework", + "${BUILT_PRODUCTS_DIR}/StripeConnect/StripeConnect.framework", "${BUILT_PRODUCTS_DIR}/StripeCore/StripeCore.framework", "${BUILT_PRODUCTS_DIR}/StripeFinancialConnections/StripeFinancialConnections.framework", "${BUILT_PRODUCTS_DIR}/StripeIdentity/StripeIdentity.framework", @@ -386,6 +387,7 @@ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/StripeApplePay.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/StripeCameraCore.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/StripeCardScan.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/StripeConnect.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/StripeCore.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/StripeFinancialConnections.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/StripeIdentity.framework", diff --git a/Tests/installation_tests/cocoapods/with_frameworks_swift/CocoapodsTest/Info.plist b/Tests/installation_tests/cocoapods/with_frameworks_swift/CocoapodsTest/Info.plist index 6905cc67bbf..56d9adbb9db 100644 --- a/Tests/installation_tests/cocoapods/with_frameworks_swift/CocoapodsTest/Info.plist +++ b/Tests/installation_tests/cocoapods/with_frameworks_swift/CocoapodsTest/Info.plist @@ -22,6 +22,8 @@ 1 LSRequiresIPhoneOS + NSCameraUsageDescription + camera description UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/Tests/installation_tests/cocoapods/with_frameworks_swift/CocoapodsTest/ViewController.swift b/Tests/installation_tests/cocoapods/with_frameworks_swift/CocoapodsTest/ViewController.swift index 6a491ba159d..b1474e03a92 100644 --- a/Tests/installation_tests/cocoapods/with_frameworks_swift/CocoapodsTest/ViewController.swift +++ b/Tests/installation_tests/cocoapods/with_frameworks_swift/CocoapodsTest/ViewController.swift @@ -9,6 +9,7 @@ import Stripe import StripeApplePay import StripeCardScan +@_spi(PrivateBetaConnect) import StripeConnect import StripeFinancialConnections import StripeIdentity import StripePaymentSheet @@ -24,30 +25,25 @@ class ViewController: UIViewController { let _ = IdentityVerificationSheet(verificationSessionClientSecret: "test") } - if #available(iOS 12.0, *) { - let _ = FinancialConnectionsSheet( - financialConnectionsSessionClientSecret: "", - returnURL: nil - ) - } + let _ = FinancialConnectionsSheet( + financialConnectionsSessionClientSecret: "", + returnURL: nil + ) - if #available(iOS 11.2, *) { - let _ = CardImageVerificationSheet( - cardImageVerificationIntentId: "foo", - cardImageVerificationIntentSecret: "foo" - ) - } + let _ = CardImageVerificationSheet( + cardImageVerificationIntentId: "foo", + cardImageVerificationIntentSecret: "foo" + ) let _ = PaymentSheet( paymentIntentClientSecret: "", configuration: PaymentSheet.Configuration() ) - // Do any additional setup after loading the view, typically from a nib. - } - override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - // Dispose of any resources that can be recreated. + if #available(iOS 15.0, *) { + let _ = EmbeddedComponentManager { + nil + } + } } - } diff --git a/Tests/installation_tests/cocoapods/with_frameworks_swift/Podfile b/Tests/installation_tests/cocoapods/with_frameworks_swift/Podfile index b3c69bce5d9..8c14da73a52 100644 --- a/Tests/installation_tests/cocoapods/with_frameworks_swift/Podfile +++ b/Tests/installation_tests/cocoapods/with_frameworks_swift/Podfile @@ -9,6 +9,7 @@ target 'CocoapodsTest' do pod 'StripeCardScan', path: '../../../..' pod 'StripeApplePay', path: '../../../..' pod 'StripeCameraCore', path: '../../../..' + pod 'StripeConnect', path: '../../../..' pod 'StripeCore', path: '../../../..' pod 'StripeUICore', path: '../../../..' pod 'StripePayments', path: '../../../..' diff --git a/Tests/installation_tests/swift_package_manager/with_objc/SPMTest/Info.plist b/Tests/installation_tests/swift_package_manager/with_objc/SPMTest/Info.plist index 16be3b68112..f8367a2e0e8 100644 --- a/Tests/installation_tests/swift_package_manager/with_objc/SPMTest/Info.plist +++ b/Tests/installation_tests/swift_package_manager/with_objc/SPMTest/Info.plist @@ -20,6 +20,8 @@ 1 LSRequiresIPhoneOS + NSCameraUsageDescription + camera description UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/Tests/installation_tests/swift_package_manager/with_swift/SPMTest.xcodeproj/project.pbxproj b/Tests/installation_tests/swift_package_manager/with_swift/SPMTest.xcodeproj/project.pbxproj index 35674f9b3d8..dcc27907361 100644 --- a/Tests/installation_tests/swift_package_manager/with_swift/SPMTest.xcodeproj/project.pbxproj +++ b/Tests/installation_tests/swift_package_manager/with_swift/SPMTest.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 52; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -20,6 +20,7 @@ C176899320616C7E003DE895 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C176899120616C7E003DE895 /* LaunchScreen.storyboard */; }; E63B8ED227DDBA91000A7243 /* StripeIdentityAssetTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E63B8ED127DDBA91000A7243 /* StripeIdentityAssetTests.swift */; }; E6A36A5A26BA4C34002A4427 /* StripeIdentity in Frameworks */ = {isa = PBXBuildFile; productRef = E6A36A5926BA4C34002A4427 /* StripeIdentity */; }; + E6C5F5FA2CA0FAC100861709 /* StripeConnect in Frameworks */ = {isa = PBXBuildFile; productRef = E6C5F5F92CA0FAC100861709 /* StripeConnect */; }; E6E0262526BA187800CE4304 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6E0262426BA187800CE4304 /* ViewController.swift */; }; E6E0262726BA195D00CE4304 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6E0262626BA195D00CE4304 /* AppDelegate.swift */; }; /* End PBXBuildFile section */ @@ -78,6 +79,7 @@ 3BD980892743194F00B09BCD /* StripeCardScan in Frameworks */, 3137B6922743799C00CE7F5C /* StripeApplePay in Frameworks */, 31DC3DB12537D02000623028 /* Stripe in Frameworks */, + E6C5F5FA2CA0FAC100861709 /* StripeConnect in Frameworks */, E6A36A5A26BA4C34002A4427 /* StripeIdentity in Frameworks */, 31138ECF28DE66F5008AF554 /* StripePaymentSheet in Frameworks */, 3C4D20A9273C644500BC6444 /* StripeFinancialConnections in Frameworks */, @@ -180,6 +182,7 @@ 3BD980882743194F00B09BCD /* StripeCardScan */, 3137B6912743799C00CE7F5C /* StripeApplePay */, 31138ECE28DE66F5008AF554 /* StripePaymentSheet */, + E6C5F5F92CA0FAC100861709 /* StripeConnect */, ); productName = CocoapodsTest; productReference = C176898320616C7E003DE895 /* SPMTest.app */; @@ -559,6 +562,10 @@ isa = XCSwiftPackageProductDependency; productName = StripeIdentity; }; + E6C5F5F92CA0FAC100861709 /* StripeConnect */ = { + isa = XCSwiftPackageProductDependency; + productName = StripeConnect; + }; /* End XCSwiftPackageProductDependency section */ }; rootObject = C176897B20616C7E003DE895 /* Project object */; diff --git a/Tests/installation_tests/swift_package_manager/with_swift/SPMTest/Info.plist b/Tests/installation_tests/swift_package_manager/with_swift/SPMTest/Info.plist index 16be3b68112..f8367a2e0e8 100644 --- a/Tests/installation_tests/swift_package_manager/with_swift/SPMTest/Info.plist +++ b/Tests/installation_tests/swift_package_manager/with_swift/SPMTest/Info.plist @@ -20,6 +20,8 @@ 1 LSRequiresIPhoneOS + NSCameraUsageDescription + camera description UILaunchStoryboardName LaunchScreen UIMainStoryboardFile diff --git a/Tests/installation_tests/swift_package_manager/with_swift/SPMTest/ViewController.swift b/Tests/installation_tests/swift_package_manager/with_swift/SPMTest/ViewController.swift index 435e58f5c31..6c547c60563 100644 --- a/Tests/installation_tests/swift_package_manager/with_swift/SPMTest/ViewController.swift +++ b/Tests/installation_tests/swift_package_manager/with_swift/SPMTest/ViewController.swift @@ -9,6 +9,7 @@ import Stripe import StripeApplePay import StripeCardScan +@_spi(PrivateBetaConnect) import StripeConnect import StripeFinancialConnections import StripeIdentity import StripePaymentSheet @@ -44,7 +45,11 @@ class ViewController: UIViewController { setupIntentClientSecret: "", configuration: PaymentSheet.Configuration() ) - // Do any additional setup after loading the view. + if #available(iOS 15.0, *) { + let _ = EmbeddedComponentManager { + nil + } + } } } diff --git a/modules.yaml b/modules.yaml index 2579b2fb20f..dabc4ed31ba 100644 --- a/modules.yaml +++ b/modules.yaml @@ -189,6 +189,17 @@ modules: custom_string_convertible_dir: StripeUICore/StripeUICore/Source/Categories supports_catalyst: true +- podspec: StripeConnect.podspec + scheme: StripeConnect + framework_name: StripeConnect + supports_catalyst: false + docs: + output: docs/stripeconnect + readme: StripeConnect/README.md + include: + - StripeCore + size_report: true + # All podspecs that get pushed to Cocoapods in the order of dependencies such # that a pods dependencies must appear before it in the list. # This is the order that podspecs will be pushed to `pod trunk`. @@ -204,3 +215,4 @@ pod_push_order: - StripeIdentity.podspec - StripeCardScan.podspec - StripeFinancialConnections.podspec +- StripeConnect.podspec