第三方库上传至Cocoapods

代码上传的前提是Github上已经配置好(包括忽略文件和Lincence),且代码在Github.

图片.png

1、检查cocoapods版本

cocoapods版本要确保大于0.33.0,如果不满足执行命令更新pod版本,命令如下:

pod --version   //查看pod版本
sudo gem install cocoapods   //更新pod
  • 切记最好不要使用beta版本

2、注册邮箱和用户

pod trunk register email@**.com 'username' --verbose

成功之后要打开邮箱进行验证,内容大致如下:

Hi usename,

Please confirm your CocoaPods session by clicking the following link:

https://trunk.cocoapods.org/sessions/verify/18996b08

If you did not request this you do not need to take any further action.

Kind regards, the CocoaPods team

点击链接进行验证,链接上用个地方点击‘terminal’,直接返回终端
成功之后可以用命令测试

pod trunk me  

信息大致如下:

本地信息.png

3、给代码打tag并推到github

将路径切换到工程目录下 执行命令如下:

git tag 0.0.1  // 给代码打tag,0.0.1 是你的版本号 

git push --tag  // 推送tag到github 

git tag   // 查看所有的tag 

删除本地tag   git tag -d 版本号
删除远程tag   git push origin --delete tag  版本号 

4、创建并配置podspec

将路径切换到工程目录下 执行命令

pod spec create Refresh //Refresh一般和工程名保持一致(非强制)  

执行结束生成一个Refresh.podspec,里面的信息请自行查看。
下面是一些最基本的信息(已删除注释等):

Pod::Spec.new do |s|

  s.name         = 'SCPeriodicScrollView'
  s.version      = '0.0.1'  #些处的版本要和上面设置的tag保持下一致
  s.summary      = 'A fast, lightweight carousel figure.'
  s.description  = 'A fast, lightweight carousel figure, which is based on UICollectionView.'
  s.homepage     = 'https://github.com/tsc000/SCPeriodicScrollView'
  s.license      = 'MIT'
  s.author             = { 'tsc000' => 'email@qq.com' }
  s.platform     = 'iOS'
  s.ios.deployment_target = '7.0'
  s.source       = { :git => 'https://github.com/tsc000/SCPeriodicScrollView.git', :tag => s.version }
  s.source_files  = 'SCPeriodicScrollView/Source/*.{h,m}'
  s.framework  = 'UIKit'
  s.requires_arc = true
  s.dependency "SDWebImage"
end 

对于.podspec文件也可以找到一个第三方库的东西拿出来修改一下就可以。

5、验证podspec文件

  • 以下验证部分 需要进入到.podspec 所在的文件夹

执行命令验证.podspec中的填写信息

 pod lib lint  

如果有错误的话它会提示。但是注意的是如果有警告也是不会验证通过的,对于无关紧要的警告(包括代码中的)可以使用命令

 pod lib lint --allow-warnings  //忽略警告

下面我主要说下可能遇到的问题:

  • 源文件路径不正确
s.source_files  =  "Refresh/Refresh/Source*.{h,m}" 
s.public_header_files = "Refresh/Refresh/Source/*.h" 

source_files和public_header_files 目录一定要从你的工程根目录算起

  • 依赖库
s.dependency "JSONKit" //不写版本号直接更新最新的依赖库
  • 描述长度问题
  s.summary      = "123"
  s.description  = "1234"

description的长度一定要比summary的长

  • Tag问题

如果pods中已经有一个版本,如果将些删掉,然后修改代码重新提交成相同的tag,那么,再用Pods集成的时候还是上一个版本的代码

  • 依赖问题([iOS] unknown: Encountered an unknown error (Unable to find a specification for LGBaseModule depended upon by LGInteractionModule

添加--sources, 私有库地址放到cocoapods仓库地址之前,用逗号(,)分隔

pod lib lint --sources='https://gitee.com/SwiftLogan/PrivateRepoSpec.git, https://github.com/CocoaPods/Specs.git' --verbose
  • xcodebuild: Returned an unsuccessful exit code

添加--verbose

pod lib lint --verbose

6、将代码推送到Cocoapods

执行命令

pod trunk push Refresh.podspec //推送代码到Cocoapods

同样如果有不紧要的警告也要加--allow-warnings

pod trunk push Refresh.podspec --allow-warnings //推送代码到Cocoapods
上传成功.png

7、上传成功之后pods更新

代码库传入 pods之后如果 'pod search 库名' 搜索不到那么要进行<pre>pod setup</pre>操作。setup的操作是将本地仓库和服务器进行同步,同步之后也可能会出现还是搜索不到,但是在cocoapods 官网上明明可以搜的到,这时要做的是下面的操作

执行命令清除搜索索引,因为新添加的库不在索引范围内

rm ~/Library/Caches/CocoaPods/search_index.json

执行完毕之后再重新search(可能会卡在 Creating search index for spec repo 'master'.. 不要急,慢慢等...) ,这时会生成新的搜索索引,新的搜索索引将会包含你的库

其它:

删除cocoapods中某一个库版本
pod trunk delete 库名 库版本号

如果上述有什么错误,欢迎指正。

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

推荐阅读更多精彩内容