sag*_*uri 8 ios flutter flutter-plugin
我正在创建一个 Flutter 插件。但是当我尝试向插件的 iOS 部分添加依赖项时,我没有找到任何合适的指南。我在podspec插件文件中声明了依赖项。但是依赖项仅在example/iosthrough Pod 中可用,但我想在我ios的插件文件夹中访问该依赖项。这是我的podspec:
#
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#
Pod::Spec.new do |s|
s.name = 'comet_chat'
s.version = '0.0.1'
s.summary = 'A new Flutter plugin.'
s.description = <<-DESC
A new Flutter plugin.
DESC
s.homepage = 'http://example.com'
s.license = { :file => '../LICENSE' }
s.author = { 'Your Company' => 'email@example.com' }
s.source = { :path => '.' }
s.source_files = 'Classes/**/*'
s.public_header_files = 'Classes/**/*.h'
s.dependency 'Flutter'
s.dependency 'CometChatPro', '1.4.0'
s.ios.deployment_target = '10.0'
s.preserve_paths = 'CometChatPro.framework'
s.xcconfig = { 'OTHER_LDFLAGS' => '-framework CometChatPro' }
s.vendored_frameworks = 'CometChatPro.framework'
end
Run Code Online (Sandbox Code Playgroud)
我关注了这个问题,但没有帮助。如何解决这个问题?如何仅获得插件的依赖项?
没有办法“只打开插件的类”,并且您添加的依赖项podspec仅适用于您的插件,除非明确公开。
长话短说
根据设计,您的 iOS Flutter 插件在嵌入 Flutter 应用程序项目时将始终运行。另外,您的 ; 存在冲突podspec。它永远不应该在 和 中指定相同的框架dependencyvendored_frameworks。
如果您有一个CometChatPro.framework文件夹,请将其复制到插件的ios/Libraries文件夹中,并在您的podspecin vendored_frameworks. 就我个人而言,我从未使用过说明符,但插件的实现dependency中有一个示例。flutter-webrtc
无论哪种方式,ios/Classes插件的文件夹都可以访问您在文件中指定的依赖项ios/plugin_name.podpsec。当您在 Xcode 以外的任何编辑器(Visual Studio Code、Android Studio 等)中编辑插件时,它只是“不知道”。
要为插件的 iOS 实现开发 Swift 或 Objective-C 类,您应该:
example/ios/Runner.xcworkspace。Pods/Development Pods/plugin_name/../../ios/.symlinks/plugins/plugin_name/ios/Classes如果此时您仍然无法访问插件的 iOS 类中的框架,则意味着 Cocoapods 未正确设置它。在这种情况下,您需要找到哪个 Xcode 构建设置未正确设置,然后在插件的 中指定这些构建设置podspec,如下所示:
s.xcconfig = {
'FRAMEWORK_SEARCH_PATHS' => ['${PODS_TARGET_SRCROOT}/Libraries'],
'HEADER_SEARCH_PATHS' => ["${PODS_ROOT}/../.symlinks/plugins/plugin_name/ios/Libraries/CometChatPro.framework/Headers"
}
Run Code Online (Sandbox Code Playgroud)
这会显式地将框架添加到插件目标的FRAMEWORK_SEARCH_PATHS,以及框架的Headers路径到HEADER_SEARCH_PATH.
链接时vendored_frameworks,您需要确保 Cocoapods 确实成功嵌入了框架,并且您正在构建正确的架构。
| 归档时间: |
|
| 查看次数: |
346 次 |
| 最近记录: |