【问题标题】:How to use a swift library in kotlin native?如何在 kotlin native 中使用 swift 库?
【发布时间】:2020-06-26 22:21:31
【问题描述】:

如何在 Kotlin/Native 中使用 Swift 库?

我在Kotlin/Native 中尝试使用 cinteropt 使用 Objective-c 库,但我似乎无法弄清楚如何使用 swift 库?

有人可以在这里指导我吗?提前致谢。

【问题讨论】:

  • 首先,你的 swift 库是哪个扩展?如果.so 库针对设备架构(arm-abi、x86-64 等)并使用 C++ JNI 绑定(使用库中的原始头文件)来调用它,那么您实际上可以使用它们。但是你将主要使用 C++ 编程而不是 Kotlin
  • 对不起,我的回答是针对 Android 目标的,但也许我的评论可以启发您的搜索
  • 它实际上让我更加困惑。请帮帮我。我想使用 swift 库的唯一原因是我可以将它用于我的 ios 目标。而已。具体来说,我正在尝试为钥匙串使用 swift 库包装器,这样我就可以创建一个库,该库在 ios 中使用 Keychain,在 Android 中使用 Encrypted SharedPreference。对于 Android,这很容易,但我不知道如何使用 swift 来完成。

标签: kotlin kotlin-multiplatform kotlin-native


【解决方案1】:

您不能直接与 Swift 进行互操作,除非 Swift 设计为供 Objective-C 使用。我假设 Keychain 库具有可用的 Objective-C 绑定,您应该能够与之互操作。如果没有,您可以编写某种封装器来公开 Objective-C 接口,或者编写 Kotlin 接口并在 Swift 中实现它,然后将其传递给共享代码。

【讨论】:

  • 如果一个库已经使用 @objC 公开了它的 api,生成它的二进制文件是否允许它与 Kotlin/Native 互操作?或者是否需要采取其他步骤才能使其发挥作用?
猜你喜欢
  • 2019-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多