美文网首页
Flutter插件开发中iOS图片等资源配置问题

Flutter插件开发中iOS图片等资源配置问题

作者: helang1991 | 来源:发表于2019-06-14 16:38 被阅读0次

    前言

    flutter开发中,不可避免要使用原生的东西,比如,我们要调用原生自定义的相机,就会涉及到和flutter和native的通信等问题

    Flutter和native通信方式

    1.不通过插件

    直接在flutter目录中,分别在android和iOS目录,直接定义就可以了,然后通过MethodChannel来注册通信即可


    image.png

    这种方式缺点也比较明显,比如不利于解耦,导致这2个子目录臃肿,修改起来也很麻烦,

    2.通过插件的形式

    插件相当于第三方库文件,具体的创建的过程就不再赘述了,我相信大部分同学都可以完成这一步,可以看下图


    image.png

    这种方式的优点有很多,比如不会在冗杂在主目录下的android和iOS目录中,在主目录下,单独建立一个plugins目录,所有的插件都在这个目录下进行开发,也方便打成插件包给其他工程使用等等。

    注意事项

    我们在开发Android插件的时候,直接在插件中的Android目录下,走Android正常的开发流程即可,如图

    image.png

    但是,在iOS目录中,我们需要在.podspec文件中指定我们需要编译的文件,和相关资源配置等


    image.png

    下面来看看.podspec文件中的配置(podspec文件相当于Android中的gradle文件)

    #
    # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
    #
    Pod::Spec.new do |s|
      s.name             = 'take_picture_plugin'
      s.version          = '0.0.1'
      s.summary          = 'take picture by camera 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.resources = ['Classes/*.png']
      s.dependency 'Flutter'
      s.ios.deployment_target = '8.0'
    end
    

    上面的配置名称顾名思义很简单,当我们需要其他配置的时候,可以去http://guides.cocoapods.org/syntax/podspec.html查看

    比如,如果你要插件中使用本地图片,就需要引入图片资源到iOS插件后,你才能使用本地图片,可以通过spec.resources = ['Images/*.png']来配置,也可以通过bundle等,引入外部第三方库,可以通过s.dependency来配置。

    当我们配置完iOS插件中的podspec后,发现配置并没有生效,无论我们如何在android studio进行操作,原因就是podspec文件的执行需要用到mac 中pod命令,所以,我们就必须通过pod install来让它生效,使用mac Terminal,cd进入到插件中example目录,再进入到iOS目录,使用pod install 即可让podspec配置生效。

    总结

    记住你一定要用pod install走一遍,这个问题困扰了我好几个小时

    作者:何浪
    来源:CSDN
    原文:https://blog.csdn.net/helang296479893/article/details/91979516
    版权声明:本文为博主原创文章,转载请附上博文链接!

    相关文章

      网友评论

          本文标题:Flutter插件开发中iOS图片等资源配置问题

          本文链接:https://www.haomeiwen.com/subject/btppfctx.html