[英]How to use Objective-C framework in a Swift written iOS part of a flutter plugin
在Flutter 插件中,我想在我用 swift 編寫的 iOS 部分中使用Objective-C框架,然后在使用 Swift作為 iOS 語言的Flutter 項目中使用它。 經過對它的一些研究(我不是 iOS 開發人員)我發現我想要做的事情是通過在文件中導入頭文件作為swift 和 Objective-C 之間的橋接頭文件來實現的,但是橋接頭文件在如果use_frameworks!
,flutter 插件會自動創建use_frameworks!
是在 Podfile 中定義的(據我所知),我不明白實際上是如何從 Objective-C(我認為是通過在 podspec 中定義一些東西,但我不知道)pod 中導入標頭的。 事實上,如果我嘗試從 Objective-C pod 中導入一些東西, XCode 會抱怨(以及編譯器),說它"doesn't find the module with name <framework name>"
或者它不能構建 Objective-C 代碼。 如果我嘗試在 Objective-C 插件中使用該框架,我可以使用它,但use_frameworks!
是我注釋掉use_frameworks!
來自項目 Podfile
最后,我想知道是否可以在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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.