CocoaPods集成方式的添加
1.什么是CocoaPods
CocoaPods是一个负责管理iOS项目中第三方开源库的工具。CocoaPods的项目源码在Github上管理。该项目开始于2011年8月12日,在这两年多的时间里,它持续保持活跃更新。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。
2.CocoaPods的原理
CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
3.CocoaPods的安装及使用
3.1 设置ruby的软件源
gem sources -l #(查看当前ruby的源)
gem sources --remove https://rubygems.org/ #(移除当前ruby的源)
gem sources -a https://ruby.taobao.org/ #(设置当前ruby的新源)
gem sources -l #(再次查看当前ruby的源)
输出:
*** CURRENT SOURCES ***
https://ruby.taobao.org/
ok,ruby的软件源设置已完成。
3.2 设置gem为最新版本
sudo gem update --system
成功提示:
Latest version currently installed. Aborting.
3.3 执行安装CocoaPods命令
查看cocoapods的版本号
pod - -version
如果CocoaPods版本号小于0.33需要更新版本
sudo gem install cocoapods
3.4 Cocoapods的使用
- 进入工程目录
$ cd Documents/你的工程
- 建立或打开Podfile(配置文件)
$ vim podfile
- 进入vim编辑器编辑配置文件
友情提示:键盘输入 i,进入编辑模式
platform :ios, '7.0'
target '你的项目名称' do
pod 'AFNetworking' (你所需要的三方库)
...
end
-
退出vim编辑器
按Esc
输入:wq
回车。保存并退出。(如果不想保存输入:q
) -
执行下载
pod install
4.发布framework到CocoaPods
网上很多发布开源项目,可以搜索一下。可能有些商业原因不可以开源某项目的时候,就需要使用资源包的方式了。这里主要写一下framework包的相关上传方法,。拿MyFirstFramework.framework
为例。(个人还是支持开源,有知识大家一起学)
4.1 创建GitHub仓库
-
在GitHub上新建仓库(这里不细说了,自行百度)
-
创建成功后 clone远程仓库到本地
$ cd Documents //你希望存放的地址
$ git clone https: //仓库地址
4.2创建Trunk账户
- 注册Trunk账户
pod trunk register 邮箱地址 ‘用户名’ –verbose
-
注册命令执行完之后,对应的邮箱地址会收到一封邮件,去邮箱确认注册。
-
查看自己的注册信息
$ pod trunk me
4.3创建.podspec文件
-
.podspec
文件的作用是为了让CocoaPods搜索引擎知道该代码的作者、版本号、概要、描述、源代码地址、部署版本、依赖的框架等描述信息。 -
创建
.podspec
文件
pod spec create MyFirstFramework
- 双击打开
.podspec
文件进行描述信息编辑
Pod::Spec.new do |s|
#名称
s.name = 'MyFirstFramework'
#版本号
s.version = '1.0.0'
#许可证
s.license = { :type => 'MIT' }
#项目主页地址
s.homepage = 'https://github.com/..../MyFirstFramework'
#作者
s.authors = { 'Andrew' => '290649927@qq.com' }
#简介
s.summary = 'A delightful iOS framework.'
#项目的地址 (注意这里的tag位置,可以自己写也可以直接用s.version,但是与s.version一定要统一)
s.source = { :git => 'https://github.com/.../MyFirstFramework.git', :tag => s.version }
#支持最小系统版本
s.platform = :ios, '7.0'
#需要包含的源文件
s.source_files = 'MyFirstFramework/MyFirstFramework.framework/Headers/*.{h}'
#你的SDK路径
s.vendored_frameworks = 'MyFirstFramework/MyFirstFramework.framework'
#SDK头文件路径
s.public_header_files = 'MyFirstFramework/MyFirstFramework.framework/Headers/MyFirstFramework.h'
#依赖库
s.libraries = 'sqlite3','icucore','z'
#依赖库
s.frameworks = 'UIKit','Foundation'
end
- 保存
4.4放置你的framework包到本地仓库中
注意层级位置
路径.png4.5提交至GitHub
最好编辑一下你的README.md。使用方法啥的...
$ git add --all
$ git commit -m'updata framework'
$ git push
$ git tag -1.0.0
$ git push origin --tags
4.6 上传CocoaPods
- 验证
.podspec
文件是否合法
pod spec lint MyFirstFramework.podspec
过程中遇到的问题就不讲述了,根据错误信息百度一下。
- 提交
.podspec
文件到Trunk中
pod trunk push MyFirstFramework.podspec
- 成功提示
网友评论
WARN | url: There was a problem validating the URL https://github.com/fifyrio/XYWebImage.
但是这个地址是有的
```
pod setup
Setting up CocoaPods master repo
[!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down
```
```
Pod::Spec.new do |s|
s.name = "XYWebImage"
s.version = "1.0.2"
s.summary = "asynchronous load images"
s.homepage = "https://github.com/fifyrio/XYWebImage";
s.license = { :type => 'MIT' }
s.author = { "wuw" => "fifyrio@qq.com" }
s.platform = :ios, "7.0"
s.source = { :git => "https://github.com/fifyrio/XYWebImage.git";, :tag => s.version }
s.source_files = "XYWebImage","XYWebImage/**/*.{h,m}"
s.frameworks = 'UIKit','Foundation','CoreGraphics','ImageIO'
end
```