iOS库的介绍以及如何使用CocoaPods管理库(2016最新版本) - Go语言中文社区

iOS库的介绍以及如何使用CocoaPods管理库(2016最新版本)


我们首先从操作系统的角度来讨论一下:如何将一个用户源程序变为一个可在内存中执行的程序?



这是一门令人蛋疼的课,幸好还有点卵用、


回答我们提出的问题:

1、 《编译》作用:将用户源代码编译成若干个目标模块。

2、《链接》作用:将目标模块和它们所需要的库函数链接起来,形成一个完整的装入模块。

3、《装入》作用:将装入模块装入内存。


我们这里主要说一下程序的链接,根据链接时间的不同,可把链接分成如下三种:

1、静态链接:在程序运行之前,先将各目标模块以及它们所需的库函数,链接成一个完整的装入模块,以后不再拆开。

2、装入时动态链接:在装入内存时,将(由编译得到的那若干个)目标模块,边装入边链接。

3、运行时动态链接:在程序运行到需要该模块时,才对它进行链接。


现在步入正题:


iOS中的库分为静态库和动态库
所谓静态库:链接(上述的静态链接)时完整地拷贝至可执行文件中,被多次使用就有多份拷贝。
所谓动态库:程序运行时(上述的运行时动态链接)由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用。

有三种形式:
.a是静态库,a是一个纯二进制文件,只能包含代码不能包含资源,

.dylib(现在都是.tbd,没有.dylib了)是动态库,只能包含代码不能包含资源,

.framework既可以是动态库也可以是静态库(系统的.framework是动态库,我们自己建立的.framework是静态库)
.framework中除了有二进制文件之外还可以有资源文件(例如图片、xib)

关于库的创建以及这些库的详细讨论就不在这里讨论了,下面我们来说一下如何使用CocoaPods来管理库:

我们使用库的时候可以手动导入,但这是一个令人蛋疼的问题,好在我们可以使用CocoaPods来管理库:
CocoaPods经过多年发展,现在已经成为iOS开发事实上的依赖管理标准工具。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。
下面简单介绍CocoaPods的使用:

1.开启终端

2.移除现有 Ruby 默认源(因为它被墙了)

$ gem sources --remove https://rubygems.org/

3.使用新的源

$ gem sources -a https://ruby.taobao.org/(但是由于某种原因,它不再被维护了)

所以改用它:gem source -a https://gems.ruby-china.org

4.验证新源是否替换成功,看看现在的源

$ gem sources -l

5.安装 CocoaPods

$ sudo gem install cocoa pods

初始化

$ pod setup

备注:苹果系统升级 OS X EL Capitan 后安装改为:

$ sudo gem install -n /usr/local/bin cocoapods

$ pod setup



以后使用就非常简单了:

1.新建 Podfile 文件

$ touch Podfile(这是一个空的Podfile)(建议用pod init,初始化的Podfile)

2.编辑 Podfile 文件,并写入要添加的第三方库

use_frameworks!  //以动态库引入,生成一个动态框架

inhibit_all_warning!//压制所有第三方库的警告

platform:ios, '8.0'//平台限制

pod 'AFNetworking', '~> 2.3.1'<-------第三方库

根据自己需要编辑

3.导入第三方库

$ pod install


然后打开.xcworkspace就可以运行惹,不过这样不会自动补齐,还要这样: 

 1.选择target—》 BuildSettings —》 search Paths 下的 User Header Search Paths:点击“+”号添加一项:并且输入:$(PODS_ROOT),选择:recursive  然后就可以了。












版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/IOSAFei/article/details/51546340
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-26 21:25:26
  • 阅读 ( 1215 )
  • 分类:研发管理

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢