我有一个 Flutter 插件,它对于 iOS 使用静态库(.a 文件)。如果我将插件添加到我的 pubspec.yaml 并通过 安装它flutter pub get,它会安装一个 pod,我可以在我的应用程序的 XCode 项目中看到它,到目前为止一切都是正确的。
pubspec.yaml:
XXX_flutter:
git:
url: git@gitlab:XXX-solutions/app/flutter/plugin_XXX.git
ref: "develop"
Run Code Online (Sandbox Code Playgroud)
但是,如果我构建应用程序,则会出现以下错误:
架构 arm64 的未定义符号:“_OBJC_CLASS_$_XXX”,引用自:XXX.o ld 中的 objc-class-ref:找不到架构 arm64 的符号
在 XCode 工作区中,在 Pods 项目中,如果我选择 XXX pod,我可以手动将 .a 文件添加到“Pod Project -> TARGETS XXX -> Build Phases -> Link Binary With Libraries”。这将解决问题,但我必须在任何时候进行 flutter clean、pub 升级、团队成员签出项目等时都这样做。因为 Pod 不受源代码控制,所以这个解决方案不好。
我尝试将 .a 文件添加到我的应用程序项目“Link Binary With Libraries”中,但这并没有解决。我不知道如何解决这个问题。
注意:该库是专有软件,所以它被涂黑了,因为我认为开发人员不希望看到他们的软件出现问题。该插件本身只是库的 Flutter 包装器,由我们的团队编写。
这是因为您使用的静态库不是为 arm64 设备编译的,因此您需要从构建中排除此架构。见图。
*注意:仅在发布时,如果您有 M1/M2 mac 并使用模拟器,则可能会遇到排除 arm64 进行调试的问题。
您可以毫无问题地发布到排除了arm64的ios设备的App Store。
或者,您可以包含为 arm64 arc 编译的静态库版本。
| 归档时间: |
|
| 查看次数: |
777 次 |
| 最近记录: |