Skip to content

CocoaPods Gradle プラグイン DSL リファレンス

Kotlin CocoaPods Gradle プラグインは、Podspec ファイルを作成するためのツールです。これらのファイルは、Kotlin プロジェクトを CocoaPods 依存関係マネージャー と統合するために必要です。

この DSL リファレンスでは、CocoaPods の統合をセットアップする際に使用できる Kotlin CocoaPods Gradle プラグインの主なブロック、関数、プロパティをリストしています。

プラグインを有効にする

CocoaPods プラグインを適用するには、build.gradle(.kts) ファイルに以下の行を追加します。

kotlin
plugins {
   kotlin("multiplatform") version "2.3.0"
   kotlin("native.cocoapods") version "2.3.0"
}

プラグインのバージョンは Kotlin のリリースバージョン と一致します。最新の安定版は 2.3.0 です。

cocoapods {} ブロック

cocoapods {} ブロックは、CocoaPods 設定のトップレベルブロックです。これには、Pod のバージョン、サマリー、ホームページなどの必須情報や、オプション機能を含む Pod の全般的な情報が含まれます。

その中では以下のブロック、関数、プロパティを使用できます。

名前説明
versionPod のバージョン。指定しない場合、Gradle プロジェクトのバージョンが使用されます。どちらのプロパティも設定されていない場合はエラーになります。
summaryこのプロジェクトからビルドされる Pod の必須の説明。
homepageこのプロジェクトからビルドされる Pod のホームページへの必須のリンク。
authorsこのプロジェクトからビルドされる Pod の作成者を指定します。
podfile既存の Podfile を設定します。
noPodspec()cocoapods セクションに対して Podspec ファイルを生成しないようにプラグインを設定します。
nameこのプロジェクトからビルドされる Pod の名前。指定されない場合は、プロジェクト名が使用されます。
licenseこのプロジェクトからビルドされる Pod のライセンス、そのタイプ、およびテキスト。
frameworkframework ブロックは、プラグインによって生成されるフレームワークを設定します。
sourceこのプロジェクトからビルドされる Pod の場所。
extraSpecAttributeslibrariesvendored_frameworks などの他の Podspec 属性を設定します。
xcodeConfigurationToNativeBuildTypeカスタムの Xcode 設定を NativeBuildType にマッピングします。"Debug" を NativeBuildType.DEBUG に、"Release" を NativeBuildType.RELEASE にマッピングします。
publishDirPod 公開用の出力ディレクトリを設定します。
podsPod 依存関係のリストを返します。
pod()このプロジェクトからビルドされる Pod に CocoaPods 依存関係を追加します。
specReposurl() を使用して仕様リポジトリ(specification repository)を追加します。これは、プライベートな Pod を依存関係として使用する場合に必要です。詳細は CocoaPods のドキュメント を参照してください。

ターゲット

iOSmacOStvOSwatchOS
iosArm64macosArm64tvosArm64watchosArm64
iosSimulatorArm64tvosSimulatorArm64watchosSimulatorArm64
watchosArm32
watchosDeviceArm64

各ターゲットについて、deploymentTarget プロパティを使用して Pod ライブラリの最小ターゲットバージョンを指定します。

適用されると、CocoaPods はすべてのターゲットの出力バイナリとして debugrelease 両方のフレームワークを追加します。

kotlin
kotlin {
    iosArm64()
   
    cocoapods {
        version = "2.0"
        name = "MyCocoaPod"
        summary = "CocoaPods test library"
        homepage = "https://github.com/JetBrains/kotlin"
        
        extraSpecAttributes["vendored_frameworks"] = 'CustomFramework.xcframework'
        license = "{ :type => 'MIT', :text => 'License text'}"
        source = "{ :git => '[email protected]:vkormushkin/kmmpodlibrary.git', :tag => '$version' }"
        authors = "Kotlin Dev"
        
        specRepos {
            url("https://github.com/Kotlin/kotlin-cocoapods-spec.git")
        }
        pod("example")
        
        xcodeConfigurationToNativeBuildType["CUSTOM_RELEASE"] = NativeBuildType.RELEASE
   }
}

framework {} ブロック

framework {} ブロックは cocoapods 内にネストされ、プロジェクトからビルドされる Pod のフレームワークプロパティを設定します。

baseName は必須フィールドであることに注意してください。

名前説明
baseName必須のフレームワーク名。非推奨の frameworkName の代わりにこのプロパティを使用してください。
isStaticフレームワークのリンクタイプを定義します。デフォルトでは動的(dynamic)です。
transitiveExport依存関係のエクスポートを有効にします。
kotlin
kotlin {
    cocoapods {
        version = "2.0"
        framework {
            baseName = "MyFramework"
            isStatic = false
            export(project(":anotherKMMModule"))
            transitiveExport = true
        }
    }
}

pod() 関数

pod() 関数の呼び出しは、このプロジェクトからビルドされる Pod に CocoaPods 依存関係を追加します。依存関係ごとに個別の関数呼び出しが必要です。

関数パラメータで Pod ライブラリの名前を指定し、その設定ブロックでライブラリの versionsource などの追加のパラメータ値を指定できます。

名前説明
versionライブラリのバージョン。ライブラリの最新バージョンを使用するには、パラメータを省略します。
sourcePod の取得元を設定します:
  • git() を使用した Git リポジトリ。git() の後のブロックで、特定のコミットを使用するための commit、特定のタグを使用するための tag、リポジトリの特定のブランチを使用するための branch を指定できます。
  • path() を使用したローカルリポジトリ
packageNameパッケージ名を指定します。
extraOptsPod ライブラリのオプションのリストを指定します。例えば、特定のフラグなどです:
Kotlin
linkOnlycinterop バインディングを生成せずに、動的フレームワークを持つ Pod 依存関係を使用するように CocoaPods プラグインに指示します。静的フレームワークで使用された場合、このオプションは Pod 依存関係を完全に削除します。
interopBindingDependencies他の Pod への依存関係のリストが含まれます。このリストは、新しい Pod 用の Kotlin バインディングをビルドするときに使用されます。
useInteropBindingFrom()依存関係として使用される既存の Pod の名前を指定します。この Pod は、この関数の実行前に宣言されている必要があります。この関数は、新しい Pod のバインディングをビルドするときに、既存の Pod の Kotlin バインディングを使用するように CocoaPods プラグインに指示します。
kotlin
kotlin {
    iosArm64()
    
    cocoapods {
        version = "2.0"
        summary = "CocoaPods test library"
        homepage = "https://github.com/JetBrains/kotlin"
        ios.deploymentTarget = "16.0"
      
        pod("pod_dependency") {
            version = "1.0"
            extraOpts += listOf("-compiler-option")
            linkOnly = true
            source = path(project.file("../pod_dependency"))
        }
    }
}

次のステップ