メインコンテンツまでスキップ

ダイレクトインテグレーション

備考

これはローカル統合メソッドです。以下の条件に当てはまる場合に有効です。

  • ローカルマシンでiOSをターゲットとするKotlin Multiplatformプロジェクトをすでにセットアップしている。
  • Kotlin MultiplatformプロジェクトにCocoaPodsの依存関係がない。

最適な統合方法を選択してください

Kotlin MultiplatformプロジェクトとiOSプロジェクトを同時に開発し、それらの間でコードを共有したい場合は、特別なスクリプトを使用して直接統合を設定できます。

このスクリプトは、Kotlin frameworkをXcodeのiOSプロジェクトに接続するプロセスを自動化します。

Direct integration diagram

このスクリプトは、Xcode環境専用に設計されたembedAndSignAppleFrameworkForXcode Gradleタスクを使用します。セットアップ中に、iOSアプリのビルドのrun script phaseに追加します。その後、Kotlin artifact がビルドされ、iOSアプリのビルドを実行する前に派生データに含まれます。

一般的に、スクリプトは次のことを行います。

  • コンパイルされたKotlin frameworkをiOSプロジェクト構造内の正しいディレクトリにコピーします。
  • 埋め込まれたframeworkのコード署名プロセスを処理します。
  • Kotlin frameworkのコード変更がXcodeのiOSアプリに反映されるようにします。

設定方法

現在CocoaPodsプラグインを使用してKotlin frameworkを接続している場合は、最初に移行してください。プロジェクトにCocoaPodsの依存関係がない場合は、この手順をスキップしてください

CocoaPodsプラグインからの移行

CocoaPodsプラグインから移行するには:

  1. Xcodeで、Product | Clean Build Folderを使用するか、 Cmd + Shift + Kショートカットを使用して、ビルドディレクトリをクリーンアップします。

  2. Podfileファイルがあるディレクトリで、次のコマンドを実行します。

    pod deintegrate
  3. build.gradle(.kts)ファイルからcocoapods {}ブロックを削除します。

  4. .podspecファイルとPodfileファイルを削除します。

frameworkをプロジェクトに接続する

マルチプラットフォームプロジェクトから生成されたKotlin frameworkをXcodeプロジェクトに接続するには:

  1. embedAndSignAppleFrameworkForXcodeタスクは、binaries.framework構成オプションが 宣言されている場合にのみ登録されます。Kotlin Multiplatformプロジェクトで、build.gradle.ktsファイルのiOSターゲット宣言を確認します。

  2. Xcodeで、プロジェクト名をダブルクリックしてiOSプロジェクト設定を開きます。

  3. プロジェクト設定のBuild Phasesタブで、**+**をクリックし、New Run Script Phaseを選択します。

    Add run script phase
  4. 次のスクリプトを調整し、結果をrun script phaseにコピーします。

    cd "<Path to the root of the multiplatform project>"
    ./gradlew :<Shared module name>:embedAndSignAppleFrameworkForXcode
    • cdコマンドで、Kotlin Multiplatformプロジェクトのルートへのパス(たとえば、$SRCROOT/..)を指定します。
    • ./gradlewコマンドで、共有モジュールの名前(たとえば、:sharedまたは:composeApp)を指定します。
    Add the script
  5. Run Script phaseをCompile Sources phaseの前にドラッグします。

    Drag the Run Script phase
  6. Build Settingsタブで、Build OptionsUser Script Sandboxingオプションを無効にします。

    User Script Sandboxing

    最初にサンドボックスを無効にせずにiOSプロジェクトをビルドした場合、Gradle daemonの再起動が必要になる場合があります。 サンドボックス化されている可能性のあるGradle daemonプロセスを停止します。

    ./gradlew --stop
  7. Xcodeでプロジェクトをビルドします。すべてが正しく設定されていれば、プロジェクトは正常にビルドされます。

注記

デフォルトのDebugまたはReleaseとは異なるカスタムビルド構成がある場合は、Build Settings タブで、User-Definedの下にKOTLIN_FRAMEWORK_BUILD_TYPE設定を追加し、それをDebugまたはReleaseに設定します。

次のステップ

Swift Package Managerを使用する際に、ローカル統合を利用することもできます。ローカルパッケージ内のKotlin frameworkへの依存関係を追加する方法をご覧ください。