如何将kotlin本机代码编译到iOS框架中?

问题描述 投票:1回答:2

Kotlin Native 0.5,我们可以将kotlin代码编译成framework,以便集成到现有的iOS项目中。

我只是想知道该怎么做?

我想要的是

  1. 使用命令行来构建
  2. kotlin native repo构建,以便我可以赶上最新的更新。
  3. 不使用Gradle,这样我就不需要进行gradle项目设置。

我知道在calculator文件夹中有一个samples样本,它在Compile Kotlin framework项目中添加了一个名为Xcode的额外步骤来完成魔法。但我不知道如何分开这一步。

我尝试使用这样的命令行:../../dist/bin/kotlinc ./src/main/kotlin/org/konan/arithmeticparser/Parser.kt -produce framework -o asd.framework

但结果与gradle构建结果相比具有不同的结构。

这里有什么帮助?谢谢

kotlin shared-libraries cross-platform kotlin-native
2个回答
1
投票

你可以按照本教程here。虽然它使用gradle,但它基本上包含一个脚本,可以自动重建ios的kotlin框架。我不确定这是你需要的,但你可以按照相同的原则编写一个shell脚本。

task lipo(type: Exec, dependsOn: 'build') {
def frameworks = files(
        "$buildDir/konan/bin/iphone/${frameworkName}.framework/$frameworkName",
        "$buildDir/konan/bin/iphone_sim/${frameworkName}.framework/$frameworkName"
)
def output = file("$buildDir/konan/bin/iphone_universal/${frameworkName}.framework/$frameworkName")
inputs.files frameworks
outputs.file output
executable = 'lipo'
args = frameworks.files
args += ['-create', '-output', output]
}
task copyFramework(type: Copy, dependsOn: lipo) {
    from("$buildDir/konan/bin/iphone") {
        include '*/Headers/*'
        include '*/Modules/*'
        include '*/Info.plist'
}
from "$buildDir/konan/bin/iphone_universal"
into "${rootProject.rootDir}/ios"
}

© www.soinside.com 2019 - 2024. All rights reserved.