Spec-Zone.ru › Kotlin 2

Справочник по DSL плагина CocoaPods для Gradle

Плагин Kotlin CocoaPods для Gradle — это инструмент для создания файлов Podspec. Эти файлы необходимы для интеграции проекта Kotlin с менеджером зависимостей CocoaPods.

В этом справочнике по DSL перечислены основные блоки, функции и свойства плагина Kotlin CocoaPods для Gradle, которые можно использовать при настройке интеграции с CocoaPods.

Подключение плагина

Чтобы применить плагин CocoaPods, добавьте следующие строки в файл build.gradle(.kts):

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

Версии плагина соответствуют версиям выпусков Kotlin. Последняя стабильная версия — 2.4.20.

Блок cocoapods {}

Блок cocoapods {} — это блок верхнего уровня для настройки CocoaPods. Он содержит общую информацию о Pod, включая обязательные сведения, такие как версия Pod, краткое описание и домашняя страница, а также дополнительные возможности.

Внутри него можно использовать следующие блоки, функции и свойства:

Название

Описание

version

Версия Pod. Если она не указана, используется версия проекта Gradle. Если ни одно из этих свойств не настроено, возникнет ошибка.

summary

Обязательное описание Pod, собранного из этого проекта.

homepage

Обязательная ссылка на домашнюю страницу Pod, собранного из этого проекта.

authors

Указывает авторов Pod, собранного из этого проекта.

podfile

Настраивает существующий Podfile.

noPodspec()

Настраивает плагин так, чтобы он не создавал файл Podspec для раздела cocoapods.

name

Имя Pod, собранного из этого проекта. Если оно не указано, используется имя проекта.

license

Лицензия Pod, собранного из этого проекта, её тип и текст.

framework

Блок framework настраивает фреймворк, создаваемый плагином.

source

Расположение Pod, собранного из этого проекта.

extraSpecAttributes

Настраивает другие атрибуты Podspec, например libraries или vendored_frameworks.

xcodeConfigurationToNativeBuildType

Сопоставляет пользовательскую конфигурацию Xcode с NativeBuildType: «Debug» — с NativeBuildType.DEBUG, а «Release» — с NativeBuildType.RELEASE.

publishDir

Настраивает выходной каталог для публикации Pod.

pods

Возвращает список зависимостей Pod.

pod()

Добавляет зависимость CocoaPods для Pod, собранного из этого проекта.

specRepos

Добавляет репозиторий спецификаций с помощью url(). Это необходимо, если в качестве зависимости используется приватный Pod. Дополнительные сведения см. в документации CocoaPods.

Целевые платформы

iOS

macOS

tvOS

watchOS

iosArm64

macosArm64

tvosArm64

watchosArm64

iosSimulatorArm64

tvosSimulatorArm64

watchosSimulatorArm64

watchosArm32

watchosDeviceArm64

Для каждой целевой платформы используйте свойство deploymentTarget, чтобы указать минимальную версию целевой платформы для библиотеки Pod.

При применении CocoaPods добавляет фреймворки debug и release в качестве выходных бинарных файлов для всех целевых платформ.

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 => 'git@github.com: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

Задаёт тип связывания фреймворка. По умолчанию используется динамический тип.

transitiveExport

Включает экспорт зависимостей.

kotlin {
    cocoapods {
        version = "2.0"
        framework {
            baseName = "MyFramework"
            isStatic = false
            export(project(":anotherKMMModule"))
            transitiveExport = true
        }
    }
}

Функция pod()

Вызов функции pod() добавляет зависимость CocoaPods для Pod, собранного из этого проекта. Для каждой зависимости требуется отдельный вызов функции.

В параметрах функции можно указать имя библиотеки Pod, а дополнительные значения параметров, например version и source библиотеки, — в её блоке конфигурации:

Название

Описание

version

Версия библиотеки. Чтобы использовать последнюю версию библиотеки, не указывайте этот параметр.

source

Настраивает Pod из:

  • Репозитория Git с помощью git(). В блоке после git() можно указать commit, чтобы использовать конкретный коммит, tag — чтобы использовать конкретный тег, и branch — чтобы использовать конкретную ветку репозитория

  • Локального репозитория с помощью path()

packageName

Указывает имя пакета.

extraOpts

Указывает список параметров для библиотеки Pod. Например, определённые флаги:

extraOpts = listOf("-compiler-option")

linkOnly

Указывает плагину CocoaPods использовать зависимости Pod с динамическими фреймворками, не создавая привязки cinterop. При использовании со статическими фреймворками этот параметр полностью удалит зависимость Pod.

interopBindingDependencies

Содержит список зависимостей от других Pod. Этот список используется при создании привязки Kotlin для нового Pod.

useInteropBindingFrom()

Указывает имя существующего Pod, используемого в качестве зависимости. Этот Pod необходимо объявить до вызова функции. Функция указывает плагину CocoaPods использовать привязку Kotlin существующего Pod при создании привязки для нового Pod.

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

Что дальше

  • См. полный синтаксис Kotlin DSL в репозитории плагина Kotlin для Gradle

  • Добавьте зависимости от библиотеки Pod в проект Kotlin

  • Настройте зависимости между проектом Kotlin и проектом Xcode

13 May 2026
Использование проекта Kotlin в качестве зависимости CocoaPodsИспользование Kotlin из локальных пакетов Swift

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/multiplatform/multiplatform-cocoapods-dsl-reference.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API