首页 > 解决方案 > 包含静态库(.a 文件)的 Flutter 插件未正确链接

问题描述

我有一个 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"

但是,如果我构建应用程序,则会收到以下错误:

架构 arm64 的未定义符号:“_OBJC_CLASS_$_XXX”,引用自:XXX.o ld 中的 objc-class-ref:未找到架构 arm64 的符号

在 XCode 工作区的 Pods 项目中,如果我选择 XXX pod,我可以手动将 .a 文件添加到“Pod 项目 -> TARGETS XXX -> 构建阶段 -> 将二进制文件与库链接”。这可以解决问题,但我必须在任何时候进行flutter clean、pub升级、团队成员签出项目等。因为Pod不受源代码控制,所以这个解决方案不好

我试图将 .a 文件添加到我的应用程序项目“Link Binary With Libraries”中,但这并没有解决它。我不知道如何解决这个问题。

注意:该库是专有软件,所以它被涂黑了,因为我认为开发人员不希望看到他们的软件出现问题。该插件本身只是库的 Flutter 包装器,由我们的团队编写。

XCode 工作区

标签: flutterdart

解决方案


推荐阅读