diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b789943..d771b27b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,50 @@ # RELEASES +## LinkKit 7.0.0 - 2026-06-09 + +LinkKit 7.0.0 is a major release introducing a modernized, session-based architecture and native SwiftUI support. This version significantly reduces the SDK footprint while offering more granular control over Link flows. + +### ⚠️ Breaking Changes & Deprecations + +* **Session-based API**: The legacy `Handler` API has been replaced by specialized `Session` objects (e.g., `PlaidLinkSession`, `PlaidLayerSession`). +* **CocoaPods Retirement**: CocoaPods is no longer a supported distribution method. Please migrate to **Swift Package Manager (SPM)** to continue receiving updates. +* **Swift-Only Core**: The core `LinkKit` module is now Swift-only. For Objective-C support, you must explicitly import the new `LinkKitObjC` module. + +### Requirements + +| Name | Version | +|------|---------| +| Xcode | >= 16.1.0 | +| iOS | >= 15.0 | +| Swift | >= 5.10 | + +### Key Enhancements + +* **SDK Footprint Reduction**: Reduced the executable size from ~6.4MB to **2.5MB**, optimizing app bundle sizes. +* **Native SwiftUI Support**: Introduces native modifiers like `.plaidLink(isPresented:token:...)` and the `.sheet()` method on session objects, removing the need for `UIViewControllerRepresentable`. +* **Pre-Initialization & `onLoad`**: The `onLoad` callback is now a first-class citizen in `LinkTokenConfiguration`. You can now initialize sessions in the background and only present UI when the SDK is "Ready." +* **Modernized FinanceKit Sync**: Moved FinanceKit functionality to `PlaidFinanceKit` with support for **async/await** and a new `SyncBehavior` enum. + +### Feature Updates + +#### Standard Link +- Unified `LinkTokenConfiguration` where `onSuccess`, `onExit`, `onEvent`, and `onLoad` are all defined at initialization. +- Replaced `Plaid.create` result-switching with a throwing `Plaid.createPlaidLinkSession` method. + +#### Plaid Layer +- Introduced `LayerTokenConfiguration` and `PlaidLayerSession`. +- Added `session.submit(data:)` to programmatically pass user information (Phone, DOB) to an active Layer session. + +#### Headless Link +- Optimized `PlaidHeadlessSession` which removes the need for `noLoadingState` flags; the session is entirely invisible until programmatically started. + +#### Embedded Link +- New `EmbeddedSearchView` (SwiftUI) and `EmbeddedSearchUIView` (UIKit) provide a "search-first" native experience without manual view wrapping. + +--- + +**Note:** For detailed code examples and step-by-step instructions on transitioning your implementation, please refer to our [v7.0.0 Migration Guide](https://github.com/plaid/plaid-link-ios/blob/master/v7-migration-guide.md). + # LinkKit 7.0.0-beta4 - 2026-05-15 LinkKit 7.0.0 is a major release introducing a modernized, session-based architecture and native SwiftUI support. This version significantly reduces the SDK footprint while offering more granular control over Link flows. @@ -43,7 +88,7 @@ LinkKit 7.0.0 is a major release introducing a modernized, session-based archite --- -**Note:** For detailed code examples and step-by-step instructions on transitioning your implementation, please refer to our [v7.0.0 Migration Guide](#). +**Note:** For detailed code examples and step-by-step instructions on transitioning your implementation, please refer to our [v7.0.0 Migration Guide](https://github.com/plaid/plaid-link-ios/blob/master/v7-migration-guide.md). # LinkKit 7.0.0-beta3 - 2026-03-23 @@ -88,7 +133,7 @@ LinkKit 7.0.0 is a major release introducing a modernized, session-based archite --- -**Note:** For detailed code examples and step-by-step instructions on transitioning your implementation, please refer to our [v7.0.0 Migration Guide](#). +**Note:** For detailed code examples and step-by-step instructions on transitioning your implementation, please refer to our [v7.0.0 Migration Guide](https://github.com/plaid/plaid-link-ios/blob/master/v7-migration-guide.md). # LinkKit 7.0.0-beta2 - 2026-03-12 @@ -133,7 +178,7 @@ LinkKit 7.0.0 is a major release introducing a modernized, session-based archite --- -**Note:** For detailed code examples and step-by-step instructions on transitioning your implementation, please refer to our [v7.0.0 Migration Guide](#). +**Note:** For detailed code examples and step-by-step instructions on transitioning your implementation, please refer to our [v7.0.0 Migration Guide](https://github.com/plaid/plaid-link-ios/blob/master/v7-migration-guide.md). # LinkKit 7.0.0-beta1 - 2026-02-27 @@ -179,7 +224,7 @@ LinkKit 7.0.0 is a major release introducing a modernized, session-based archite --- -**Note:** For detailed code examples and step-by-step instructions on transitioning your implementation, please refer to our [v7.0.0 Migration Guide](#). +**Note:** For detailed code examples and step-by-step instructions on transitioning your implementation, please refer to our [v7.0.0 Migration Guide](https://github.com/plaid/plaid-link-ios/blob/master/v7-migration-guide.md). ## LinkKit 6.4.7 - 2026-03-19 ### Requirements diff --git a/LinkKit.xcframework/Info.plist b/LinkKit.xcframework/Info.plist index 7e99ddb0..be439927 100644 --- a/LinkKit.xcframework/Info.plist +++ b/LinkKit.xcframework/Info.plist @@ -8,32 +8,32 @@ BinaryPath LinkKit.framework/LinkKit LibraryIdentifier - ios-arm64_x86_64-simulator + ios-arm64 LibraryPath LinkKit.framework SupportedArchitectures arm64 - x86_64 SupportedPlatform ios - SupportedPlatformVariant - simulator BinaryPath LinkKit.framework/LinkKit LibraryIdentifier - ios-arm64 + ios-arm64_x86_64-simulator LibraryPath LinkKit.framework SupportedArchitectures arm64 + x86_64 SupportedPlatform ios + SupportedPlatformVariant + simulator BinaryPath diff --git a/LinkKit.xcframework/ios-arm64/LinkKit.framework/Info.plist b/LinkKit.xcframework/ios-arm64/LinkKit.framework/Info.plist index db045fcc..33204b22 100644 Binary files a/LinkKit.xcframework/ios-arm64/LinkKit.framework/Info.plist and b/LinkKit.xcframework/ios-arm64/LinkKit.framework/Info.plist differ diff --git a/LinkKit.xcframework/ios-arm64/LinkKit.framework/LinkKit b/LinkKit.xcframework/ios-arm64/LinkKit.framework/LinkKit index 5ced12a2..35e7d75b 100755 Binary files a/LinkKit.xcframework/ios-arm64/LinkKit.framework/LinkKit and b/LinkKit.xcframework/ios-arm64/LinkKit.framework/LinkKit differ diff --git a/LinkKit.xcframework/ios-arm64/LinkKit.framework/Modules/LinkKit.swiftmodule/arm64-apple-ios.swiftmodule b/LinkKit.xcframework/ios-arm64/LinkKit.framework/Modules/LinkKit.swiftmodule/arm64-apple-ios.swiftmodule index 2c66e7c8..4d1f9e64 100644 Binary files a/LinkKit.xcframework/ios-arm64/LinkKit.framework/Modules/LinkKit.swiftmodule/arm64-apple-ios.swiftmodule and b/LinkKit.xcframework/ios-arm64/LinkKit.framework/Modules/LinkKit.swiftmodule/arm64-apple-ios.swiftmodule differ diff --git a/LinkKit.xcframework/ios-arm64/LinkKit.framework/_CodeSignature/CodeResources b/LinkKit.xcframework/ios-arm64/LinkKit.framework/_CodeSignature/CodeResources index e23c866c..d1ad8dd3 100644 --- a/LinkKit.xcframework/ios-arm64/LinkKit.framework/_CodeSignature/CodeResources +++ b/LinkKit.xcframework/ios-arm64/LinkKit.framework/_CodeSignature/CodeResources @@ -14,7 +14,7 @@ Info.plist - ZAQkmG5RawS0ogREDoLDWqiRkI0= + CCtLF/Sq9kGzANP7WX3EbJBgeYs= Modules/LinkKit.swiftmodule/arm64-apple-ios.abi.json @@ -34,7 +34,7 @@ Modules/LinkKit.swiftmodule/arm64-apple-ios.swiftmodule - nVR89KyqcvwC8qYR+x9UbCUbP28= + Fn18Kk2T3pfmEctYDq9vjfF0Tkw= Modules/module.modulemap @@ -93,7 +93,7 @@ hash2 - pBQ4AbR/cU3ku9xEGFL+MrWitJIlgNDuPbBm3A+puT4= + 1PE1LbGRuPPBhIcvlGo7kow10ukFXfRFNblUmafFp/8= Modules/module.modulemap diff --git a/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/LinkKit b/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/LinkKit index 658eb79e..20eded68 100755 Binary files a/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/LinkKit and b/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/LinkKit differ diff --git a/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/Modules/LinkKit.swiftmodule/arm64-apple-ios-macabi.swiftmodule b/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/Modules/LinkKit.swiftmodule/arm64-apple-ios-macabi.swiftmodule index 3bfd0868..00a034a5 100644 Binary files a/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/Modules/LinkKit.swiftmodule/arm64-apple-ios-macabi.swiftmodule and b/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/Modules/LinkKit.swiftmodule/arm64-apple-ios-macabi.swiftmodule differ diff --git a/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/Modules/LinkKit.swiftmodule/x86_64-apple-ios-macabi.swiftmodule b/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/Modules/LinkKit.swiftmodule/x86_64-apple-ios-macabi.swiftmodule index 9f3ac6e5..30f67482 100644 Binary files a/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/Modules/LinkKit.swiftmodule/x86_64-apple-ios-macabi.swiftmodule and b/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/Modules/LinkKit.swiftmodule/x86_64-apple-ios-macabi.swiftmodule differ diff --git a/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/Resources/Info.plist b/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/Resources/Info.plist index c0bc1116..e573a697 100644 --- a/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/Resources/Info.plist +++ b/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/Resources/Info.plist @@ -23,7 +23,7 @@ MacOSX CFBundleVersion - 4020.1778793837 + 4031.1781030446 DTCompiler com.apple.compilers.llvm.clang.1_0 DTPlatformBuild @@ -47,9 +47,9 @@ SCMBuildBranch HEAD SCMBuildNumber - 1778793837 + 1781030446 SCMBuildRevision - 841fd5346 + 6aa367050 UIDeviceFamily 2 diff --git a/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/_CodeSignature/CodeResources b/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/_CodeSignature/CodeResources index 894ff5d0..43c8c507 100644 --- a/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/_CodeSignature/CodeResources +++ b/LinkKit.xcframework/ios-arm64_x86_64-maccatalyst/LinkKit.framework/Versions/A/_CodeSignature/CodeResources @@ -6,7 +6,7 @@ Resources/Info.plist - yax60/uQf9nOLve7IXvxPmj+bxk= + a3aebBumpoVluQSBABdehBM517I= Resources/PrivacyInfo.xcprivacy @@ -61,7 +61,7 @@ hash2 - 1G+atN38NcG6UzgbFE1tuc7Ssrb7w2uLOVlfY9Tsr/Q= + EsDgLKNiEwLqJpvxGFyypIc06fYwkt7YMJw/Kc6IBnA= Modules/LinkKit.swiftmodule/x86_64-apple-ios-macabi.abi.json @@ -96,7 +96,7 @@ hash2 - byCtXHqshf3q/jzy81JkDtb7+6FxGSH60soNn8BuFlw= + v60ab9pnGtJvJLQ9XG7zN48fGLj2iuZI5GO81BHIVqU= Modules/module.modulemap @@ -110,7 +110,7 @@ hash2 - KfL9fGjMMwtBCPWWJ1iu11WUPZqiuhaCj1VQ7LSBI9Y= + ZB81yQ66UD+iAai/swst7OYDdbcn4rQPVnUfAvY9y4o= Resources/PrivacyInfo.xcprivacy diff --git a/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/Info.plist b/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/Info.plist index 7937cd84..cf76a9fa 100644 Binary files a/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/Info.plist and b/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/Info.plist differ diff --git a/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/LinkKit b/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/LinkKit index 29cd0c78..5996da4f 100755 Binary files a/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/LinkKit and b/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/LinkKit differ diff --git a/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/Modules/LinkKit.swiftmodule/arm64-apple-ios-simulator.swiftmodule b/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/Modules/LinkKit.swiftmodule/arm64-apple-ios-simulator.swiftmodule index 34fd5459..5dbb7c8d 100644 Binary files a/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/Modules/LinkKit.swiftmodule/arm64-apple-ios-simulator.swiftmodule and b/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/Modules/LinkKit.swiftmodule/arm64-apple-ios-simulator.swiftmodule differ diff --git a/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/Modules/LinkKit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule b/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/Modules/LinkKit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule index 9c453bcc..3f895dad 100644 Binary files a/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/Modules/LinkKit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule and b/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/Modules/LinkKit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule differ diff --git a/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/_CodeSignature/CodeResources b/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/_CodeSignature/CodeResources index a64a78b7..b89e5372 100644 --- a/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/_CodeSignature/CodeResources +++ b/LinkKit.xcframework/ios-arm64_x86_64-simulator/LinkKit.framework/_CodeSignature/CodeResources @@ -14,7 +14,7 @@ Info.plist - RH7lBCtThSEM8QOFY6bmFkQkMLk= + AgyYZj3go9s4dzNj5L+QQMHnTOA= Modules/LinkKit.swiftmodule/arm64-apple-ios-simulator.abi.json @@ -34,7 +34,7 @@ Modules/LinkKit.swiftmodule/arm64-apple-ios-simulator.swiftmodule - v/R5emF1ZTv81h6yfV+fSfLMENU= + mzLlm7/nmMjRGNrgnTNepzSTKC8= Modules/LinkKit.swiftmodule/x86_64-apple-ios-simulator.abi.json @@ -54,7 +54,7 @@ Modules/LinkKit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule - p/QXdCmZJ4SZ819E6DwkWLb1X6U= + G3EhoV6vT0GmydyoqIumSrhg0vQ= Modules/module.modulemap @@ -113,7 +113,7 @@ hash2 - NoQdr2jIzjHDvkbD0q2UqgstwYWRpZVVaRq5pMsmQVs= + J+O5khoK25tAydT9tgkYKawUxeHr6oDTFq6NDmoye/U= Modules/LinkKit.swiftmodule/x86_64-apple-ios-simulator.abi.json @@ -148,7 +148,7 @@ hash2 - 4HAmbkyYX2T5J3Bs7qUWxxJjgxZhPnZJD+eqD8W4/MY= + TAHp1Do9hxAzw2V4/Y4RxvU7DNpPhHkXyMl67e910MU= Modules/module.modulemap