Moneytree LINK SDK iOS 7.0.0
Moneytree LINK SDK iOS 7.0.0をリリースしました。
本リリースには 3 点の破壊的変更が含まれます。
- 最小デプロイメントターゲットを iOS 15.0 に引き上げ
- 「Authorization Code Grant(PKCE 無し)」に関連する API の削除・変更
- 従来より非推奨であった API の整理
1. 最小デプロイメントターゲットの引き上げ
Apple の Xcode 27 のシステム要件に対応するため、SDK がサポートする最小デプロイメントターゲットを iOS 15.0 に変更しました。
お客様のアプリのデプロイメントターゲット設定により、対応要否が分かれます。
- iOS 15.0 以上の場合 — 追加の対応は不要です。通常どおり v7.0.0 にアップデートしてください。
- iOS 14 以下の場合 — アプリのデプロイメントターゲットを iOS 15.0 以上に引き上げるまで、v6.8.1 の利用を継続してください。v7.0.0 にアップデートすると、アプリのビルドができなくなります。
2. 「Authorization Code Grant(PKCE 無し)」関連 API の削除・変更
「Authorization Code Grant(PKCE 無し)」は iOS SDK v6.3 より非推奨としておりましたが、本リリースで関連する API を削除しました。
対応要否は、ご利用中の API によって決まります。 認可フローとして PKCE をご利用の場合でも、下表の左側の API を呼び出されている場合はコードの変更が必要です。お使いの実装をご確認ください。
| 廃止・7.0.0 で削除 | 対応する PKCE 版 |
|---|---|
authorizeUsingCodeGrant(from:state:authOptions:animated:completion:) | authorize(_:options:animated:completion:) |
authorizeUsingPkce(from:authOptions:animated:completion:) | authorize(_:options:animated:completion:) |
onboard(from:authorizationType:email:state:region:animated:completion:) | onboard(_:email:animated:completion:) |
MTLConfiguration(redirectUri:) | なし(PKCE では不要) |
MTLConfiguration.redirectUri | なし(PKCE では不要) |
併せて削除された API
以下は Code Grant の廃止に伴い不要となった API です。通常のご利用では参照されていないと思われますが、コード内で参照されている場合は削除が必要です。
| 削除 | 補足 |
|---|---|
MTLinkClientError.errorUnavailableInPKCEMode(901) | Code Grant 専用の未使用エラーケース |
MTLinkClientError.errorUnavailableInAuthorizationCodeGrantMode(902) | Code Grant 専用の未使用エラーケース |
MTUrlHandler.validateStateOnCompletion() | Code Grant でのみ使用されていた MTUrlHandler のプロトコルメソッド |
MTLinkPkceAuthOptions | Code Grant と PKCE の二重構成時代の名残となっていたクラス。SDK の公開 API では使用されていないため、対応は不要と考えられます |
型が変更された API
| 変更前 | 変更後 | 補足 |
|---|---|---|
MTLinkClient.api(MTAPI?) | MTAPI(非 Optional) | Code Grant 構成では nil となる場合がありましたが、Code Grant の廃止に伴い常に利用可能となりました。Optional として扱っているコードは変更が必要です |
移行手順の詳細は、以下の移行ガイドをご参照ください。
OAuth 2.0「Authorization Code Grant」から「Authorization Code Grant with PKCE」への移行ガイド
3. 従来より非推奨であった API の整理
以下は Code Grant の廃止とは関係のない変更です。いずれも代替となる API を提供済みですので、代替 API をご利用の場合は対応は不要です。
削除された API
| 削除 | 代替 | 補足 |
|---|---|---|
requestForMagicLinkForEmail(_:to:completion:) | requestForLoginLinkForEmail(_:to:completion:) | 2021年4月14日より非推奨。引数は同一です |
sendAuthenticatedRequest(_:) | sendRequest(_:) | v6.3.0 より非推奨 |
sendAuthenticatedRequest(_:)(Swift 専用オーバーロード) | sendRequestForSwift(_:) | v6.3.0 より非推奨 |
options(mode:allowModeChange:region:email:forceLogout:) | options(mode:allowModeChange:email:forceLogout:) | v6.4.0 より非推奨。region は設定不可となり、SDK は常に日本を使用します |
options(mode:allowModeChange:regionType:email:forceLogout:) | options(mode:allowModeChange:email:forceLogout:) | 同上 |
MTLinkAuthOptions | MTLAuthenticationOptions | v6.4.0 より非推奨。プロパティの対応: showSignUp → mode、guestEmail → email、useForceLogout → forceLogout |
シグネチャが変更された API
引数ラベルが変更されました。旧シグネチャをご利用の場合はコードの変更が必要です。
| 変更前 | 変更後 |
|---|---|
MTLResources.authorizationUrl(with:authOptions:) | MTLResources.authorizationUrl(_:authOptions:) |
MTLResources.onboardUrl(with:email:) | MTLResources.onboardUrl(_:email:) |
シーンベースライフサイクルについて
iOS 27 SDK でビルドしたアプリは、UIKit のシーンベースライフサイクル(UIScene / SceneDelegate)への対応が必須となります。未対応の場合、アプリが起動しません。
弊社 SDK は v6.7.0 以降でシーンベースライフサイクルに対応しております。アプリをシーンベースライフサイクルへ移行される場合は、v6.7.0 以降(推奨: v6.8.1 以降)をご利用ください。
AppDelegate ベースのまま運用されているアプリについては、本対応による影響はございません。
ご不明点等ございましたら、お気軽にお問い合わせください。