如何在Swift编写的iOS中使用Objective-C框架作为flutter插件的一部分



Flutter插件中,我想在我的iOS部分中使用Objective-C框架,然后在使用swift作为iOS语言的Flutter项目中使用它。经过一些研究(我不是iOS开发人员),我发现我想做的是通过导入文件中的头来实现,充当swift和Objective-C之间的桥接头,但如果在Podfile中定义了use_frameworks!(据我所知),则flutter插件中的桥接头是自动创建的,我不明白如何从Objective-C(我想是通过在podspec中定义一些东西,但我不知道)pod中导入头。事实上,如果我试图从Objective-C pod导入一些东西,XCode会抱怨(以及编译器)说它是"doesn't find the module with name <framework name>",或者说它不能构建Objective-C代码。如果我试图在Objective-C插件中使用该框架,我可以使用它,但前提是我从项目Podfile中注释掉use_frameworks!

最后,我想知道是否可以在Swift插件中使用Objective-c外部框架来开发flutter插件。

我建议您查看starflut包https://pub.dev/packages/starflut.但最有可能的是,你试图完成的事情在另一个包中为你做得更简单,但如果你完全想自己做,我认为你应该尝试包

如果这对一些开发人员来说仍然是一个相关的问题,下面是可能的解决方案。

在插件的.podspec文件中,为远程框架粘贴此字符串

Pod::Spec.new do |s|
...
s.dependency 'GoogleWebRTC'
end

或者,对于本地框架,粘贴这些

Pod::Spec.new do |s|
...
s.preserve_paths = 'WebRTC.framework'
s.xcconfig = { 'OTHER_LDFLAGS' => '-framework WebRTC', 'ENABLE_BITCODE' => 'NO' }
s.vendored_frameworks = 'WebRTC.framework'
end

最新更新