使用gomobile生成.xcframework文件

问题描述

是否可以使用gomobile生成.xcframework文件

我使用以下命令使用gomobile构建了.framework文件

gomobile绑定-target ios -o ../ frameworks / MyFramework.framework

之后,我尝试使用此命令构建.xcframework文件

xcodebuild -create-xcframework -framework“ MyFramework.framework” -输出“ MyFramework.xcframework”

显示错误

错误不支持具有多个平台的二进制文件 '/Users/nicco/myFramework/MyFramework.framework/MyFramework'

看起来问题出在gomobile框架生成过程中。

所以我看到2种解决方案:

  1. 使用gomobile生成.xcframework文件
  2. 更改.framework生成过程,以便将.framework生成文件转换为.xcframework

如何做到?

解决方法

这有助于生成和 xcframework

你需要为每个架构生成一个框架

mkdir arm64
gomobile bind -ldflags="-w -s" -target=ios/arm64 -o ./arm64/Openpgp.framework github.com/jerson/openpgp-mobile/openpgp

mkdir amd64
gomobile bind -ldflags="-w -s" -target=ios/amd64 -o ./amd64/Openpgp.framework github.com/jerson/openpgp-mobile/openpgp

然后与 xcode 命令合并

xcodebuild -create-xcframework \
    -framework ./arm64/Openpgp.framework \
    -framework ./amd64/Openpgp.framework \
    -output Openpgp.xcframework

仅此而已,希望对您有所帮助

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...