ios - 适用于 iOS 的 Kotlin 多平台库,带有位码

标签 ios kotlin ios-frameworks bitcode kotlin-multiplatform

我们使用 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/

相关文章:

ios - 匹配 UIToolBar 中的 MPVolumeView 和 UISlider 垂直位置

ios - 未收到 Apple 推送通知/可能存在配置文件问题?

ios - 从滑动中排除一个单元格行以删除

kotlin - 如何修复我的代码以删除强制转换警告?

iphone - 使用 armv7 和 armv7s 编译框架

ios - iTunes Connect-App Store区域

java - 如何取消特定的Kotlinc/Javac编译器警告?

android - Room 是否允许非原始数据类型作为主键?

xcode - 检测我是否使用旧版 iOS 不可用的框架的简单方法

ios - 对使用 faSTLane 构建的应用程序进行代码签名,并将 CocoaPods 构建为动态框架