Прямая интеграция
Если вы хотите одновременно разрабатывать проект Kotlin Multiplatform и проект для iOS, совместно используя код, настройте прямую интеграцию с помощью специального скрипта.
Этот скрипт автоматизирует подключение фреймворка Kotlin к проектам для iOS в Xcode:
Скрипт использует задачу Gradle embedAndSignAppleFrameworkForXcode, специально предназначенную для среды Xcode. При настройке добавьте её в фазу запуска скрипта при сборке приложения для iOS. После этого артефакт Kotlin собирается и включается в производные данные перед запуском сборки приложения для iOS.
В целом скрипт выполняет следующие действия:
Копирует скомпилированный фреймворк Kotlin в нужный каталог в структуре проекта для iOS.
Выполняет подписание кода встроенного фреймворка.
Обеспечивает отображение изменений кода во фреймворке Kotlin в приложении для iOS в Xcode.
Настройка
Если вы используете плагин CocoaPods для подключения фреймворка Kotlin, сначала выполните миграцию. Если в проекте нет зависимостей CocoaPods, пропустите этот шаг.
Миграция с плагина CocoaPods
Чтобы выполнить миграцию с плагина CocoaPods:
В Xcode очистите каталоги сборки, выбрав Product | Clean Build Folder или воспользовавшись сочетанием клавиш Cmd + Shift + K.
-
В каталоге с Podfile выполните следующую команду:
pod deintegrate
Удалите блок
cocoapods {}из файловbuild.gradle(.kts).Удалите файл
.podspecи Podfile.
Подключение фреймворка к проекту
Чтобы подключить фреймворк Kotlin, созданный в мультиплатформенном проекте, к проекту Xcode:
Задача
embedAndSignAppleFrameworkForXcodeрегистрируется только при объявлении параметра конфигурацииbinaries.framework. В проекте Kotlin Multiplatform проверьте объявление целевой платформы iOS в файлеbuild.gradle.kts.В Xcode откройте настройки проекта для iOS, дважды щёлкнув имя проекта.
В разделе Targets слева выберите целевой объект, затем перейдите на вкладку Build Phases.
-
Нажмите + и выберите New Run Script Phase.

-
Измените приведённый ниже скрипт и вставьте его в текстовое поле скрипта новой фазы:
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. -
Отключите параметр Based on dependency analysis.

Это гарантирует, что Xcode будет запускать скрипт при каждой сборке и не будет каждый раз предупреждать об отсутствующих выходных зависимостях.
-
Переместите фазу Run Script выше, расположив её перед фазой Compile Sources.
-
На вкладке Build Settings отключите параметр User Script Sandboxing в разделе Build Options:
Соберите проект в Xcode. Если всё настроено правильно, проект успешно соберётся.
Что дальше?
При работе со Swift Package Manager можно также воспользоваться локальной интеграцией. Узнайте, как добавить зависимость от фреймворка Kotlin в локальный пакет.
© 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