一、主要内容
- 1.1、阐述用CocoaPods使用框架的过程图
- 1.2、开发框架项目的创建
- 1.3、创建框架描述 spec
- 1.4、上传 spec 到gitHub的远程索引库
- 1.5、查看自己在CocoaPods的注册信息
- 1.7、使用自己的框架
- 1.8、subspec分支功能
二、阐述用CocoaPods使用框架的过程图
三、开发框架项目的创建
- 3.1、在gitHub创建一个仓库,名字自己起,我在这里取名为
JKGCDTimer
,并生成其https
链接:https://github.com/JoanKing/JKGCDTimer.git
- 3.2、cd 进入桌面 ,在终端 clone 项目
git clone https://github.com/JoanKing/JKGCDTimer.git
- 3.3、在你clone生成的JKGCDTimer文件夹里面创建项目 JKGCDTimer
提示:clone生成的文件夹名字必须和项目的名字一致
3.4、在JKGCDTimer项目里面创建一个文件夹 JKGCDTimer
- 3.5、上传JKGCDTimer本地的文件 到本地仓库
// 进入本地文件夹 cd 文件夹路径 // 我这里是 cd 上图画红线的JKGCDTimer // 把文件添加到 暂缓区 git add . // 把代码提交到本地仓库 // 如果没建立本地 git ,那么久 `git init`建立本地的git仓库 git commit -m '提交内容说明'
- 3.6、把本地的代码提交到github仓库
// 查看仓库名字 git remote // 添加关联仓库 git remote add origin https://github.com/JoanKing/JKRichText.git //推送到github仓库 git push origin master
- 3.7、提示:如果在 2.5中的git remote add origin ---- 报错:fatal: remote origin already exists,处理办法如下
- 1、先输入$ git remote rm origin
- 2、再输入$ git remote add origin https://github.com/JoanKing/JKRichText.git 就不会报错了!
- 3、如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section ‘remote.origin’. 我们需要修改gitconfig文件的内容
- 4、找到你的github的安装路径,找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!
- 5、补充Git 上传提交问题
The local repository is out of date
字面意思很好理解, "确保所有东西都从远程拉下来" .是因为你再github新建的项目中有文件在本地没有造成的,需要将它pull到终端,先cd到你项目目录git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并
- 进入当前项目目录
git pull --rebase xxx master
xxx
是Add Remote的Name 默认为origin
master
是你的分支名称 默认是master
- 6、当出现
error: failed to push some refs to ‘xxx’’ ?
错误的处理办法 执行:git push -f origin master
- 3.8、
3.5
与3.6
可以使用Xcode提交
- 提示:第一次提交会 弹出框 让你输入你的
gitHub名字
与密码
四、创建框架描述 spec 文件
- 4.1、有关 spce 文件里面的内容不懂的可以查看CocoaPods Guides
4.2、创建spec 文件(create后面的名字一般是你仓库的名字)
cd 进入桌面JKGCDTimer文件夹 // 创建 spec 文件 pod spec create JKGCDTimer
4.3、修改刚刚创建的 spec
文件,我创建的是 JKGCDTimer.podspec
4.4、spec里面的具体内容,也可以到 guides.cocoapods 的 podspec查看
Pod::Spec.new do |spec| spec.name = 'Reachability' spec.version = '3.1.0' spec.license = { :type => 'BSD' } spec.homepage = 'https://github.com/tonymillion/Reachability' spec.authors = { 'Tony Million' => 'tonymillion@gmail.com'} spec.summary = 'ARC and GCD Compatible Reachability Class for iOS and OS X.' spec.source = { :git => 'https://github.com/tonymillion/Reachability.git', :tag => 'v3.1.0' } spec.source_files = 'Reachability.{h,m}' spec.framework = 'SystemConfiguration' s.ios.deployment_target = "8.0" end
- self.name
名字
= 'JKGCDTimer' - self.version
版本
= '0.0.1' (这个在后面会阐述) - self.summary
简介
= "JKGCDTimer." - s.description(
详细的描述
) = "JKGCDTimer,这个是详细的描述,内容一定要比 summary 长,不然会报错" - s.homepage(
框架的首页地址
) = "https://github.com/JoanKing/JKGCDTimer"
- s.license(
协议
) = "MIT" - s.author(
作者
) = { "JoanKingWC" => "2318151015@qq.com" },前面写名字,后面写邮箱地址 - s.ios.deployment_target = "8.0"
- s.source(
代码真正存放的地址
) = { :git => "代码仓库的地址", :tag => "#{s.version}" },前面写代码仓库的地址:https://github.com/JoanKing/JKGCDTimer,后面写 版本号的tag,tag是放到 releases 里面的,一定要有
s.source_files(指定在pod install下载的内容
) = "JKGCDTimer", "JKGCDTimer/**/*.{h,m}"
,JKGCDTimer是下载的文件夹,**
匹配的是目录,*.{h,m}
是匹配的所有文件,*
是通配符,重要提醒:"JKGCDTimer/*/.{h,m}" 中的JKGCDTimer要与spec在一个目录下,我这里写的是如下:
s.source_files = "JKGCDTimer", "JKGCDTimer/JKGCDTimer/JKGCDTimer/**/*.{h,m}"
- 说明:在pod install 导入项目的框架 仅仅是导入的 上图
3
文件夹,由此可知s.source_files
配置很重要
- 4.5、提示:上面的内容咱们都写完了,还差最重要的 一 步,项目github仓库release里面还没有tag(tag就是对版本的别称),打tag如下:
// cd 进入 = JKGCDTimer 文件夹 cd JKGCDTimer // 查看本地仓库有没有 tag git tag // 没有的话 设置tag,如果有的话就为当前master的打tag git tag '0.0.1' -m "版本信息" // 删除之前的 origin 项目关联 git remote rm origin git remote add origin https://github.com/JoanKing/JKGCDTimer.git // 提交指定 tag git push origin 0.0.1 // 提交所有的标签 git push --tags
提示:删除tag
- 本地删除:
git tag -d 0.0.1
- 远程删除:
git push origin :0.0.1