手把手教你用CocoaPods发布自己的开源库

前言

文本将从零开始介绍如何使用cocoaPods发布自己的开源库

第一步:注册Trunk

  1. 查看当前pod版本

    pod --version
    
  2. 如果未安装pod,需下载安装

    sudo gen install cocoapods      
    pod setup
    
  3. 查看自己是否注册过 Trunk

    pod trunk me
    

    如果输出您的邮箱信息等,说明您已经注册过了,无需重新注册

  4. 注册

    pod trunk register 您的邮箱地址@163.com "用户名" --verbose
    

    您的邮箱地址@163.com - 这里输入您的邮箱地址
    用户名 - 这里输入您的用户名

    注册完成后,会给您的邮箱发送一封邮件,您需要进入邮箱,打开邮件中的链接,完成验证即可

  5. 验证是否注册成功

    pod trunk me
    

    观察是否会输出用户信息,注册如果成功会打印出您的邮箱和用户名

第二步:创建项目

  1. github上创建一个新项目

    1. 进入您的git账号,点击+, 选择 New Repository, 新建项目
    2. 输入项目名称(注意:这里的项目名是你要发布库的名字如 ChXAnimation 而不是你的工程名如ChXAnimationDemo)、填写描述,选择初始化一个 README 文件,选择 MIT 的授权文件
  2. Clone 到本地(使用 git 命令)

打开终端,cd 到您想存放项目的地方,如文档文件夹

cd ~/文档

github 上复制刚创建项目的链接地址,例如: https://github.com/sunrisechen007/ChXCategorys.git

clone

git clone https://github.com/sunrisechen007/ChXCategorys.git
  1. 添加要发布的库内容,如需要发布 ChXCategory 这个文件夹里的文件,直接把该文件夹拖入当前项目根目录中

第三步:配置信息

  1. 创建 .podspec文件,用以配置pod发布库的信息

    cd 到刚 cloen 的项目中 ,输入命令

    pod spec create ChXCategorys 
    

    上面ChXCategorys 是您要发布框架的名字,和 git 上项目的名称(https://github.com/sunrisechen007/ChXCategorys.git)保持一致

    注意这里的 podspec 文件名ChXCategorys 和您要发布库存放的文件夹 ChXCategory 是可以一样的

  1. 编辑 .podspec文件

    使用文本编辑工具打开刚建的 podspec文件,删除里面的默认代码,按照下面格式输入代码

     Pod::Spec.new do |s|
     s.name         = "ChXCategorys"
     s.version      = "0.0.1"
     s.ios.deployment_target = '8.0'
     s.summary      = “简介"
     s.homepage     = "https://github.com/zhangyqyx/ChXCategorys"
     s.social_media_url = 'https://www.baidu.com'
     s.license      = "MIT"
     s.author       = { "xuchen" => "xxx@163.com" }
     s.source       = { :git => 'https://github.com/zhangyqyx/ChXCategorys.git', :tag =>    s.version}
     s.requires_arc = true
     s.source_files = ‘ChXCategory/*'
     #依赖库,不能依赖未发布的库
     #s.dependency = 'AFNetworking' , 'SDWebImage'
    end
    

    下面是这些参数的意思,也很好理解,根据实际相应修改即可
    s.name -> 项目名 ,即使你要发布库的名字
    version -> tag 版本号(每次发布都需要修改
    ...
    s.source_files -> 这个是指定您要发布库的文件夹位置的,我这里是把文件都放在了 ChXCategory里了,后面的 /* 表示该文件夹里的所有文件,当然您也可以写成 *.{h,m}表示里面的所有 .h 和 .m 文件

    如果 ChXCategory 里又嵌套了一个文件夹,您可以使用代码 ‘ChXCategory/*','ChXCategory/*/*'
    目录图参考如下:

    mulu.png

第四步:发布

  1. 上传到 github(使用 Git 命令行)

    将修改后的本地项目文件,提交到线上

    1. git add .  
     
    2. git commit -m "提交说明文字"
     
    3. git push origin master
    

    add 是将代码从工作区提交到暂存区, . 表示提交所有文件
    commit 是将代码从暂存区提交到版本库, -m后面需要填写更新日志
    push 是推送到远程主分支,您也可以推送到其它相应分支

  1. tag
    每次发布都得重新设置 tag

    1. git tag 1.0.0  
       
    2. git push --tags
    
    3. git push origin master
    

    可以使用 git tag查看当前存在的tag
    每次打完 tag 之后,记得要推送(push)到远程分支

  1. 验证 .podspec文件内容是否正确

    pod spec lint ChXCategorys.podspec --verbose  
    
    

    ChXCategorys.podspec 这就是您项目中新建的 podspec 文件,需替换成您的

注意:
如果验证出现错误,修改完成后,需要把修改完成后的项目重新提交到 git 上,打 tag每次验证都需要修改下版本号tag 要加 1 ,podspec文件里的 s.version 也加 1

  1. 可以发布啦

    当验证完成无报错时,下面我们就可以发布我们的库了

    pod trunk push ChXCategorys.podspec
    

    耐心等待一会儿,结果出现有 Congrats 时,说明您的库已经发布成功啦。

  2. 验证

    pod search ChXCategorys
    

    输入以上命令,如果可以搜索到的话,那么恭喜.
    如果搜索不到,出现如下错误提示

    [!] Unable to find a pod with name, author, summary, or description matching `xxx`
    

    而你确认已经发布成功的话,那么你可以

    1. 前往 资源库 去删除 cocoapod 缓存中的 search_index.json 文件,重新搜索一次再试试,有点慢,需要等待一会儿
    2. json文件路径: /Users/xx/Library/Caches/CocoaPods (xx是你的电脑账户名)

使用

进入到项目中,在 podfile 文件中添加 pod ChXCategorys (ChXCategorys您的库名),然后执行 pod install 就可以下载到您的库了

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