cocoapods使用自定义库(库中包含第三方库)

在维护自己写的框架的时候偶然想到使用cocoapods进行维护(自身的框架包含了其他的第三方库),下面例子是对AFNetworking进行封装形成的自己的SJNetworking框架,其他项目中pod该SJNetworking框架进行使用:

一:github操作

1. 新建github账号,并新建repository,这里设置license为MIT(使用之后说明)。

cocoapods使用自定义库(库中包含第三方库)_第1张图片

2. clone到本地,在本地新建工程,添加license跟README.md文件。

二:下载CocoaPods

具体流程如下Xcode->homebrew->RVM->Ruby->CocoaPods,遇到ruby版本问题则利用rvm进行更新。

1. 下载rvm


$ curl -L get.rvm.io | bash -s stable

$ source ~/.bashrc

$ source ~/.bash_profile


2. 测试是否安装正常

rvm -v

3. 用RVM升级Ruby


$ ruby -v  //查看当前ruby版本

ruby 2.0.0

$ rvm list known //列出已知的ruby版本

$ rvm install 2.2.2 //安装ruby 2.2.2


4. 使用淘宝镜像

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

//等有反应之后再敲入以下命令 移除本地镜像

gem sources -a http://ruby.taobao.org/  //使用淘宝镜像

为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:

$ gem sources -l

终端上会显示

*** CURRENT SOURCES ***

http://ruby.taobao.org/

然后在执行

sudo gem install cocoapods

pod setup

三:制作SJNetworking框架

1.编写podfile 下载AFNetworking

podfile文件格式如下:

platform :ios, '7.0'

use_frameworks!

project '/Users/MAC/Desktop/SJNetworking/SJNetworking.xcodeproj'

target 'SJNetworking' do

pod 'AFNetworking'

end

2.将代码提交到github上。

1.cd到目标文件夹。

2.git init。(在本机上想要创建一个新的git仓库)

3.git add -A (git add -A: [path]表示把中所有tracked文件中被修改过或已删除文件和所有untracted的文件信息添加到索引库,省略表示.,即当前目录。

4.git remote add origin xxxxxxxxx xxxxxx就是你仓库的地址,具体的地址可以去Github上copy。关联远程仓库。例子:https://github.com/zhengwenming/RCIM.git

5.git commit -m “提交信息”

6.git pull –rebase origin master 更新远程更新到本地:

推送本地更新到远程:(注意rebase前面是两个-,不是一个-,而是 –杠杠,哈哈,别搞错了)。

7.git push origin master(git push -u origin master) 将本地repo于远程的origin的repo合并,第一次用-u,系统要求输入账号密码

///出现  master -> master (non-fast-forward)问题

///先执行git pull 然后再执行 git push --force origin master 替换原先的git push -u origin master

8.git pull (上传add的代码)

9.去Github上面检查代码,已经上传成功。

为git打tag的命令如下

git tag 0.0.1 ##为git打tag

git push --tags ##将tag推送到远程仓库

3编写SJNetworking.podspec文件

//pod进行注册

pod trunk register [email protected] 'Orta Therox' --description='macbook air’

编写podspec文件,格式如下:

Pod::Spec.new do |s|

s.name            = "SJNetworking"

s.version        = "1.0.0"

s.summary      = "SJNetWorking只是我的测试"

s.description  = <<-DESC

SJNetworking是我用来测试封装第三方库然后能否被调用。

DESC

s.homepage    = "https://github.com/mynameissujie/SJNetWorking"

s.license          = "MIT"

s.license          = { :type => "MIT", :file => "LICENSE" }

s.author          = { "AbooJan" => "[email protected]" }

s.platform        = :ios, "7.0"

s.ios.deployment_target = "7.0"

s.source          = { :git => "https://github.com/mynameissujie/SJNetWorking.git", :tag => "1.0.0" }

s.source_files  = "SJNetworking/Class/*"

s.requires_arc  = true

s.frameworks  = "UIKit","Foundation","Security"

s.dependency "AFNetworking"

end

///s.authors跟注册的名字邮箱要保持一致

 编辑完成之后进行验证并上传

pod lib lint //进行验证

pod trunk push SJNetworking.podspec  //上传到github

pod repo update //更新库进行搜索

pod search SJNetworking //若搜索到则说明该框架已存在cocoapods上,可以进行使用。

四:使用SJNetworking框架。

本地新建工程,并cd到该目录。

vi Podfile//编写Podfile 文件

podfile文件格式说明

platform :ios, '7.0'

use_frameworks!

project '/Users/MAC/Desktop/SJNetWorkingFinal/SJNetWorkingFinal.xcodeproj'

target 'SJNetWorkingFinal' do

pod 'SJNetworking'

end

编辑完podfile文件之后进行安装

pod install //安装工程

自此 工程安装完成,可以点击workspace进行使用:

cocoapods使用自定义库(库中包含第三方库)_第2张图片

你可能感兴趣的:(iOS)