cocoapods私有仓库创建+维护

来个栗子給大家全程重现我的操作步骤,我演示用的这个demo是已经提交通过的,请大家不要在以该名字命名喽,我的demo私有仓库叫做ShareUtils,托管到了git.oschina上,此处以这个ShareUtils为例说明:

cocoaPods类库管理工具的使用见上一篇文章,这里就不做介绍了,也可以百度,万能的度娘无所不知。)

一、使用oschina托管项目

1.创建新项目ShareUtils(私有项目)

1.0注册自己的账号登录之后,选择项目栏,再选择“+新建项目”

<缺图>

1.1填写项目信息

<缺图>

1.2初始项目目录如下

新建项目的目录介绍:

a. .gitignore:文件里面记录了若干中文件类型,凡是该文件包含的文件类型,git都不会将其纳入到版本管理中。是否选择看个人需要;

b. LICENSE:正规的仓库都应该有一个license文件,Pods依赖库对这个文件的要求更严,是必须要有的。因此最好在这里让oschina创建一个,也可以自己后续再创建。此处使用的license类型是Apache License, Version 2.0;

c. README.md:说明文档;

2. clone仓库到本地

a.获取远程地址:可以选择https或ssh两种形式的链接

b.进入本地项目路径,clone仓库到本地;

$cd /Users/LYPC/Documents/PodsDemo

$git clonehttps://git.oschina.net/liuli/ShareUtils.git

操作完成后,oschina上对应的文件都会拷贝到本地,目录结构为:

<缺图>

仓库中的.gitignore文件是以.开头的隐藏文件,因此这里只能看到两个,后续我们的所有文件增、删、改都在这个目录下进行。

三.使用cocoapods管理私有库

整体先说明一下创建一个私有的podspec包括如下那么几个步骤:

1创建并设置一个私有的Spec Repo。

2创建Pod的所需要的项目工程文件,并且有可访问的项目版本控制地址。

3创建Pod所对应的podspec文件。

4本地测试配置好的podspec文件是否可用。

5向私有的Spec Repo中提交podspec。

6在个人项目中的Podfile中增加刚刚制作的好的Pod并使用。

7更新维护podspec。

注意:以下描述的文件都要放在步骤二.2.b中clone到本地的git仓库的根目录下面!

1.创建添加文件

1.0在本地仓库目录里面添加ShareUtils库的文件目录内容:

创建好之后的目录结构如图:

<缺图>

1.1提交本地仓库中增加的内容

a.提交前保证更新到最新版:$ gitpull

b.添加到仓库管理并提交修改:$ git

add -A && git commit -m "提交类文件及podspec文件"

c.将本地修改的内容提交到远程仓库:$ gitpush origin master

d.确保你所push的代码已经打上"version

tag",也就是给源代码打上版本号标签:

$git tag '1.0.0'  -m "0.0.5"

$git push --tags    #推送tag到远端仓库

2.如何创建xxx.podspec文件

创建命令:pod spec create文件名字

2.0podspec文件内容示例及介绍:

2.0.1文件内容示例修改xxx. Podspec文件内容指导

该文件是ruby文件

以ShareUtils.podspec为例,分几个模块介绍修改描述文件:

a.关键字段介绍(不全的地方可以百度查询):

s.name:导入pod后的目录名;

s.version:库的当前版本号,每次有新的更改要修改此版本号;

s.summary:描述介绍;

s.homepage:osChina上面此库的地址(浏览器地址栏复制);

s.license:开源许可证;

s.author:开发人员;

s.ios.deployment_target:配置的target;

s.source:来源的具体路径,是http链接还是本地路径,此处是osChina上面此库的远程地址;

s.xcconfig:Xcode项目配置;

s.subspec 'CTCategory' do |cTCategory|:库里面的目录分支,给'CTCategory'文件起一个别名cTCategory;

requires_arc:是否需要arc

source_files:指定该目录下包含哪些文件

其他可选参数还包括:

dependency:指定依赖,如果依赖的库不存在或者依赖库的版本不符合要求将会报错

libraries:指定导入的库,比如sqlite3

frameworks:指定导入的framework

weak_frameworks:弱链接,比如说一个项目同时兼容iOS6和iOS7,但某一个framework只在iOS7上有,这时候如果用强链接,那么在iOS7上运行就会crash,使用weak_frameworks可以避免这种情况。

b.CTCustomUtils目录:

c.CTThirdPartys目录:

d.LFCGzipUtillity文件目录:

e.Alipay文件目录:

d.WxPay目录:

e.整个库需要的依赖包

f.podSpec文件编写注意事项:

例如写这些路径的文件的时候,都以相对于spec文件所在的同一目录下的路径,

例子:

我的整个框架文件结构:

那我写的路径的时候就这么写:不用写第一级主目录ShareUtils!!!!!

s.source_files ='ShareUtilsFile/*'

s.public_header_files ='ShareUtilsFile/*.h'

s.resource ='Resources/Resources.bundle'

2.1创建自己的podspec文件可以有两个途径:

a.copy上面的podspec文件,或者去github上看有名的第三方里面的podspec文件拷贝,然后修改对应的参数,推荐使用这种方式。

b.cd进入本地仓库根目录,执行创建命令:$ pod spec create ShareUtils

命令成功之后图:

创建好podspec文件之后的目录图:

2.3验证本地配置好的podspec文件是否可用

进入本地你的podspec文件路径下,命令:

$ pod lib lint

有些警告是可以忽略的,由于我们的podspec文件里面用到了一些包framework,所以使用命令验证:

$ podlib lint --verbose --no-clean --allow-warnings --use-libraries;

这个验证过程根据依赖的库多少耗时有差异,等待验证合法之后终端显示如下,如果验证失败会提示具体的信息,可按照提示修改你的podspec内容保证没有错误:

验证通过之后提交合法的spec文件到远程仓库:

a.提交前保证更新到最新版:$ gitpull

b.添加到仓库管理并提交修改:$ git

add -A && git commit -m "提交类文件及podspec文件"

c.将本地修改的内容提交到远程仓库:$ gitpush origin master

2.4Spec Repo介绍

Spec Repo是所有的Pods的一个索引,就是一个容器,所有公开的Pods都在这个里面,它实际是一个Git仓库remote端在GitHub上,但是当你使用了Cocoapods后它会被clone到本地的~/.cocoapods/repos目录下,可以进入到这个目录看到master文件夹就是这个官方的Spec Repo了,目录结构如下图:

我们现在要创建自己私有的库,因此也需要创建一个类似于master的私有Spec Repo,这样我们才可以在项目中通过pods工具关联到自己的私有类库。

2.5创建私有Spec Repo

命令:$ pod repo add ShareUtils  https://coding.net/ct1516/ShareUtils.git

命令执行成功之后,进入到你的电脑资源库:~/.cocoapods/repos路径下,可以看到如下目录文件:

至此创建私有Spec Repo完成,使用pod search命令就可以查到我们自己的库了:$ pod searchShareUtils

2.6向私有Spec Repo提交podspec

提交命令:

$ pod repopush ShareUtils ShareUtils.podspec  --use-libraries --allow-warnings

提交成功之后终端显示:

补充:

a.向私有Spec Repo提交podspec报如下错误:

解决方法:

先保证本地已经add了一份私有Spec

Repo源,执行一遍一下add命令:

$ pod repo add ShareUtils https://coding.net/ct1516/ShareUtils.git

然后在执行提交命令。

2.7使用方法和删除本地源

2.7.1直接从本地源查找下载使用

a.在个人项目中的Podfile中增加刚刚制作的好的Pod并使用,可以通过修改版本号选择使用哪一版本的库,注意所选的版本号必须再源里面有,进入~/.cocoapods/repos查看,下图是提交过三个版本的ShareUtils框架:

个人项目配置好cocoapods支持之后目录结构:

私有cocoapods修改的podfile文件内容为:(target修改为自己的项目名字)

source 'https://git.oschina.net/ct5621/ShareUtils.git'

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '8.0'

target :DemoAPP do

pod 'ShareUtils', '2.1.0'

end

使用pod下载关联库:

进入项目目录,使用命令:

$ pod install

执行成功之后终端截图:

b.如果有其他合作人员共同使用这个私有Spec

Repo的话在他有对应Git仓库的权限的前提下执行相同的命令添加这个Spec Repo即可:

$ pod repo add ShareUtils https://coding.net/ct1516/ShareUtils.git

c.删除一个私有Spec Repo,本机上的项目便不可以再通过pod添加此库

$pod repo remove ShareUtils

d.再把它给加回来

$ pod repo add ShareUtils https://git.oschina.net/ct5621/ShareUtils.git

2.7.2从远程仓库查找下载使用

a.跟2.7.1里面的操作方式一致,仅修改podfile文件写法,从远程仓库里面下载:

podfile里面的ShareUtils git地址写远程仓库的连接(target改为自己的项目名字)!

b.cd到项目路径,执行$ podinstall:

因为此库为私有库,供别人使用的时候pod install之后会提示输入账号密码,如图,输入有权限的用户名密码即可正常使用:

3.更新维护podspec

3.0clone到本地一份需要改的私有库;

3.1根据需求修改库文件的内容(保证代码无误);

3.2修改podspec文件内容,并修改最新版本号码;

3.3校验podspec文件是否合法:

$ pod lib lint --verbose --no-clean --allow-warnings --use-libraries;

3.4提交修改内容,podspec文件,并打上tag版本号;

3.5向Spec Repo中提交podspec文件;

$ pod repopush ShareUtils ShareUtils.podspec  --use-libraries --allow-warnings

3.6更新最新的库:

$ pod install

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

推荐阅读更多精彩内容