^_^嗨一下
文章目录
  1. 背景
  2. podspec 是什么?
  3. 创建 Spec Repo
  4. 鸡汤来一发

背景

目前而言,CocoaPods因该是我们项目第三方依赖库管理的不二选择了。什么?你还没用过CocoaPods!信不信打哭你!认真脸,可以这么说,我们项目所需要用到的主流第三方库在CocoaPods上都能找到,同时我们也可以用它来方便的管理和更新我们项目引入的第三方库。这些功能是不是已经很棒了,对于单人开发来说,其实已经够了。毕竟万事都有个然后嘛,是不。团队开发的时候,你就会发现对于项目开发而言如果没有一个很好的管理方法,开发者的项目代码就显得冗余了些,其实很多的时候,我们都是专注于自己的那块业务开发,对于团队的其它代码并不关心,加之近年组件化编程的思想也越来越流行。podspec貌似是一个不错的选择方案。艾艾~不好意思废话说得有点多。

podspec 是什么?

这样说吧,其实它就是一个Git仓库,专门存放你组件代码的地方,和你平时把代码提交到自己的git或者svn没什么两样,只不过它的remote端在GitHub、CODING、Bitbucket…上而已

创建 Spec Repo

第一步 我们需要创建一个 Git仓库
前几天去CODING上注册了个账户,所以就用CODING来玩玩。当然GitHub、CODING、Bitbucket上步骤都是相似的所以大家不要惊慌。

1
2
# pod repo add [Private Repo Name] [CODING HTTPS clone URL]
$ pod repo add LBSpceRepoTest git@git.coding.net:Ran_/LBSpceRepoTest.git

如果没什么意外的话 cd到~/.cocoapods/repos看下,现在应该多了个LBSpceRepoTest目录了。OK!第一步创建私有Spec Repo完成

第二步 我们需要创建一个.podspec文件
自己创建一个.podspec文件的方法我在这里不想多说了,我们直接简单粗暴点,用最简单的方法来创建,避免出现遗忘或者其它错误你们会骂我。好废话少说了,接下来cd到你想创建组件项目的目录,输入以下命令

1
$ pod lib create LBSpceRepoTest

然后会出现几个你需要填的东西,可以参照下我的步骤,不要怕,开心脸

如图
大概意思就是,选择什么语言,是否需要创建一个demo工程,选哪个测试框架,基于视图的测试你想做什么,然后再来个屌爆了的自己的专属前缀。又搞定一步,你现在可以看到刚刚那个目录下是酱紫的
如图
打开项目目录是酱紫的,现在该有的文件都有了,开心脸
如图

第三步 向Pods文件夹中添加库文件和资源
一般来说我们的组件资源文件都是放在Pods/…/Classes 文件夹当中,如图所示,我随意添加了个DDDViewController{.m .h}文件
如图
然后cd到Example文件夹 执行

1
$ pod update

然后再打开就可以看到我们刚刚添加的文件了,开心脸

第四步 提交组件代码

1
2
3
4
5
$ git add .
$ git commit -s -m "Initial Commit of Library" #初始化提交
$ git remote add origin git@git.coding.net:Ran_/LBSpceRepoTest.git #添加远端仓库
$ git tag -m "first release" 0.1.0 #因为podspec文件中获取Git版本控制的项目还需要tag号,so 打上一个tag
$ git push --tags #推送tag到远端仓库

第五步 .podspec配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#
# Be sure to run `pod lib lint PodLibrary.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 = 'LBSpceRepoTest'
s.version = '0.1.0'
#项目总结
s.summary = 'My LBSpceRepoTest is a repo for LBSpceRepoTest'
# 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
My Private UIButton+Positioning assembly
* MarkDown format
* It is a nice world!
TODO: Add long description of the pod here.
DESC
#项目的主页,要求可以访问
s.homepage = 'https://git.coding.net'
#项目的证书类型,一开始在git 就要配置好
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { '姓名' => '邮箱' } #记得自己改为自己的喔
#最重要的一部分,项目的源地址,目前只支持Http\Https, 不支持SSH,小编曾经犯了一个低级错误,将这个source指向了以前建立的一个Spec.git,然后一直报"The `PodLibrary.podspec` specification does not validate"的错误,小编又不会调试,所以很丢人的折腾了两个小时。
s.source = { :git => 'https://git.coding.net/Ran_/LBSpceRepoTest.git', :tag => s.version.to_s }
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
s.ios.deployment_target = '8.0'
#表示项目的源文件在Pods/Classes文件夹下
s.source_files = 'LBSpceRepoTest/Classes/**/*'
# s.resource_bundles = {
# 'PodLibrary' => ['LBSpceRepoTest/Assets/*.png']
# }
#项目的依赖库等等
# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit'
# s.dependency 'AFNetworking', '~> 2.3'
end

第六步 本地验证

1
$ pod lib lint

如图所示,说明就是没问题的

如图

第七步 .podspec验证

1
$ pod spec lint LBSpceRepoTest.podspec

如图所示,说明就是没问题的

如图

第八步 注册Trunk
小编已经猜到你没有Trunk账号了,么事,注册很简单

1
2
3
# 加上--verbose可以输出详细debug信息,方便出错时查看。
# pod trunk register 8888888@163.com "bingoran" --verbose
$ pod trunk register 你的邮箱 "你的昵称" --verbose

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

第九步 发布

1
2
# --use-libraries --allow-warnings
$ pod trunk push LBSpceRepoTest.podspec

如图所示,说明发布成功了,接下来就是等待审核了,估计要个一两天吧,该做的都做了,看运气啰,开心脸
随便提醒你们一下,我这个名字已经提交过了,自己换个名字从新走一遍流程吧,什么,不愿意试,打哭你信不信!

如图

第十步 验证
当然这一步是建立在审核通过了才行的,没通过的话是这个样子的
如图

1
$ pod search LBSpceRepoTest
如图所示,说明可以用了,自己在demo项目测试下吧

如图

鸡汤来一发

要么忙着活,要么忙着死 —— 《肖生克的救赎》

文章目录
  1. 背景
  2. podspec 是什么?
  3. 创建 Spec Repo
  4. 鸡汤来一发