在维护自己写的框架的时候偶然想到使用cocoapods进行维护(自身的框架包含了其他的第三方库),下面例子是对AFNetworking进行封装形成的自己的SJNetworking框架,其他项目中pod该框架进行使用:
一:github操作
1. 新建github账号,并新建repository,这里设置license为MIT(使用之后说明)。
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 ***
然后在执行
sudo gem install cocoapods
pod setup
三:制作SJNetworking框架
1.编写podfile 下载AFNetworking
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 orta@cocoapods.org '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" => "aboojaner@gmail.com" }
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
pod install //安装工程
自此 工程安装完成,可以点击workspace进行使用:
网友评论