Skip to content

Commit 6f7cd72

Browse files
[Release] | 4.0.0 (#55)
1 parent 9b0a274 commit 6f7cd72

204 files changed

Lines changed: 75908 additions & 39290 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,33 @@
11
# Changelog
22
All notable changes to this project will be documented in this file. To know better on how to write and maintain a changelog, refer to [this link](https://keepachangelog.com/en/1.0.0/).
33

4+
## [4.0.0] - New UI
5+
6+
### Added
7+
- A new, gorgeous, conversion-driven UI in parity with the 2025 TrueLayer Web Hosted Payments Page, with the following new features available automatically for all devices running iOS 15 and up on GBP and EUR+Ireland single payments:
8+
- A single-screen, modern, declarative UI system under the hood, allowing for smooth transitions and overall snappier look-and-feel.
9+
- Retries: change bank / payment providers on the fly, or retry failed payments without restarting the SDK.
10+
- Cancellation screen streamlining: more insight on why users are abandoning their payments.
11+
- Provider pre-selection: automatically select the last used provider, allowing for faster one-click payments and more engaged, better converting users.
12+
13+
Heads-up: the following requests do not support the New UI and will fallback onto the legacy UI, as seen in versions 3.9.1 and below:
14+
- Devices running iOS 14.x
15+
- Mandates / recurring payments
16+
- EUR payments for countries other than Ireland-only
17+
18+
### Changed
19+
- Several quality-of-life and performance improvements under the hood, allowing for improved reliability, faster performance, and better troubleshooting of the SDK overall.
20+
21+
### Removed
22+
- The previously deprecated `.redirect` case has now been removed.
23+
424
## [3.9.1] - AIS+PIS QoL and Patches
525

626
### Fixed
727
- A crash where an attempt to fill the provider selection list with duplicate providers was made, which is now handled gracefully as unexpected behavior.
828
- Some cases where the user would get stuck on a Wait screen, especially when prompted by the bank to confirm the TrueLayer transaction in their banking app.
929
- Routing logic for certain providers requesting a PIS-only flow.
10-
- An issue with the Scheme Selection screen when the Continue button would not get disabled while processing, which has previously manifested for a very small percentage of users on slower network connections.
30+
- An issue with the Scheme Selection screen when the Continue button would not get disabled while processing, which previously manifested for a very small percentage of users on slower network connections.
1131

1232
## [3.9.0] - AIS+PIS Flow
1333

Frameworks/TrueLayerAPI.xcframework/Info.plist

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,32 @@
88
<key>BinaryPath</key>
99
<string>TrueLayerAPI.framework/TrueLayerAPI</string>
1010
<key>LibraryIdentifier</key>
11-
<string>ios-arm64_x86_64-simulator</string>
11+
<string>ios-arm64</string>
1212
<key>LibraryPath</key>
1313
<string>TrueLayerAPI.framework</string>
1414
<key>SupportedArchitectures</key>
1515
<array>
1616
<string>arm64</string>
17-
<string>x86_64</string>
1817
</array>
1918
<key>SupportedPlatform</key>
2019
<string>ios</string>
21-
<key>SupportedPlatformVariant</key>
22-
<string>simulator</string>
2320
</dict>
2421
<dict>
2522
<key>BinaryPath</key>
2623
<string>TrueLayerAPI.framework/TrueLayerAPI</string>
2724
<key>LibraryIdentifier</key>
28-
<string>ios-arm64</string>
25+
<string>ios-arm64_x86_64-simulator</string>
2926
<key>LibraryPath</key>
3027
<string>TrueLayerAPI.framework</string>
3128
<key>SupportedArchitectures</key>
3229
<array>
3330
<string>arm64</string>
31+
<string>x86_64</string>
3432
</array>
3533
<key>SupportedPlatform</key>
3634
<string>ios</string>
35+
<key>SupportedPlatformVariant</key>
36+
<string>simulator</string>
3737
</dict>
3838
</array>
3939
<key>CFBundlePackageType</key>
Binary file not shown.

Frameworks/TrueLayerAPI.xcframework/ios-arm64/TrueLayerAPI.framework/Modules/TrueLayerAPI.swiftmodule/arm64-apple-ios.abi.json

Lines changed: 525 additions & 118 deletions
Large diffs are not rendered by default.

Frameworks/TrueLayerAPI.xcframework/ios-arm64/TrueLayerAPI.framework/Modules/TrueLayerAPI.swiftmodule/arm64-apple-ios.private.swiftinterface

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ import _SwiftConcurrencyShims
8585
@_spi(TrueLayer) public func getLegalCopy(for providerCountryCode: Swift.String) async throws -> TrueLayerCore.Core.Payments.Models.Shared.ActionableCopy
8686
@_spi(TrueLayer) public func getProvider(with providerID: Swift.String) async throws -> TrueLayerCore.Core.Payments.Models.Shared.Provider
8787
@_spi(TrueLayer) public func submitConsent() async throws -> TrueLayerCore.Core.Payments.Models.Mandate.AuthorizationFlow.Status
88-
@_spi(TrueLayer) public func cancelMandate() async throws
88+
@_spi(TrueLayer) public func cancelMandate(providerID: Swift.String?, reason: Swift.String?, comment: Swift.String?) async throws
8989
@_spi(TrueLayer) public func submitUserAccountSelection(userAccountID: Swift.String) async throws -> TrueLayerCore.Core.Payments.Models.Mandate.AuthorizationFlow.Status
9090
@_spi(TrueLayer) public func submitNewUserAccountSelection() async throws -> TrueLayerCore.Core.Payments.Models.Mandate.AuthorizationFlow.Status
9191
@_spi(TrueLayer) public func deleteUserAccount(userAccountID: Swift.String) async throws -> TrueLayerCore.Core.Payments.Models.Mandate.AuthorizationFlow.Status
@@ -118,19 +118,19 @@ import _SwiftConcurrencyShims
118118
@_spi(TrueLayer) public func getPISLegalCopy(providerCountryCode: Swift.String) async throws -> TrueLayerCore.Core.Payments.Models.Shared.PISLegals
119119
@_spi(TrueLayer) public func getUserPriming(providerIdentifier: TrueLayerCore.Core.Payments.Models.Shared.Provider.Identifier) async throws -> TrueLayerCore.Core.Payments.Models.Shared.Provider.UserPriming.Status
120120
@_spi(TrueLayer) public func getProvider(with providerID: Swift.String) async throws -> TrueLayerCore.Core.Payments.Models.Shared.Provider
121+
@_spi(TrueLayer) public func getCancellationFormInformation(providerId: Swift.String?) async throws -> TrueLayerCore.Core.Payments.Models.Shared.CancellationFormInformation
121122
}
122123
}
123124
@_spi(TrueLayer) extension TrueLayerAPI.API.Payments.Requests.Manager {
124125
@_spi(TrueLayer) public struct SinglePayment : TrueLayerAPI.RequestsManager {
125126
@_spi(TrueLayer) public init(using configuration: any TrueLayerAPI.RequestsManagerConfigurationProvider)
126127
@_spi(TrueLayer) public func getPaymentInformation() async throws -> TrueLayerCore.Core.Payments.Models.SinglePayment.Information
127-
@_spi(TrueLayer) public func pollPaymentStatus(shouldEndPollingPrematurely: @escaping (TrueLayerCore.Core.Payments.Models.SinglePayment.Status) -> Swift.Bool) async throws -> TrueLayerCore.Core.Payments.Models.SinglePayment.Status
128+
@_spi(TrueLayer) public func pollPaymentStatus(pollingInterval: Foundation.TimeInterval, shouldEndPollingPrematurely: @escaping (TrueLayerCore.Core.Payments.Models.SinglePayment.Status) -> Swift.Bool) async throws -> TrueLayerCore.Core.Payments.Models.SinglePayment.Status
128129
@_spi(TrueLayer) public func startAuthorization() async throws -> TrueLayerCore.Core.Payments.Models.SinglePayment.AuthorizationFlow.Status
129130
@_spi(TrueLayer) public func submitProviderSelection(_ providerIdentifier: TrueLayerCore.Core.Payments.Models.Shared.Provider.Identifier) async throws -> TrueLayerCore.Core.Payments.Models.SinglePayment.AuthorizationFlow.Status
130131
@_spi(TrueLayer) public func submitConsent() async throws -> TrueLayerCore.Core.Payments.Models.SinglePayment.AuthorizationFlow.Status
131-
#warning("Moved to shared")
132132
@_spi(TrueLayer) public func getLegalCopy(for providerCountryCode: Swift.String) async throws -> TrueLayerCore.Core.Payments.Models.Shared.ActionableCopy
133-
@_spi(TrueLayer) public func cancelPayment() async throws
133+
@_spi(TrueLayer) public func cancelPayment(providerID: Swift.String?, reason: Swift.String?, comment: Swift.String?) async throws
134134
@_spi(TrueLayer) public func getAdditionalInputsHelpText(with providerCountryCode: Swift.String) async throws -> [TrueLayerCore.Core.Payments.Models.SinglePayment.AuthorizationFlow.AdditionalInputs.HelpText]
135135
@_spi(TrueLayer) public func getAdditionalInputsLocalizations(countryCode: Swift.String) async throws -> [TrueLayerCore.Core.Payments.Models.SinglePayment.AuthorizationFlow.AdditionalInputs.Localization]
136136
@_spi(TrueLayer) public func submitForm(inputs: [Swift.String : Swift.String], adjacent: TrueLayerCore.Core.Payments.Models.Shared.Adjacent?) async throws -> TrueLayerCore.Core.Payments.Models.SinglePayment.AuthorizationFlow.Status
@@ -139,6 +139,8 @@ import _SwiftConcurrencyShims
139139
@_spi(TrueLayer) public func deleteUserAccount(userAccountID: Swift.String) async throws -> TrueLayerCore.Core.Payments.Models.SinglePayment.AuthorizationFlow.Status
140140
@_spi(TrueLayer) public func getSchemeSelectionType(currency: Swift.String, schemes: [Swift.String]) async throws -> TrueLayerCore.Core.Payments.Models.SinglePayment.Scheme.SelectionType
141141
@_spi(TrueLayer) public func submitScheme(_ schemeIdentifier: TrueLayerCore.Core.Payments.Models.SinglePayment.Scheme.Identifier) async throws -> TrueLayerCore.Core.Payments.Models.SinglePayment.AuthorizationFlow.Status
142+
@_spi(TrueLayer) public func getProvidersInfo(paymentID: Swift.String) async throws -> TrueLayerCore.Core.Payments.Models.SinglePayment.ProvidersInfo
143+
@_spi(TrueLayer) public func retryPayment() async throws -> TrueLayerCore.Core.Payments.Models.SinglePayment.Status
142144
}
143145
}
144146
@_spi(TrueLayer) extension TrueLayerAPI.API {
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)