CocoaPods 的使用

制作公有的 pod:
前期准备
首先要安装 CocoaPods
如果已安装 CocoaPods 并且 Xocde 版本是8或者更高版本,升级 CocoaPods。

创建本地的项目,将要开源的代码写在项目中,同步到 GitHub 上,同步的时候注意,在 GitHub 上创建项目的时候,项目名字以及介绍自己写,其余的选择默认的最好。

同步完了要打 tag,可以直接在 GitHub 上打 tag

在本地项目文件夹中通过命令 pod spec create XXXXX 创建 podspec 文件,XXXXX最好就是你的项目名字。

修改 podspec 文件,大致如下:

#
#  Be sure to run `pod spec lint GFCommonView.podspec' to ensure this is a
#  valid spec and to remove all comments including this before submitting the spec.
#
#  To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html
#  To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/
#

Pod::Spec.new do |s|

  # ―――  Spec Metadata  ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  These will help people to find your library, and whilst it
  #  can feel like a chore to fill in it's definitely to your advantage. The
  #  summary should be tweet-length, and the description more in depth.
  #

  s.name         = "CYTestCocoaPods"
  s.version      = "0.0.1"
  s.summary      = "Test CocoaPods"


  s.description  = <<-DESC
                   Test CocoaPods
                   DESC

  s.homepage     = "https://github.com/chenyu1520/CYTestCocoaPods"

  s.license      = "MIT"
  s.author             = { "chenyu" => "chenyu1520@gmail.com" }

   s.platform     = :ios, "8.0"

   s.ios.deployment_target = "8.0"

  s.source       = { :git => "https://github.com/chenyu1520/CYTestCocoaPods.git", :tag => "#{s.version}" }

  s.framework  = "UIKit"
  s.requires_arc = true

    s.subspec 'MyTest' do |ssp|
      ssp.source_files = 'CYTestCocoaPods/MyTest/*.{h,m}'
    end


 end

s.version 要和 GitHub 上的一致。

关于 Swift 的设置用如下命令:
echo "3.0" > .swift-version
验证 podspec 文件,采用忽略警告的方式:
pod spec lint CYTestCocoaPods.podspec --allow-warnings

注册:
pod trunk register chenyu1520@gmail.com 'ChenYu' --description='CYTestCocoaPods'
需要到邮箱点链接验证一下。

看提示或者查询 trunk 后的信息:
pod trunk me
大致如下:
Name: ChenYu
Email: chenyu1520@gmail.com
Since: January 6th, 09:43
Pods: None
Sessions:
January 6th, 09:43 - May 14th, 09:46. IP: 221.217.221.173 Description: CYTestCocoaPods

最后执行:
pod trunk push --allow-warnings

可以看到如下信息


提交成功.png

虽然在终端中可能搜索不到,但是可以在其他项目中直接使用了。


制作私有 pod,有两种方式:

  1. 每一个私有的 pod 制作好了以后,都单独的添加到/Users/xxx/.cocoapods/repos 中,Podfile 文件中需要声明 .git 地址。
    这样做会有一些弊端,一般 pod 库都是放在一个工程中,在执行 pod repo add CYPods https://git.coding.net/ecanfly/MyPrivatePod.git的时候,会把工程中的所有文件同步过来,在执行pod repo push CYPods MyPrivatePod.podspec会报错,说在/Users/xxx/.cocoapods/repos/CYPods目录下有不能提交的代码,还需要做删除操作,把 MyPrivatePod.podspec 以外的所有文件都删除。有几个文件可以不删除,如果没有删除,其他项目组成员在 pull 代码的时候,就会把这些文件 pull 下来,增加存储空间和 pull 的时间。
  2. 单独创建一个仓库,用来管理其他的 pod。单独创建的这个仓库不需要pod spec create XXXXX 创建 podspec 文件。
    • 需要执行几个命令,把他存入/Users/xxx/.cocoapods/repos中,命令如下:pod repo add CYPodSpec https://git.coding.net/ecanfly/CYPodSpec.git。注意https://git.coding.net/ecanfly/CYPodSpec.git是你远端已经存在仓库。这里如果不成功,很有可能是不能正确的访问 https://git.coding.net,这时候用 SourceTree 把代码克隆一份到桌面,克隆的时候会让你输入 https://git.coding.net 的用户名和密码。再次执行之前的命令就可以成功的在 .cocoapods/repos中创建文件夹,并关联到远端。
    • 现在做好一个私有的库,并使用命令pod spec create XXXXX创建 podspec 文件,修改这个文件结束后,通过pod lib lint xxx.podspec --verbose --use-libraries --allow-warnings做本地验证。没有问题后打 tag 并 push 到远端。需要注意 podspec 文件夹中的 s.version 需要在远端有对应的 tag。通过pod spec lint xxx.podspec --verbose --use-libraries --allow-warnings做远程验证。
    • 通过pod repo push CYPodSpec xxx .podspec --verbose --use-libraries --allow-warnings将私有库放置在.cocoapods/repos/CYPodSpec文件夹下,这个命令自带推送操作,会把 CYPodSpec 仓库同步到远端。
    • 如果更新了 pod 库
      • 要修改 podspec 文件中的版本号
      • 本地验证
      • 打 tag 并推送到远端
      • 远端验证
      • 执行 pod repo push CYPodSpec xxx .podspec --verbose --use-libraries --allow-warnings ,CYPodSpec 中对应的私有库文件夹中会多出一个版本号对应的文件夹,里面存放了 xxx .podspec 文件。

(如果是库中拖拽了其他的库当源码,遇到问题的话,可以参考下面的文档)[https://www.jianshu.com/p/8566983dae1f]

参考:
私有库制作的第一种方式参考这个

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

推荐阅读更多精彩内容