3分钟让你的框架支持cocoapods

其实让自己的工程支持cocoapods很简单只需要几步

创建.podspec

编辑.podspec

将自己的项目打成tag

验证

注册CocoaPods

发布

1.代码提交到github平台

将自己的代码上传到github这里不是唯一的,上传到任何平台上都可以

,前提是项目是开源的至于怎么将自己的项目提交到github上,自己百度吧
你自己的项目

2.创建.podspec

然后cd到你项目的目录,执行命令,你也可以使用vim创建,只要创建就可以了

// 注 YJSettingTableView 这个是你框架的名称,也是别人搜索的关键字名称

$ pod spec create YJSettingTableView

3.编辑.podspec

创建好后打开,删除注释, 前面有#的为注释,如果你想知道每个东西的含义可以了解一下
整理之后的文件

Pod::Spec.new do |s|

 s.name = "YJSettingTableView"

 s.version = "1.0.0"

 s.ios.deployment_target = '7.0'

 s.summary = "A delightful setting interface framework."

 s.homepage = "https://github.com/coderYJ/YJSettingTableView"

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

 s.author = { "coderYJ" => "wenyanjun1314@163.com" }

 s.social_media_url = "http://weibo.com/u/5348162268"

 s.source = { :git => "https://github.com/coderYJ/YJSettingTableView.git", :tag => s.version }

 s.source_files = "YJSettingTableView/*.{h,m}"

 s.resources = "YJSettingTableView/YJSettingTableView.bundle"

 s.requires_arc = true

end

接下来讲解一下每行代码的含义
s.name:名称,
pod search 搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错
s.version:版本号
s.ios.deployment_target:支持的pod最低版本
s.summary: 简介
s.homepage:项目主页地址
s.license:许可证
s.author:作者
s.social_media_url:社交网址,这里我写的微博默认是Twitter,如果你写Twitter的话,你的podspec发布成功后会@你
s.source:项目的地址
s.source_files:需要包含的源文件
s.resources: 资源文件
s.requires_arc: 是否支持ARC
s.dependency:依赖库,不能依赖未发布的库
s.dependency:依赖库,如有多个可以这样写
例如

s.dependency = 'AFNetworking'

s.license说明
s.license= { :type => "MIT", :file => "LICENSE" }
这里建议大家这样写,如果写别的会报警告,导致后面一直提交失败,这里军哥已经跳了很多坑
source_files说明

写法及含义建议大家写第一种或者第二种

"YJSettingTableView/*

""YJSettingTableView/YJSettingTableView/*.{h,m}"

"YJSettingTableView/**/*.h"

” 表示匹配所有文件
.{h,m}” 表示匹配所有以.h和.m结尾的文件
“**” 表示匹配所有子目录
s.source 常见写法

s.source = { :git => "https://github.com/coderYJ/YJSettingTableView.git", :commit => "68defea" }

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

s.source = { :git => "https://github.com/coderYJ/YJSettingTableView.git", :tag => s.version }

commit => “68defea” 表示将这个Pod版本与Git仓库中某个commit绑定
tag => 1.0.0 表示将这个Pod版本与Git仓库中某个版本的comit绑定
tag => s.version 表示将这个Pod版本与Git仓库中相同版本的comit绑定

4.创建LICENSE(许可证/授权)文件,此文件必须要有

军哥在这里被坑过,创建一个文件名字命名为LICENSE,内容为:
只需要把前面的版权改一下就行了,后面的都一样

Copyright (c) 2011-2016 YJSettingTableView Software Foundation (https://github.com/coderYJ/YJSettingTableView/)

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in

all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN

THE SOFTWARE.

5.上传到Git

将包含配置好的 .podspec, LICENSE 的项目提交 Git

6.打tag

因为cocoapods是依赖tag版本的,所以必须打tag,以后再次更新只需要把你的项目打一个tag然后修改.podspec文件中的版本接着提交到cocoapods官方就可以了
执行命令

//为git打tag

$ git tag 1.00 

//将tag推送到远程仓库

$ git push --tags

7.验证.podspec文件

到此检查一下你工程下面的文件, 你的项目 .podspec文件, LICENSE文件验证会先测试本地 .podspec 文件是否存在语法错误.

然后执行命令

// --verbose 如果验证失败会报错误信息

pod spec lint YJSettingTableView.podspec --verbose

验证过程中:

-> YJSettingTableView

验证成功后:

YJSettingTableView.podspec passed validation.
Paste_Image.png

验证失败:

[!] The spec did not pass validation, due to 1 error.

8.注册Trunk

trunk需要CocoaPods 0.33版本以上,用pod --version
命令查看版本,

如果版本低,需要升级:

$ sudo gen install cocoapods

$ pod setup

已经注册过的不需要注册,怎么看自己有没有注册

$ pod trunk me

我的注册信息

-Name: coderYJ

- Email: [wenyanjun1314@163.com](mailto:wenyanjun1314@163.com)

- Since: August 12th, 04:37

- Pods:

 - YJSettingTableView

- Sessions:

 - August 12th, 04:37 - Unverified. IP: 113.111.64.45

 Description: macbook pro

 - August 12th, 04:39 - December 18th, 21:11. IP: 113.111.64.45

 Description: macbook pro

注册

// 加上--verbose可以输出详细debug信息,方便出错时查看。

// 邮箱 一定要写有效的邮箱,待会需要验证

// 名称随意写

pod trunk register [wenyanjun1314@163.com](mailto:wenyanjun1314@163.com) "coderYJ" --verbose

注册完成之后会给你的邮箱发个邮件,进入邮箱邮件里面有个链接,需要点击确认一下

9.发布

发布时会验证 Pod 的有效性,如果你在手动验证 Pod 时使用了 —use-libraries 或 —allow-warnings 等修饰符,那么发布的时候也应该使用相同的字段修饰,否则出现相同的报错

// --use-libraries --allow-warnings

$ pod trunk push YJSettingTableView.podspec

验证中

Paste_Image.png

发布成功

Paste_Image.png

发布成功后的信息

bogon:YJSettingTableView simplyou$ pod trunk push YJSettingTableView.podspec 

Updating spec repo `master`

CocoaPods 1.1.0.beta.1 is available.

To update use: `gem install cocoapods --pre`

[!] This is a test version we'd love you to try.

For more information see http://blog.cocoapods.org

and the CHANGELOG for this version http://git.io/BaH8pQ.

Validating podspec

[!] Unable to load a specification for the plugin `/Library/Ruby/Gems/2.0.0/gems/cocoapods-deintegrate-1.0.0`

 -> YJSettingTableView (1.0.0)

[!] Unable to accept duplicate entry for: YJSettingTableView (1.0.0)

[!] Unable to read the license file `/private/var/folders/qr/x09stzhx4rvf8cd4s0nmw8m80000gn/T/CocoaPods/Lint/Pods/YJSettingTableView/LICENSE` for the spec `YJSettingTableView (1.0.0)`

[!] Unable to read the license file `/private/var/folders/qr/x09stzhx4rvf8cd4s0nmw8m80000gn/T/CocoaPods/Lint/Pods/YJSettingTableView/LICENSE` for the spec `YJSettingTableView (1.0.0)`

10.最后一步赶快验证一下

在终端中输入命令

$ pod search YJSettingTableView

会出现如下信息

bogon:YJSettingTableView simplyou$ pod search YJSettingTableView

-> YJSettingTableView (1.0.0)

 A delightful setting interface framework.

 pod 'YJSettingTableView', '~> 1.0.0'

 - Homepage: https://github.com/coderYJ/YJSettingTableView

 - Source: https://github.com/coderYJ/YJSettingTableView.git

 - Versions: 1.0.0 [master repo]

bogon:YJSettingTableView simplyou$

代表你的项目已经支持pod了是不是soeasy啊到此大功告成,小伙伴们赶快让你的框架支持pod吧如果出现问题,欢迎咨询军哥,定期更新错误,大家相互学习持续更新实用的干货

来源:
http://bbs.520it.com/forum.php?mod=viewthread&tid=1886&extra=page%3D1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,681评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,710评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,623评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,202评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,232评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,368评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,795评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,461评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,647评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,476评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,525评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,226评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,785评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,857评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,090评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,647评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,215评论 2 341

推荐阅读更多精彩内容