Spec-Zone.ru › Kotlin 2

Прямая интеграция

Если вы хотите одновременно разрабатывать проект Kotlin Multiplatform и проект для iOS, совместно используя код, настройте прямую интеграцию с помощью специального скрипта.

Этот скрипт автоматизирует подключение фреймворка Kotlin к проектам для iOS в Xcode:

Direct integration diagram

Скрипт использует задачу Gradle embedAndSignAppleFrameworkForXcode, специально предназначенную для среды Xcode. При настройке добавьте её в фазу запуска скрипта при сборке приложения для iOS. После этого артефакт Kotlin собирается и включается в производные данные перед запуском сборки приложения для iOS.

В целом скрипт выполняет следующие действия:

  • Копирует скомпилированный фреймворк Kotlin в нужный каталог в структуре проекта для iOS.

  • Выполняет подписание кода встроенного фреймворка.

  • Обеспечивает отображение изменений кода во фреймворке Kotlin в приложении для iOS в Xcode.

Настройка

Если вы используете плагин CocoaPods для подключения фреймворка Kotlin, сначала выполните миграцию. Если в проекте нет зависимостей CocoaPods, пропустите этот шаг.

Миграция с плагина CocoaPods

Чтобы выполнить миграцию с плагина CocoaPods:

  1. В Xcode очистите каталоги сборки, выбрав Product | Clean Build Folder или воспользовавшись сочетанием клавиш Cmd + Shift + K.

  2. В каталоге с Podfile выполните следующую команду:

    pod deintegrate
    
  3. Удалите блок cocoapods {} из файлов build.gradle(.kts).

  4. Удалите файл .podspec и Podfile.

Подключение фреймворка к проекту

Чтобы подключить фреймворк Kotlin, созданный в мультиплатформенном проекте, к проекту Xcode:

  1. Задача embedAndSignAppleFrameworkForXcode регистрируется только при объявлении параметра конфигурации binaries.framework. В проекте Kotlin Multiplatform проверьте объявление целевой платформы iOS в файле build.gradle.kts.

  2. В Xcode откройте настройки проекта для iOS, дважды щёлкнув имя проекта.

  3. В разделе Targets слева выберите целевой объект, затем перейдите на вкладку Build Phases.

  4. Нажмите + и выберите New Run Script Phase.

    Add run script phase
  5. Измените приведённый ниже скрипт и вставьте его в текстовое поле скрипта новой фазы:

    if [ "YES" = "$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED" ]; then
        echo "Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\""
        exit 0
    fi
    cd "<Path to the root of the multiplatform project>"
    ./gradlew :<Shared module name>:embedAndSignAppleFrameworkForXcode
    
    • В команде cd укажите путь к корневому каталогу проекта Kotlin Multiplatform, например $SRCROOT/...

    • В команде ./gradlew укажите имя общего модуля, например :shared или :sharedUI.

    При запуске конфигурации запуска для iOS IntelliJ IDEA и Android Studio собирают зависимость — фреймворк Kotlin — перед запуском сборки Xcode и устанавливают для переменной среды OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED значение "YES". Предоставленный сценарий командной оболочки проверяет эту переменную и не позволяет повторно собирать фреймворк Kotlin из Xcode.

    При запуске конфигурации запуска для iOS в проекте, который не поддерживает эту возможность, IDE предложит исправление для настройки защиты сборки.

  6. Отключите параметр Based on dependency analysis.

    Add the script

    Это гарантирует, что Xcode будет запускать скрипт при каждой сборке и не будет каждый раз предупреждать об отсутствующих выходных зависимостях.

  7. Переместите фазу Run Script выше, расположив её перед фазой Compile Sources.

    Drag the Run Script phase
  8. На вкладке Build Settings отключите параметр User Script Sandboxing в разделе Build Options:

    User Script Sandboxing

    Если проект для iOS был собран с включённой песочницей, может потребоваться перезапустить демон Gradle. Остановите процесс демона Gradle, который мог быть запущен в песочнице:

    ./gradlew --stop
    
  9. Соберите проект в Xcode. Если всё настроено правильно, проект успешно соберётся.

Если вы используете пользовательскую конфигурацию сборки, отличную от конфигурации по умолчанию Debug или Release, добавьте на вкладке Build Settings параметр KOTLIN_FRAMEWORK_BUILD_TYPE в разделе User-Defined и задайте для него значение Debug или Release.

Что дальше?

При работе со Swift Package Manager можно также воспользоваться локальной интеграцией. Узнайте, как добавить зависимость от фреймворка Kotlin в локальный пакет.

15 мая 2026 г.
Способы интеграции с iOSНастройка экспорта пакета 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-direct-integration.html

Spec-Zone.ru

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