KotlinプロジェクトをCocoaPodsのPodとして使用する
- Podの依存関係を追加する前に、初期設定を完了してください。
- サンプルプロジェクトは、弊社のGitHubリポジトリで確認できます。
Kotlinプロジェクト全体をPodの依存関係として使用できます。そのためには、プロジェクトのPodfileにその依存関係を含め、名前と生成されたPodspecを含むプロジェクトディレクトリへのパスを指定する必要があります。
この依存関係は、このプロジェクトと共に自動的にビルド(および再ビルド)されます。このアプローチにより、対応するGradleタスクやXcodeのビルドステップを手動で記述する必要がなくなるため、Xcodeへのインポートが簡素化されます。
Kotlinプロジェクトと、1つまたは複数のターゲットを持つXcodeプロジェクト間で依存関係を追加できます。Kotlinプロジェクトと複数のXcodeプロジェクト間で依存関係を追加することも可能です。ただし、この場合、各Xcodeプロジェクトに対してpod install
を手動で呼び出す必要があります。単一のXcodeプロジェクトの場合は、自動的に実行されます。
- 依存関係をKotlin/Nativeモジュールに正しくインポートするには、Podfileに
use_modular_headers!
またはuse_frameworks!
のいずれかのディレクティブを含める必要があります。- 最小デプロイメントターゲットバージョンを指定せず、依存関係のPodがより高いデプロイメントターゲットを要求する場合、エラーが発生します。
シングルターゲットのXcodeプロジェクト
KotlinプロジェクトをシングルターゲットのXcodeプロジェクトでPodの依存関係として使用するには:
Xcodeプロジェクトがない場合は作成します。
Xcodeで、アプリケーションターゲットのBuild Optionsの下にあるUser Script Sandboxingを無効にしてください。
KotlinプロジェクトのiOS部分にPodfileを作成します。
共有モジュールの
build.gradle(.kts)
ファイルに、podfile = project.file()
でPodfileへのパスを追加します。このステップは、Podfileに対して
pod install
を呼び出すことで、XcodeプロジェクトとKotlinプロジェクトの依存関係を同期するのに役立ちます。Podライブラリの最小デプロイメントターゲットバージョンを指定します。
kotlinkotlin { iosArm64() cocoapods { version = "2.0" summary = "CocoaPods test library" homepage = "https://github.com/JetBrains/kotlin" ios.deploymentTarget = "16.0" pod("SDWebImage") { version = "5.20.0" } podfile = project.file("../ios-app/Podfile") } }
Podfileに、Xcodeプロジェクトに含めたいKotlinプロジェクトの名前とパスを追加します。
rubytarget 'ios-app' do use_frameworks! platform :ios, '16.0' # Pods for iosApp pod 'kotlin_library', :path => '../kotlin-library' end
プロジェクトディレクトリで
pod install
を実行します。初めて
pod install
を実行すると、.xcworkspace
ファイルが作成されます。このファイルには、元の.xcodeproj
とCocoaPodsプロジェクトが含まれます。.xcodeproj
を閉じ、代わりに新しい.xcworkspace
ファイルを開きます。これにより、プロジェクトの依存関係に関する問題を回避できます。IntelliJ IDEAでBuild | Reload All Gradle Projects(またはAndroid StudioでFile | Sync Project with Gradle Files)を実行して、プロジェクトを再インポートします。
複数ターゲットのXcodeプロジェクト
Kotlinプロジェクトを複数ターゲットのXcodeプロジェクトでPodの依存関係として使用するには:
Xcodeプロジェクトがない場合は作成します。
KotlinプロジェクトのiOS部分にPodfileを作成します。
共有モジュールの
build.gradle(.kts)
ファイルに、podfile = project.file()
でプロジェクトのPodfileへのパスを追加します。このステップは、Podfileに対して
pod install
を呼び出すことで、XcodeプロジェクトとKotlinプロジェクトの依存関係を同期するのに役立ちます。pod()
を使用して、プロジェクトで使用したいPodライブラリへの依存関係を追加します。各ターゲットについて、Podライブラリの最小デプロイメントターゲットバージョンを指定します。
kotlinkotlin { iosArm64() tvosArm64() cocoapods { version = "2.0" summary = "CocoaPods test library" homepage = "https://github.com/JetBrains/kotlin" ios.deploymentTarget = "16.0" tvos.deploymentTarget = "16.0" pod("SDWebImage") { version = "5.20.0" } // Specify the path to the Podfile podfile = project.file("../severalTargetsXcodeProject/Podfile") } }
Podfileに、Xcodeプロジェクトに含めたいKotlinプロジェクトの名前とパスを追加します。
rubytarget 'iosApp' do use_frameworks! platform :ios, '16.0' # Pods for iosApp pod 'kotlin_library', :path => '../kotlin-library' end target 'TVosApp' do use_frameworks! platform :tvos, '16.0' # Pods for TVosApp pod 'kotlin_library', :path => '../kotlin-library' end
プロジェクトディレクトリで
pod install
を実行します。初めて
pod install
を実行すると、.xcworkspace
ファイルが作成されます。このファイルには、元の.xcodeproj
とCocoaPodsプロジェクトが含まれます。.xcodeproj
を閉じ、代わりに新しい.xcworkspace
ファイルを開きます。これにより、プロジェクトの依存関係に関する問題を回避できます。IntelliJ IDEAでBuild | Reload All Gradle Projects(またはAndroid StudioでFile | Sync Project with Gradle Files)を実行して、プロジェクトを再インポートします。