iOS SDKのインストールと設定
Adapty SDK には、モバイルアプリへのシームレスな統合を実現する2つの主要モジュールが含まれています。
- Core Adapty: Adapty をアプリで正しく動作させるために必要な、必須 SDK です。
- AdaptyUI: フローや旧ビルダーのペイウォールをレンダリングするオプションモジュールです。
Adapty SDK がモバイルアプリに統合された実際の例を見てみませんか?ペイウォールの表示、購入処理、その他の基本機能を含む完全なセットアップを示すサンプルアプリをご覧ください。
完全な実装のウォークスルーについては、以下の動画もご覧ください:
要件
Adapty iOS SDK には iOS 15.0 以降が必要です。また、Adapty SDK 4.0 以降は Swift パッケージマニフェストで Swift tools 6.2 を宣言しているため、ビルドには Xcode 26 以降が必要です。
Xcode 26.4 以降でビルドする場合は、Adapty SDK 3.15.7 以降が必要です。
SDKのインストールは、Adaptyセットアップのステップ5です。アプリ内で課金が機能するようにするには、アプリをストアに接続し、Adapty ダッシュボードでプロダクト、ペイウォール、プレースメントを作成する必要があります。クイックスタートガイドでは、必要なすべての手順を説明しています。
Adapty SDK のインストール
常に最新バージョンのSDKをインストールすることをお勧めします。最新の安定性修正と改善が含まれています。
Adapty SDK は Swift Package Manager を使用してインストールします。Xcode で File -> Add Package Dependency… を選択してください。なお、パッケージの追加手順は Xcode のバージョンによって異なる場合があるため、必要に応じて Xcode のドキュメントを参照してください。
- リポジトリのURLを入力します:
https://github.com/adaptyteam/AdaptySDK-iOS.git - バージョンを選択し(最新の安定バージョンを推奨)、Add Package をクリックします。
- Choose Package Products ウィンドウで、必要なモジュールを選択します:
- Adapty(コアモジュール)
- AdaptyUI(オプション - Adapty が画面をレンダリングする場合のみ)
Note注意:
- SDK 3.x で キッズモード を有効にするには、Adapty の代わりに Adapty_KidsMode を選択してください。SDK 4.0 以降では、通常のモジュールを選択してください — キッズモードは
KidsModeパッケージトレイトで有効化されます。 - リストにある他のパッケージは選択しないでください — 必要ありません。
- Add Package をクリックしてインストールを完了します。
- インストールの確認: プロジェクトナビゲーターの Package Dependencies に「Adapty」(および選択した場合は「AdaptyUI」)が表示されているはずです。
Adapty SDK の Adapty モジュールを有効化する
アプリのコードで Adapty SDK を有効化します。
Adapty SDK はアプリ内で一度だけ有効化すれば十分です。
Public SDK Key を取得するには:
- Adapty ダッシュボードを開き、App settings → General に移動します。
- Api keys セクションで、Public SDK Key(Secret Key ではない)をコピーします。
- コード内の
"YOUR_PUBLIC_SDK_KEY"を置き換えます。
または、Adapty CLI を使ってプログラムから取得することもできます:
npm install -g adapty
adapty auth login
adapty apps list
あるいは、直接実行する場合:
npx adapty auth login
adapty apps list
- Adapty の初期化には必ず Public SDK key を使用してください。Secret key はサーバーサイド API 専用です。
- SDK keys はアプリごとに固有です。複数のアプリがある場合は、正しいキーを選択してください。
activate の完了を待ってから、他の Adapty SDK メソッドを呼び出してください。完全なシーケンスについては、iOS SDK の呼び出し順序を参照してください。
次に、アプリでペイウォールを設定します。
- フロー & ペイウォールビルダーを使用する場合は、まず以下の AdaptyUI モジュールを有効化してから、クイックスタートに従ってください。
- 独自のペイウォール UI を構築する場合は、カスタムペイウォールのクイックスタートを参照してください。
Adapty SDK の AdaptyUI モジュールを有効化する
フロー & ペイウォールビルダーを使用する予定があり、AdaptyUI モジュールをインストール済みの場合は、AdaptyUI も有効化する必要があります。
コード内では、AdaptyUI を有効化する前に、コアの Adapty モジュールを先に有効化する必要があります。
オプションで、AdaptyUI を有効化する際にペイウォールのデフォルトキャッシュ設定を上書きすることができます。
オプション設定
ログ記録
ログシステムの設定
Adapty は、何が起きているかを把握できるよう、エラーやその他の重要な情報をログに記録します。利用可能なログレベルは以下のとおりです:
| Level | Description |
|---|---|
error | エラーのみがログに記録されます |
warn | エラーと、重大なエラーを引き起こさないが注意が必要なSDKからのメッセージがログに記録されます |
info | エラー、警告、およびさまざまな情報メッセージがログに記録されます |
verbose | 関数呼び出し、APIクエリなど、デバッグ時に役立つ可能性のある追加情報がすべてログに記録されます |
let configurationBuilder = AdaptyConfiguration
.builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
.with(logLevel: .verbose) // recommended for development
ログシステムのメッセージをリダイレクトする
Adapty のログメッセージを自社システムに送信したり、ファイルに保存したりしたい場合は、setLogHandler メソッドを使用して、その中にカスタムのログ処理ロジックを実装してください。このハンドラーは、メッセージ内容と重要度レベルを含むログレコードを受け取ります。
Adapty.setLogHandler { record in
writeToLocalFile("Adapty \(record.level): \(record.message)")
}
データポリシー
Adapty は、明示的に送信しない限りユーザーの個人データを保存しません。ただし、ストアや国のガイドラインに準拠するために、追加のデータセキュリティポリシーを実装することができます。
IDFA の収集と共有を無効にする
Adapty モジュールを有効化する際に、idfaCollectionDisabled を true に設定すると、IDFA の収集と共有を無効にできます。
このパラメータを使用して、App Store レビューガイドラインに準拠したり、アプリで IDFA が不要な場合に App Tracking Transparency プロンプトの表示を回避したりできます。デフォルト値は false です。IDFA 収集の詳細については、アナリティクス連携セクションを参照してください。
let configurationBuilder =
AdaptyConfiguration
.builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
.with(idfaCollectionDisabled: true)
IP 収集と共有を無効にする
Adaptyモジュールを有効化する際、ipAddressCollectionDisabledをtrueに設定すると、ユーザーのIPアドレスの収集と共有を無効にできます。デフォルト値はfalseです。
このパラメータは、ユーザーのプライバシー保護、GDPRやCCPAなどの地域データ保護規制への準拠、またはIPベースの機能がアプリに不要な場合の不必要なデータ収集削減に役立ちます。
let configurationBuilder =
AdaptyConfiguration
.builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
.with(ipAddressCollectionDisabled: true)
AdaptyUI のペイウォールにおけるメディアキャッシュの設定
AdaptyUI の設定はオプションです。設定なしで AdaptyUI モジュールを有効化することもできます。ただし、設定を使用する場合は、すべてのパラメーターが必須となります。
// Configure AdaptyUI
let adaptyUIConfiguration = AdaptyUI.Configuration(
mediaCacheConfiguration: .init(
memoryStorageTotalCostLimit: 100 * 1024 * 1024,
memoryStorageCountLimit: .max,
diskStorageSizeLimit: 100 * 1024 * 1024
)
)
// Activate AdaptyUI
AdaptyUI.activate(configuration: adaptyUIConfiguration)
パラメーター:
| パラメーター | 必須/任意 | 説明 |
|---|---|---|
| memoryStorageTotalCostLimit | 必須 | ストレージの合計コスト上限(バイト単位)。 |
| memoryStorageCountLimit | 必須 | メモリストレージのアイテム数上限。 |
| diskStorageSizeLimit | 必須 | ディスク上のストレージファイルサイズ上限(バイト単位)。0は上限なしを意味します。 |
トランザクション完了の動作
この機能はSDKバージョン3.12.0以降で利用可能です。
デフォルトでは、Adaptyは検証が成功した後にトランザクションを自動的に完了します。ただし、高度なトランザクション検証(サーバーサイドのレシート検証、不正検出、カスタムビジネスロジックなど)が必要な場合は、手動でトランザクションを完了するようにSDKを設定できます。
let configurationBuilder = AdaptyConfiguration
.builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
.with(transactionsFinishBehavior: .manual) // .auto is the default
トランザクションの完了方法の詳細については、ガイドを参照してください。
バックアップ復元時のデータ削除
clearDataOnBackup を true に設定すると、SDKはアプリがiCloudバックアップから復元されたことを検知し、キャッシュされたプロファイル情報、プロダクト詳細、ペイウォールなど、ローカルに保存されているすべてのSDKデータを削除します。その後、SDKはクリーンな状態で初期化されます。デフォルト値は false です。
削除されるのはローカルのSDKキャッシュのみです。Appleとのトランザクション履歴およびAdaptyサーバー上のユーザーデータは変更されません。
let configurationBuilder = AdaptyConfiguration
.builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
.with(clearDataOnBackup: true) // default – false
Adapty アトリビューションを有効にする
このパラメーターは SDK バージョン 4.1 以降で使用できます。
Adapty アトリビューションを使用する場合、SDK を有効化する際に adaptyAttributionEnabled を true に設定してください。デフォルト値は false です。このパラメーターを指定しないと、SDK はインストールを記録せず、インストールの詳細をアプリに提供しません。SDK バージョン 4.1 未満では、Adapty アトリビューションは自動的に有効になります。
let configurationBuilder = AdaptyConfiguration
.builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY")
.with(adaptyAttributionEnabled: true)
トラブルシューティング
Tuist での Swift 6 並行処理エラー
Tuist でビルドすると、Swift 6 の厳格な並行処理コンパイルエラーが発生することがあります。典型的な症状としては、AdaptyUIBuilderLogic での @Sendable 属性の不一致や、同様のクロスモジュールの Sendability エラーなどが挙げられます。
これはTuistがSPMパッケージからXcodeプロジェクトを生成する際に、SDKが宣言しているswift-tools-versionの設定(SDK 3.xでは6.0、SDK 4.0以降は6.2)を保持しないために発生します。その結果、一部のAdaptyターゲット(Adapty、AdaptyUI、AdaptyUIBuilder)がSwift 5のルールでコンパイルされ、他のターゲットはSwift 6を使用するため、モジュール間で@Sendableの不一致が生じます。
修正方法: Adapty SDK 3.15.5 以降にアップグレードしてください。Swift言語バージョンの混在に関わらず、この問題が解消されます。
回避策: アップグレードできない場合は、Tuistの設定で3つのAdaptyターゲットすべてにSwift 6を明示的に設定してください:
targetSettings: [
"Adapty": .init().swiftVersion("6"),
"AdaptyUI": .init().swiftVersion("6"),
"AdaptyUIBuilder": .init().swiftVersion("6"),
]