ダイレクトインテグレーション
これはローカル統合メソッドです。以下の条件に当てはまる場合に有効です。
- ローカルマシンでiOSをターゲットとするKotlin Multiplatformプロジェクトをすでにセットアップしている。
- Kotlin MultiplatformプロジェクトにCocoaPodsの依存関係がない。
Kotlin MultiplatformプロジェクトとiOSプロジェクトを同時に開発し、それらの間でコードを共有したい場合は、特別なスクリプトを使用して直接統合を設定できます。
このスクリプトは、Kotlin frameworkをXcodeのiOSプロジェクトに接続するプロセスを自動化します。
このスクリプトは、Xcode環境専用に設計されたembedAndSignAppleFrameworkForXcode
Gradleタスクを使用します。セットアップ中に、iOSアプリのビルドのrun script phaseに追加します。その後、Kotlin artifact
がビルドされ、iOSアプリのビルドを実行する前に派生データに含まれます。
一般的に、スクリプトは次のことを行います。
- コンパイルされたKotlin frameworkをiOSプロジェクト構造内の正しいディレクトリにコピーします。
- 埋め込まれたframeworkのコード署名プロセスを処理します。
- Kotlin frameworkのコード変更がXcodeのiOSアプリに反映されるようにします。
設定方法
現在CocoaPodsプラグインを使用してKotlin frameworkを接続している場合は、最初に移行してください。プロジェクトにCocoaPodsの依存関係がない場合は、この手順をスキップしてください。
CocoaPodsプラグインからの移行
CocoaPodsプラグインから移行するには:
-
Xcodeで、Product | Clean Build Folderを使用するか、
Cmd + Shift + K ショートカットを使用して、ビルドディレクトリをクリーンアップします。 -
Podfile
ファイルがあるディレクトリで、次のコマンドを実行します。pod deintegrate
-
build.gradle(.kts)
ファイルからcocoapods {}
ブロックを削除します。 -
.podspec
ファイルとPodfile
ファイルを削除します。
frameworkをプロジェクトに接続する
マルチプラットフォームプロジェクトから生成されたKotlin frameworkをXcodeプロジェクトに接続するには:
-
embedAndSignAppleFrameworkForXcode
タスクは、binaries.framework
構成オプションが 宣言されている場合にのみ登録されます。Kotlin Multiplatformプロジェクトで、build.gradle.kts
ファイルのiOSターゲット宣言を確認します。 -
Xcodeで、プロジェクト名をダブルクリックしてiOSプロジェクト設定を開きます。
-
プロジェクト設定のBuild Phasesタブで、**+**をクリックし、New Run Script Phaseを選択します。
-
次のスクリプトを調整し、結果をrun script phaseにコピーします。
cd "<Path to the root of the multiplatform project>"
./gradlew :<Shared module name>:embedAndSignAppleFrameworkForXcodecd
コマンドで、Kotlin Multiplatformプロジェクトのルートへのパス(たとえば、$SRCROOT/..
)を指定します。./gradlew
コマンドで、共有モジュールの名前(たとえば、:shared
または:composeApp
)を指定します。
-
Run Script phaseをCompile Sources phaseの前にドラッグします。
-
Build Settingsタブで、Build OptionsのUser Script Sandboxingオプションを無効にします。
最初にサンドボックスを無効にせずにiOSプロジェクトをビルドした場合、Gradle daemonの再起動が必要になる場合があります。 サンドボックス化されている可能性のあるGradle daemonプロセスを停止します。
./gradlew --stop
-
Xcodeでプロジェクトをビルドします。すべてが正しく設定されていれば、プロジェクトは正常にビルドされます。
デフォルトのDebug
またはRelease
とは異なるカスタムビルド構成がある場合は、Build Settings
タブで、User-Definedの下にKOTLIN_FRAMEWORK_BUILD_TYPE
設定を追加し、それをDebug
またはRelease
に設定します。
次のステップ
Swift Package Managerを使用する際に、ローカル統合を利用することもできます。ローカルパッケージ内のKotlin frameworkへの依存関係を追加する方法をご覧ください。