跳至主要内容

CocoaPods Gradle 外掛程式 DSL 參考資料

Kotlin CocoaPods Gradle 外掛程式是用於建立 Podspec 檔案的工具。 這些檔案是將您的 Kotlin 專案與 CocoaPods 依賴管理工具整合的必要檔案。

本參考文件包含 Kotlin CocoaPods Gradle 外掛程式的完整區塊(block)、函數和屬性列表,您可以在使用 CocoaPods 整合時使用。

啟用外掛程式

若要套用 CocoaPods 外掛程式,請將以下程式碼行新增至 build.gradle(.kts) 檔案:

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

外掛程式版本與 Kotlin 發佈版本 相符。 最新的穩定版本是 2.1.20。

cocoapods 區塊(block)

cocoapods 區塊是用於 CocoaPods 配置的頂層區塊。 它包含有關 Pod 的一般資訊,包括 Pod 版本、摘要和首頁等必要資訊,以及可選功能。

您可以在其中使用以下區塊(block)、函數和屬性:

名稱 (Name)描述 (Description)
versionPod 的版本。 如果未指定,則使用 Gradle 專案版本。 如果未配置這些屬性,您將收到錯誤。
summary從此專案建置的 Pod 的必要描述。
homepage從此專案建置的 Pod 的首頁的必要連結。
authors指定從此專案建置的 Pod 的作者。
podfile配置現有的 Podfile 檔案。
noPodspec()設定外掛程式,使其不為 cocoapods 區段產生 Podspec 檔案。
name從此專案建置的 Pod 的名稱。 如果未提供,則使用專案名稱。
license從此專案建置的 Pod 的授權、其類型和文字。
frameworkframework 區塊配置外掛程式產生的 framework。
source從此專案建置的 Pod 的位置。
extraSpecAttributes配置其他 Podspec 屬性,如 librariesvendored_frameworks
xcodeConfigurationToNativeBuildType將自定義 Xcode 配置對應到 NativeBuildType:將 "Debug" 對應到 NativeBuildType.DEBUG,將 "Release" 對應到 NativeBuildType.RELEASE
publishDir配置 Pod 發佈的輸出目錄。
pods傳回 Pod 依賴項的列表。
pod()將 CocoaPods 依賴項新增到由此專案建置的 Pod。
specRepos使用 url() 新增規格儲存庫。 當私有 Pod 用作依賴項時,這是必要的。 有關更多資訊,請參閱 CocoaPods 文件

目標 (Targets)

iOSmacOStvOSwatchOS
iosArm64macosArm64tvosArm64watchosArm64
iosX64macosX64tvosX64watchosX64
iosSimulatorArm64tvosSimulatorArm64watchosSimulatorArm64
watchosArm32
watchosDeviceArm64

對於每個目標 (target),請使用 deploymentTarget 屬性來指定 Pod 函式庫的最小目標版本。

套用後,CocoaPods 會將 debugrelease framework 新增為所有目標的輸出二進位檔案。

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 區塊(block)

framework 區塊嵌套在 cocoapods 內部,並配置由此專案建置的 Pod 的 framework 屬性。

備註

請注意,baseName 是必填欄位。

名稱 (Name)描述 (Description)
baseName必要的 framework 名稱。 使用此屬性代替已棄用的 frameworkName
isStatic定義 framework 連結類型。 預設情況下為動態。
transitiveExport啟用依賴項導出。
kotlin {
cocoapods {
version = "2.0"
framework {
baseName = "MyFramework"
isStatic = false
export(project(":anotherKMMModule"))
transitiveExport = true
}
}
}

pod() 函數

pod() 函數呼叫將 CocoaPods 依賴項新增到由此專案建置的 Pod。 每個依賴項都需要單獨的函數呼叫。

您可以在函數參數中指定 Pod 函式庫的名稱,並在其配置區塊(block)中指定其他參數值,如函式庫的 versionsource

名稱 (Name)描述 (Description)
version函式庫版本。 若要使用函式庫的最新版本,請省略該參數。
source從以下位置配置 Pod:
  • 使用 git() 的 Git 儲存庫。 在 git() 之後的區塊中,您可以指定 commit 以使用特定提交、指定 tag 以使用特定標籤,以及指定 branch 以使用儲存庫中的特定分支
  • 使用 path() 的本機儲存庫
  • packageName指定套件名稱 (package name)。
    extraOpts指定 Pod 函式庫的選項列表。 例如,特定標誌: ```Kotlin
    extraOpts = listOf("-compiler-option")
    | `linkOnly`                   | 指示 CocoaPods 外掛程式使用具有動態 framework 的 Pod 依賴項,而不產生 cinterop 綁定。 如果與靜態 framework 一起使用,則該選項將完全刪除 Pod 依賴項。                                                                                           |
    | `interopBindingDependencies` | 包含其他 Pod 的依賴項列表。 建立新 Pod 的 Kotlin 綁定時,會使用此列表。 |
    | `useInteropBindingFrom()` | 指定用作依賴項的現有 Pod 的名稱。 應在函數執行之前宣告此 Pod。 該函數指示 CocoaPods 外掛程式在建立新 Pod 的綁定時使用現有 Pod 的 Kotlin 綁定。 |

    ```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"))
    }
    }
    }