我开始开发kotlin多平台,并开发了一个简单的库用于测试。我可以导出安卓的.jar文件,但我不能导出iOS的.framework文件。我审查了其他项目,但我没有找到我的问题。
我的库的Gradle脚本是:
apply plugin: 'kotlin-multiplatform'
kotlin {
targets {
final def iOSTarget =
System.getenv('SDK_NAME')?.startsWith("iphoneos") \
? presets.iosArm64 : presets.iosX64
fromPreset(iOSTarget, 'iOS') {
compilations.main.outputKinds('FRAMEWORK')
}
fromPreset(presets.jvm, 'android')
}
sourceSets {
core.dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib-common'
}
android.dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib'
}
}发布于 2019-01-02 20:11:05
你添加了构建实际框架的任务了吗?如果没有,请尝试在build.gradle文件的末尾添加以下代码:
task packForXCode(type: Sync) {
final File frameworkDir = new File(buildDir, "xcode-frameworks")
final String mode = project.findProperty("XCODE_CONFIGURATION")?.toUpperCase() ?: 'DEBUG'
inputs.property "mode", mode
dependsOn kotlin.targets.iOS.compilations.main.linkTaskName("FRAMEWORK", mode)
from { kotlin.targets.iOS.compilations.main.getBinary("FRAMEWORK", mode).parentFile }
into frameworkDir
doLast {
new File(frameworkDir, 'gradlew').with {
text = "#!/bin/bash\nexport 'JAVA_HOME=${System.getProperty("java.home")}'\ncd '${rootProject.rootDir}'\n./gradlew \$@\n"
setExecutable(true)
}
}
}
tasks.build.dependsOn packForXCode您的库的build/xcode-frameworks目录中将提供iOS框架。
您还必须配置您的Xcode项目才能使用框架。有关更多详细信息,请阅读Setting up Framework Dependency in Xcode。
发布于 2019-01-03 13:49:59
你说的“导出框架”是什么意思?你打算从另一个Gradle项目中使用它,还是从XCode中使用,或者从其他地方使用?
另外,很抱歉问你答案:我没有足够的名气来发表评论。所以我认为在GitHub上讨论你的问题会更方便。
https://stackoverflow.com/questions/53985241
复制相似问题