Spec-Zone.ru › Kotlin 2

Параметры двоичных файлов Kotlin/Native

На этой странице перечислены полезные параметры двоичных файлов Kotlin/Native, которые можно использовать для настройки готовых двоичных файлов Kotlin/Native, а также способы задать параметры двоичных файлов в проекте.

Как включить

Параметры двоичных файлов можно включить в файле gradle.properties, файле сборки или передать в качестве аргументов компилятора.

В свойствах Gradle

Задать параметры двоичных файлов можно в файле gradle.properties проекта с помощью свойства kotlin.native.binary. Например:

kotlin.native.binary.latin1Strings=true

В файле сборки

Задать параметры двоичных файлов для проекта можно в файле build.gradle.kts:

  • Для отдельных двоичных файлов — с помощью атрибута binaryOption. Например:

    kotlin {
        iosArm64 {
            binaries {
                framework {
                    binaryOption("smallBinary", "true")
                }
            }
        }
    }
    
  • В качестве параметров компилятора -Xbinary=$option=$value в атрибуте freeCompilerArgs. Например:

    kotlin {
        iosArm64 {
            compilations.configureEach {
                compilerOptions.configure {
                    freeCompilerArgs.add("-Xbinary=smallBinary=true")
                }
            }
        }
    }
    

В компиляторе командной строки

Параметры двоичных файлов можно передать в качестве -Xbinary=$option=$value непосредственно в командной строке при запуске компилятора Kotlin/Native. Например:

kotlinc-native main.kt -Xbinary=enableSafepointSignposts=true

Параметры двоичных файлов

В этой таблице перечислены не все существующие параметры, а только наиболее важные.

Параметр

Значения

Описание

Статус

enableReleaseBinaryCache

  • true

  • false (по умолчанию)

Позволяет компилятору использовать кэши в режиме выпуска, ускоряя сборку за счет некоторых оптимизаций компилятора.

Экспериментальный параметр с версии 2.4.20

objcExportBlockExplicitParameterNames

  • true

  • false (default)

Добавляет явные имена параметров в типы функций для экспортируемых заголовков Objective-C.

Экспериментальный параметр с версии 2.2.20

smallBinary

  • true

  • false (по умолчанию)

Уменьшает размер двоичных файлов для выпуска.

Экспериментальный параметр с версии 2.2.20

stackProtector

  • yes

  • strong

  • all

  • no (по умолчанию)

Включает защитные значения в стеке: используйте yes для уязвимых функций, all для всех функций и strong для применения более строгой эвристики.

Доступен с версии 2.2.20

pagedAllocator

  • true (по умолчанию)

  • false

Управляет постраничным выделением памяти (буферизацией). Если задано значение false, аллокатор памяти резервирует память отдельно для каждого объекта.

Экспериментальный параметр с версии 2.2.0

latin1Strings

  • true

  • false (по умолчанию)

Управляет поддержкой строк в кодировке Latin-1, позволяя уменьшить размер двоичного файла приложения и скорректировать потребление памяти.

Экспериментальный параметр с версии 2.2.0

mmapTag

UInt

Управляет тегированием памяти, необходимым для отслеживания потребления памяти на платформах Apple. Доступны значения 240-255 (по умолчанию — 246); значение 0 отключает тегирование.

Доступен с версии 2.2.0

disableMmap

  • true

  • false (по умолчанию)

Управляет аллокатором по умолчанию. Если задано значение true, используется аллокатор памяти malloc вместо mmap.

Доступен с версии 2.2.0

gc

  • cms (по умолчанию)

  • pmcs

  • stwms

  • noop

Управляет поведением сборщика мусора:

  • cms использует конкурентную разметку и очистку

  • pmcs использует параллельную разметку и конкурентную очистку

  • stwms использует простую разметку и очистку с остановкой всех потоков

  • noop отключает сборку мусора

cms используется по умолчанию с версии 2.4.0

gcMarkSingleThreaded

  • true

  • false (по умолчанию)

Отключает параллельное выполнение фазы разметки при сборке мусора. Может увеличить длительность паузы GC при больших кучах.

Доступен с версии 1.7.20

enableSafepointSignposts

  • true

  • false (по умолчанию)

Включает отслеживание пауз, связанных с GC, в проекте для отладки с помощью Xcode Instruments.

Доступен с версии 2.0.20

preCodegenInlineThreshold

UInt

Настраивает проход оптимизации встраивания в компиляторе Kotlin IR, который выполняется перед непосредственной генерацией кода (по умолчанию отключен).

Рекомендуемое количество токенов (единиц кода, анализируемых компилятором) — 40.

Экспериментальный параметр с версии 2.1.20

objcDisposeOnMain

  • true (по умолчанию)

  • false

Управляет деинициализацией объектов Swift/Objective-C. Если задано значение false, деинициализация выполняется в специальном потоке GC, а не в основном.

Доступен с версии 1.9.0

appStateTracking

  • enabled

  • disabled (по умолчанию)

Управляет вызовом сборщика мусора по таймеру, когда приложение работает в фоновом режиме.

Если задано значение enabled, GC вызывается только при чрезмерном потреблении памяти.

Экспериментальный параметр с версии 1.7.20

bundleId

  • String

Задает идентификатор пакета (CFBundleIdentifier) в файле Info.plst.

Доступен с версии 1.7.20

bundleShortVersionString

  • String

Задает краткую версию пакета (CFBundleShortVersionString) в файле Info.plst.

Доступен с версии 1.7.20

bundleVersion

  • String

Задает версию пакета (CFBundleVersion) в файле Info.plst.

Доступен с версии 1.7.20

sourceInfoType

  • libbacktrace

  • coresymbolication (целевые платформы Apple)

  • noop (по умолчанию)

Добавляет расположение файлов и номера строк в трассировки стека исключений.

coresymbolication доступен только для целевых платформ Apple и по умолчанию включен для macOS и симуляторов Apple в режиме отладки.

Экспериментальный параметр с версии 1.6.20

Подробнее об уровнях стабильности см. в документации.

Что дальше

Узнайте, как создавать готовые двоичные файлы для нативных платформ.

31 августа 2026 г.
Переход на новый менеджер памятиОтладка Kotlin/Native

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

Spec-Zone.ru

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