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

如何将kotlin本机代码编译到iOS框架中?,kotlin,shared-libraries,cross-platform,kotlin-native,Kotlin,Shared Libraries,Cross Platform,Kotlin Native,从中,我们可以将kotlin代码编译成框架,以便集成到现有的iOS项目中 我只是想知道怎么做 我想要什么 使用命令行构建 从进行构建,以便我能够赶上最新的更新 没有使用Gradle,因此我不需要进行Gradle项目设置 我知道在samples文件夹中有一个calculatorsample,它在Xcode项目中添加了一个名为Compile Kotlin framework的额外步骤来实现这一神奇。但我不知道如何区分这一步 我试着像这样使用命令行:。/../dist/bin/kotlinc./src

从中,我们可以将kotlin代码编译成
框架
,以便集成到现有的iOS项目中

我只是想知道怎么做

我想要什么

  • 使用命令行构建
  • 从进行构建,以便我能够赶上最新的更新
  • 没有使用Gradle,因此我不需要进行Gradle项目设置
  • 我知道在
    samples
    文件夹中有一个
    calculator
    sample,它在
    Xcode
    项目中添加了一个名为
    Compile Kotlin framework
    的额外步骤来实现这一神奇。但我不知道如何区分这一步

    我试着像这样使用命令行:
    。/../dist/bin/kotlinc./src/main/kotlin/org/konan/arithmetricparser/Parser.kt-product framework-o asd.framework

    但结果与gradle build的结构不同


    有人帮忙吗?谢谢

    您可以学习本教程。虽然它使用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"
    }
    

    还有一个教程在这里
    您可能会使用Gradle作为构建系统,请参见

    如果有人有此问题,我会为其建立一个博客:请参见我的答案,您所说的“不同结构”到底是什么意思?Kotlin/Native gradle插件和CLI工具标志由相同的代码处理,因此如果您传递相同的选项,结果也相同。