flutter - 包含静态库(.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 包装器,由我们的团队编写。
解决方案
推荐阅读
- java - 我如何使用放心通过所有测试使用全局标头请求
- php - 根据最大日期获取每组的最新行
- javascript - 在 react-table v7 中动态更改显示的数据
- r - 错误:dlmForecast 仅适用于 R 包“dlm”中 dlmForecast() 的常量模型
- python-3.x - 使用 Python 3 创建以日期和时间为文件名的文件
- java - 在android中画一个半椭圆形的形状
- html - Firebase 初始化为已删除的项目,没有 firebase.json 文件
- docker - docker in docker on a --create-with-container gce 导致分段错误(核心转储)
- docker - 使用 docker-compose 运行多个 docker 容器会导致不同应用程序的标准输出挂起
- django - 函数没有对象成员 pylint