Справочник по 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, краткое описание и домашняя страница, а также дополнительные возможности.
Внутри него можно использовать следующие блоки, функции и свойства:
Название |
Описание |
|---|---|
|
Версия Pod. Если она не указана, используется версия проекта Gradle. Если ни одно из этих свойств не настроено, возникнет ошибка. |
|
Обязательное описание Pod, собранного из этого проекта. |
|
Обязательная ссылка на домашнюю страницу Pod, собранного из этого проекта. |
|
Указывает авторов Pod, собранного из этого проекта. |
|
Настраивает существующий Podfile. |
|
Настраивает плагин так, чтобы он не создавал файл Podspec для раздела |
|
Имя Pod, собранного из этого проекта. Если оно не указано, используется имя проекта. |
|
Лицензия Pod, собранного из этого проекта, её тип и текст. |
|
Блок framework настраивает фреймворк, создаваемый плагином. |
|
Расположение Pod, собранного из этого проекта. |
|
Настраивает другие атрибуты Podspec, например |
|
Сопоставляет пользовательскую конфигурацию Xcode с NativeBuildType: «Debug» — с |
|
Настраивает выходной каталог для публикации Pod. |
|
Возвращает список зависимостей Pod. |
|
Добавляет зависимость CocoaPods для Pod, собранного из этого проекта. |
|
Добавляет репозиторий спецификаций с помощью |
Целевые платформы
iOS |
macOS |
tvOS |
watchOS |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|||
|
Для каждой целевой платформы используйте свойство 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, собранного из проекта.
Название |
Описание |
|---|---|
|
Обязательное имя фреймворка. Используйте это свойство вместо устаревшего |
|
Задаёт тип связывания фреймворка. По умолчанию используется динамический тип. |
|
Включает экспорт зависимостей. |
kotlin {
cocoapods {
version = "2.0"
framework {
baseName = "MyFramework"
isStatic = false
export(project(":anotherKMMModule"))
transitiveExport = true
}
}
}
Функция pod()
Вызов функции pod() добавляет зависимость CocoaPods для Pod, собранного из этого проекта. Для каждой зависимости требуется отдельный вызов функции.
В параметрах функции можно указать имя библиотеки Pod, а дополнительные значения параметров, например version и source библиотеки, — в её блоке конфигурации:
Название |
Описание |
|---|---|
|
Версия библиотеки. Чтобы использовать последнюю версию библиотеки, не указывайте этот параметр. |
|
Настраивает Pod из:
|
|
Указывает имя пакета. |
|
Указывает список параметров для библиотеки Pod. Например, определённые флаги: extraOpts = listOf("-compiler-option")
|
|
Указывает плагину CocoaPods использовать зависимости Pod с динамическими фреймворками, не создавая привязки cinterop. При использовании со статическими фреймворками этот параметр полностью удалит зависимость Pod. |
|
Содержит список зависимостей от других Pod. Этот список используется при создании привязки Kotlin для нового Pod. |
|
Указывает имя существующего 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"))
}
}
}
Что дальше
© 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