Cocoapods 二进制

栏目: IOS · 发布时间: 5年前

内容简介:什么是组件二进制化?为什么我们需要二进制化呢?下面是使用的工具个人理解上的对比,如果有不对的地方往指正和沟通,互相进步和学习

什么是组件二进制化?

  • 在iOS开发中,事实标准是我们使用CocoaPods生成、管理和使用library。这里的library就是一个模块、组件或库。二进制化指的是通过编译把组件的源码转换成静态库或动态库,以提高该组件在App项目中的编译速度。

为什么我们需要二进制化呢?

  • 在我们App开发中,我们逐渐的抽象了很多模块、业务、UI等把他转换成私有CocoaPod库。其中有很多我们自己的组件是用Swift写的,源码格式为.Swift。在app项目编译时.Swift部分代码编译非常慢。 随着业务的扩展,私有CocoaPod库和第三方CocoaPod库越来越多,App项目中的文件也越来越多。每次pod install安装新库或pod update更新库的时候,重新编译的过程需要等待很长时间。这也向我们提出了加快编译速度的需求。

下面是使用的 工具 个人理解上的对比,如果有不对的地方往指正和沟通,互相进步和学习

Cocopods组件二进制插件

  • 二进制化后,可以看出我们编译的target变少了,少了RxSwift.....这些target,这些就时间差的由来。
  • cocoapods-bin (是一个非cocoapods的开源项目)
    • 该插件进行二进制化的策略是采用双私有源,即2个服务器一个静态服务器保存预先打好包的.a或者framework,一个是我们现在保存源码的服务器,在install的时候去选择使用下载那个。
    • 该插件优点缺点也十分明显
      • 优点:源码和二进制文件之间可以来回切换,速度比较快
      • 缺点:源码的变动不能及时得到响应,而且需要第二个私有服务器
  • cocoapods-packager (cocoapods的开源项目)
    • 该插件是cocoapods的一个插件,主要是来将私有库打包成二级制的一个插件,通过修改*.podspec文件
    • 该插件的优缺点:
      • 优点:可以将私有库打包成二级制文件,由组件本身去管理二进制文件,方便为主项目集成,私有库变动等
      • 缺点:该库已经有很长一段时间不维护了,很多问题都未解决,而且我们的组件里依赖相对比较复杂,使用的Swift不能很好的支持。
  • cocoapods-binary (是一个非cocoapods的开源项目)
    • 该插件是开源的Cocoapods推荐的的一个插件,主要是来将Podfile里所依赖的组件选择性打包成二级制的一个插件,通过修改Podfile文件里的内容
    • 该插件的优缺点:
      • 优点:选择性的在将那些组件使用二进制,不需要多个服务去存二级制文件,二进制文件在pod install的过程进行预编译,生成的项目之间依赖framework。源码变动能比较快的得到相应
      • 缺点:二进制切换到源码文件的时候都会删除已经打好的二级制文件,下次切换需要重新编译新的二级制文件,这个过程比较耗时

Usage

在Podfile中加入以下内容

#引入插件  
plugin 'cocoapods-binary'  
#一定要使用framework  
use_frameworks!  
#该值打开后 默认所有的依赖都将开启二进制化  
#all_binary!  

#在依赖的组件后添加:binary => true/false 来切换源码和二级制 如果打开了上面的all_binary!后默认都是true   
target "HP" do   
  pod "ExpectoPatronum", :binary => true  
end
复制代码

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

游戏运营:高手进阶之路

游戏运营:高手进阶之路

饭大官人 / 电子工业出版社 / 2018-1-1 / 79.00元

《游戏运营:高手进阶之路》是一本系统的、成体系的、注重运营效能、强化系统思维、提升专业认知的书籍。《游戏运营:高手进阶之路》几乎完整覆盖了一个游戏运营人员日常工作中的方方面面,并从工作中具体的业务场景出发,归纳整理出各种解决问题的方法论。《游戏运营:高手进阶之路》为广大游戏从业者建立了完整的知识技能成长体系,包含两大岗位基本功—内容输出和协作推进,四大职业技能—活动策划、版本管理、用户运营、数据分......一起来看看 《游戏运营:高手进阶之路》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

SHA 加密
SHA 加密

SHA 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具