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
复制代码

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

查看所有标签

猜你喜欢:

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

代码

代码

劳伦斯・莱斯格 / 李旭 / 中信出版社 / 2004-10-1 / 30.00元

劳伦斯·莱斯格的著作《代码》 问世便震动了学界和业界,被人称为“也许是迄今为止互联网领域最重要的书籍”,也被一些学者称为“网络空间法律的圣经”。 《代码》挑战了早期人们对互联网的认识,即技术已经创造了一个自由的环境,因而网络空间无法被规制——也就是说,网络的特性使它押脱了政府的控制。莱斯格提出,事实恰恰相反。 代码的存在证明,网络并不是本制拷贝 ,不可规制的,它并没有什......一起来看看 《代码》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码