带有平台代码(插件?)而不使用 Podspecs 和 Cocoapods 的 Flutter 应用程序?

问题描述 投票:0回答:1

我正在将现有的 iOS 项目迁移到 Flutter。

我正在为 Flutter 应用程序编写自定义相机代码。我使用插件系统创建了它的简单版本。我可以在 Flutter 中显示我的相机视图,拍照,一切正常。但非常简单的版本,我的生产代码需要 OpenCV 和其他低级的东西。

我的问题是 Flutter 使用每个插件使用自己的 podspec 制作一个 Pod。我的遗留代码混合了 Swift、C++、Objective-C。在 xcodeproject 本身中设置时效果很好(实际上配置非常简单,它使用 BridgingHeader 和 ObjC 包装器并且可以正常工作)。

但是当我提取这段代码并将其移动到 Plugin Pod 时,我遇到了无法解决的配置错误,并且我真的不会再花时间在它上面,因为我不需要它成为一个根本没有 Pod。

我的问题是,我可以将我的本机代码添加到 Runner 项目本身,手动配置 C++/桥接内容,然后以某种方式从 Flutter 插件调用此代码吗?或者有什么其他方法,不使用插件? (实际上,我可以将代码添加到 Runner 中,但我无法从生成 Pod 中调用它,因为 Pod 无法从主 Xcode 项目导入类定义。我需要的只是在 pod 中创建 1 个类实例,然后我什至无法使用 NSClassNameFromString 因为类型在生成的 Pod 环境中未定义)

我也有适用于 macOS 和 Android 的类似代码,因此理想情况下我只需手动配置相应的项目,然后以某种方式从 Flutter 调用它,而根本不使用插件的 podspecs/cocoapods。

理想情况下,我希望能够完全摆脱 Cocoapods。

谢谢!

ios flutter cocoapods
1个回答
0
投票

我找到了我需要的概念:Flutter 中的条件导入。 我能够消除插件包并将所有 Flutter 代码放入 lib/ 并将平台代码放入 ios/macos/android 项目中。

© www.soinside.com 2019 - 2024. All rights reserved.