我们使用 Kotlin 在 Android 和 iOS 之间共享一个库。
我们设置了一切,但在 iOS 上我需要启用 Bitcode。 经过研究,我找到了解决方案:
kotlin {
targets {
fromPreset(presets.jvm, 'jvm') {
mavenPublication {
artifactId = 'my-lib-name'
}
}
// Switch here to presets.iosArm64 to build library for iPhone device || iosX64 for emulator
fromPreset(presets.iosArm64, 'iOS') {
compilations.main.outputKinds('FRAMEWORK')
compilations.main.extraOpts '-Xembed-bitcode' // for release binaries
compilations.main.extraOpts '-Xembed-bitcode-marker'// for debug binaries
}
}
}
但现在的问题是,我有吗?如果有,如何区分发布和调试二进制文件以及特定标志? 我可以简单地添加两个标志而没有任何缺点吗?
也许有人可以启发我 谢谢
最佳答案
因为 iOS 框架的 Kotlin 1.3.20 位码嵌入工作开箱即用。如果需要,您也可以手动配置嵌入:
kotlin {
iosArm64("ios") {
binaries {
framework {
// The following embedding modes are available:
// - "marker" - Embed placeholder LLVM IR data as a marker.
// Has the same effect as '-Xembed-bitcode-marker.'
// - "bitcode" - Embed LLVM IR bitcode as data.
// Has the same effect as the '-Xembed-bitcode'.
// - "disable" - Don't embed LLVM IR bitcode.
embedBitcode("marker")
}
}
}
}
关于ios - 适用于 iOS 的 Kotlin 多平台库,带有位码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53527386/