CocoaPods制作

  • 欢迎同样喜欢动效的工程师/UI设计师/产品加入我们
  • iOS动效特攻队–>QQ群:547897182
  • iOS动效特攻队–>熊熊:648070256

引言:

折腾了三四天,各种文章翻遍了,遇到各种坑,才创建好了自己的
Pods。本文只说制作CocoaPods的过程。其他的资料就不再重复阐述了。

准备工作:

必须了解的知识:
1.podSpec
2.podFile
3.Spec Repo

建议安装的插件:
cocoapods-xcode-plugin
https://github.com/kattrali/cocoapods-xcode-plugin
这个插件可以很方便的编辑podFile和podSpec文件,推荐安装
插件图片

流程概括:

1,创建Pod项目
2,提交项目至gitHub
3,在项目中增加我们自己的代码
4,配置podSpec
5,本地验证podSpec是否合格
6,配置gitHub对应版本号
7,创建本地Spec Repo
8,向Spec Repo提交podSpec
9,将本地podSpec提交至Pod Trunk
10,新建其他项目,导入自己创建的pod看能否正常使用
11,完成

开始制作Pod:

1.创建pod项目

首先找个地方放置,我直接放在桌面上了

cd ~/Desktop/

选择项目位置

通过命令创建项目(这个命令执行完之后会自动执行pod install命令)

# pod lib create 项目名称
pod lib create BearPodsTest

执行这条命令后就开始从pod模板仓库中拖一个模板到本地,并且会问你5个问题。以下是我的配置,可以参考一下

#选择编程语言
What language do you want to use?? [ ObjC / Swift ]
 > Objc

#是否导入demo
Would you like to include a demo application with your library? [ Yes / No ]
 > Yes

#需要哪种测试框架
Which testing frameworks will you use? [ Specta / Kiwi / None ]
 > None

#想了半天也不知道这个要怎么翻译,就选Yes了
Would you like to do view based testing? [ Yes / No ]
 > Yes

#设置项目名的前缀
What is your class prefix?
 > Bear

看到pods installed就表示本地创建项目成功了
这里写图片描述

注意坑:
创建成功后,项目里的文件夹是这样的。里面可以看到xcodeproj和xcworkspace。
这里写图片描述
如果xcworkspace没有创建成功,并且在这里提示你podFile invalidate,或者说你的podFile有问题什么的。什么都不用说了,卸载你的pod,重新安装pod,重头来过吧。在这里被坑了太多次了。

2,提交项目至gitHub

由于cocoaPods是基于git仓库的,所以在这里我们要把项目提交到git仓库,如何提交到git仓库在这里就不做讨论了。
注意:
不要在仓库中创建README.md和LICENSE,因为此时我们的项目中已经有了这两项了。
项目提交过后,线上仓库会有同样的文件
这里写图片描述

3,在项目中增加我们自己的代码

打开xcworkspace项目,按照下图的路径,在里面加入我们自己的代码。加完之后记得push到git仓库上。

注意:以后每次在项目中增加或者删除文件时,都要执行pod install 或者 pod update操作

这里写图片描述

4,配置podSpec

可以参考这篇文章“自定义cocoapods库”:https://segmentfault.com/a/1190000003064573
“使用CocoaPods开发并打包静态库”:http://www.cnblogs.com/brycezhang/p/4117180.html
用插件打开podSpec文件,或者用命令行打开BearPodsTest.podspec文件,准备配置
以下参数必须配置

s.name          #pod名称
s.version       #pod版本号,自定义,一般从0.0.1开始
s.summary       #pod简介,必须自己填写
s.description   #pod描述,必须自己填写并且不能和summary一样
s.homepage      #你的主页,没有的话可以用gitHub的个人主页
s.license       #license
s.author        #作者信息
s.source        #版本地址和相关信息,一般就是你的git仓库地址,也可以配置版本号,commit标示
s.platform      #支持的iOS系统版本
s.requires_arc  #是否支持ARC
s.source_files  #文件路径,一般添加的路径位于Pod/Classes下,如果是需要其他路径的,根路径(root)要和Pod保持在同一层级,不然是无法找到路径的。如果没有特殊要求的话这个就不用改。
s.dependency 'AFNetWorking'
s.dependency 'MJExtension' #依赖其他POD仓库
#
# Be sure to run `pod lib lint BearPodsTest.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#

Pod::Spec.new do |s|
  s.name             = "BearPodsTest"
  s.version          = "0.0.1"
  s.summary          = "BearSkill contain some methods used frequently in project."

# This description is used to generate tags and improve search results.
#   * Think: What does it do? Why did you write it? What is the focus?
#   * Try to keep it short, snappy and to the point.
#   * Write the description between the DESC delimiters below.
#   * Finally, don't worry about the indent, CocoaPods strips it!  
  s.description      = <<-DESC
BearSkill contain some methods used frequently in project. And many other methods about layout.
                       DESC

  s.homepage         = "https://github.com/BearRan/BearPodsTest"
  # s.screenshots     = "www.example.com/screenshots_1", "www.example.com/screenshots_2"
  s.license          = 'MIT'
  s.author           = { "Bear" => "648070256@qq.com" }
  s.source           = { :git => "https://github.com/BearRan/BearPodsTest.git", :tag => s.version.to_s }
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'

  s.platform     = :ios, '7.0'
  s.requires_arc = true

  s.source_files = 'Pod/Classes/**/*'
  s.resource_bundles = {
    'BearPodsTest' => ['Pod/Assets/*.png']
  }

  # s.public_header_files = 'Pod/Classes/**/*.h'
  # s.frameworks = 'UIKit', 'MapKit'
  # s.dependency 'AFNetworking', '~> 2.3'
end

5,本地验证podSpec是否合格

执行pod lib lint来验证刚才配置的podSpec是否合格可用
这里写图片描述
那个unable大家不用管。。。
看到BearPodsTest passed validation.就表示podSpec本地验证通过了。

6,配置gitHub对应版本号

刚才在配置podSpec的时候我设置了s.version = "0.0.1",版本号我设置为0.0.1,现在我要在github上也设置相同的版本号,不然待会线上验证和查询的时候pod无法找到对应版本号的项目。

git tag -m "first release" "0.0.1"
git push --tags

这里写图片描述
在githHub上能看到版本号设置成功了

7,创建本地Spec Repo

执行命令

#pod repo add pod名称 gitHub仓库地址
pod repo add BearPodsTest https://github.com/BearRan/BearSkill.git

执行完之后在~/.cocoapods/repos/下面会看到我们自己的repo
这里写图片描述

8,向Spec Repo提交podSpec

执行命令

#pod repo push Pod名称 当前目录下的.podSpec文件 
pod repo push BearPodsTest BearPodsTest.podspec 

这里写图片描述
仍然忽略我的unable。。。
看到这样的界面就表示验证并且提交成功了。

9,将本地podSpec提交至Pod Trunk

执行命令

#pod trunk push 当前目录下的.podSpec文件
pod trunk push BearPodsTest.podspec

第一次提交会提示让你输入gitHub的账号密码,按提示的输入就行。
这里写图片描述
这样的界面出来就表示成功了。

搜索来看下

pod search BearPodsTest

这里写图片描述

命令行能搜索到了,过一会就能在cocoaPods主页上搜索到你的pod了。
这里写图片描述

10,新建其他项目,导入自己创建的pod看能否正常使用

新建一个项目,步骤省略,和平时导入pod一样。最后看下截图。

这里写图片描述
现在可以在其他项目中引入自己的pod了。

11,完成

是不是很happy啊?哇咔咔!!!
如果在做的过程中遇到问题可以私聊我。QQ:648070256,能帮的一定帮。

最后来贴一下我在制作过程中要用到的各种文章和资料链接。

1,CocoaPods详解之—-制作篇(这篇文章非常重要。。。基本就是根据这个来配置的)
http://my.oschina.net/u/727843/blog/392784#OSC_h2_1
2,使用CocoaPods开发并打包静态库
http://www.cocoachina.com/ios/20141124/10297.html
3,学习使用CocoaPods后涨的姿势(一些关于cocoaPod的方法,配置环境的时候建议阅读,还有cocoaPod的一些技巧)
http://www.tuicool.com/articles/iYnuum6
4,使用Cocoapods创建私有podspec(文章最后还有删除Spec Repo的方法,推了很多测试的pod的可以看看)
http://www.cocoachina.com/ios/20150228/11206.html
5,CocoaPods之—-制作篇(还是制作的,基本相同,还是贴一下吧)
http://blog.csdn.net/bluefish89/article/details/48030941
6,Cocoapods 更新版本失败,提示:“Errno::EACCES”
http://www.jianshu.com/p/7ed7bd0e7e9a
7,CocoaPods详解之—-制作篇
http://blog.csdn.net/wzzvictory/article/details/20067595
8, CocoaPods 手把手五分钟教你制作自己的podspec文件(需要手动配置podSpec的可以看一下,不过一般用不到)
http://iiiyu.com/2013/12/19/learning-ios-notes-thirty-one/
9,cocoapods的创建和使用
http://jingyan.baidu.com/article/c33e3f488a7b24ea15cbb50c.html
10,如何编写一个CocoaPods的spec文件
http://ishalou.com/blog/2012/10/16/how-to-create-a-cocoapods-spec-file/
11,cocoapods的使用,解决pod search出来的仓库版本低于github仓库版本的方法
http://my.oschina.net/u/1432769/blog/384398

下面是官方文档
12,Using Pod Lib Create
https://guides.cocoapods.org/making/using-pod-lib-create
13,Making CocoaPods
https://guides.cocoapods.org/making/index.html
14,Creating Your First CocoaPod
http://code.tutsplus.com/tutorials/creating-your-first-cocoapod–cms-24332#disqus_thread

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值