iOS安装CocoaPods私有库详细过程 按此教程让你一遍就过 跳过各种坑!!!

*****************************注:之前网上参考各种文章,不是这里有问题就是那里报错,最后终于搞定,记录一下过程,让看到的少走点坑***************************


一.iOS组件化本地操作**非上传git版本**( 上传git版本看第二部分 第一部分必看)

新建工程SXShellTest(名字写你要创建的工程名字 这里我以SXShellTest为例讲解)作为壳工程  

首先打开命令行工具

1、添加Podfile文件 

    cd到你刚创建的工程目录下 以SXShellTest为例 打开终端 输入 cd 把目标文件夹拖进来

    回车后执行 pod init  这时候就生成了podfile文件

2、生成xcworkspace 执行 pod install  然后在此项目中创建一个文件夹 我这边以lib为列

3、在lib文件夹下创建组件工程 我这边以(WKWebTest--*是你自定义的一个工程名字,也就是你的其中一个组件或者业务模块*)为例  执行 pod lib create WKWebTest    执行后会出现填写信息页面 按下面内容填写

打开新建工程WKWebTest->WKWebTest->Classes,有个ReplaceMe的文件,意思就是要替换它,换成我们自己需要对外提供的类 这里我已经替换了 替换后删除ReplaceMe文件。

 想把刚才加入的类加到pods里面 需要 cd到lib/WKWebTest/Example/(一定是这个目录下)文件目录下,执行 pod install   这个时候在Development Pods文件下会多出这四个文件,这就是本地开发的pods文件
至此一个本地组件就创建好了 如何使用它呢 下面讲壳工程怎么使用组件

4、壳工程使用本地组件库(WKWebTest ),修改壳工程(SXShellTest)项目中的Podfile文件,增加 pod 'WKWebTest', :path => 'Lib/WKWebTest'

在壳工程(SXShellTest)的Podfile中 添加组件工程(WKWebTest)的路径

cd到壳工程SXShellTest目录下 执行pod install 

这样壳工程就pod到本地组件库的内容了,原理跟使用平时的第三方远程库一样。只不过这次使用的是本地的。本地的pod放在了Development Pods  文件夹里面,这个文件夹里的内容其实是可以修改的,修改后立刻生效,会比远程pod需要提交版本号,本地再pod对应的版本号方便得多。

二.iOS组件化创建私有库(上传git版本)**还是以上面创建的项目为列**

1、创建类似于CocoaPods的master ,所有的私有库组件都放在这个里面

这个是所有的组件都放在这个上面类似于master

2、在终端中创建一个本地私有库,在终端中输入: pod repo add 需要创建的库名字 这里我以xxxxxxs为列

pod repo add xxxxxxs 后在repos出现xxxxxxs文件夹 。不知道怎么查看的话 在文件夹选项中的前往文件夹 输入~/.cocoapods/repos

然后和 github上刚才创建的关联 pod repo add xxxxxxs https://github.com/你自己的账号/xxxxxxs.git (这个https是刚才创建的git地址)

至此一个包含所有组件库的git创建好了 

接下来是向这个git中添加组件 想要添加那必须要先创建一个组件

3、创建一个新的组件 --在git上创建一个new repository    写上将要用的组件名字 (这个组件以上面创建的本地组件为列)

2、***注:执行这步时候WKWebTest组件已经在本地创建好了(如何创建:参照第一部分 这里就不再重复写了)**** 

cd到组件工程WKWebTest目录下 执行下面操作

还是刚刚创建的那个本地组件库

第一次关联git

git init  初始化git

git add . 

git commit -m"init project"   提交初始化工程

git remote add origin https:你刚才创建的git地址   让这个工程和刚才在Github上创建的Repository关联

git push origin master -f    强制提交上去 

git tag 0.1.0       (版本号 第一次上传)以后每次修改上传都要迭代版本 (这个版本号就是类似第三方库中AFNetworking控件的版本号)

git push --tags

刷新github 这时候已经看到把代码都传到git上了 在releases里面就能看到版本号为0.1.0


3、这部比较关键 就是要把WKWebTest 组件的***索引文件(什么是索引文件:.podspec文件)***添加到之前创建的那个xxxxxxs(这个就是包含所有组件)

还是cd到组件工程WKWebTest目录下

pod repo push <本地索引库> <索引文件名> --allow-warnings 把git上的组件.podspec下载到本地索引库中

例:pod repo push xxxxxxs WKWebTest.podspec --allow-warnings

打开~/.cocoapods/repos 文件夹 就会看到xxxxxxs文件夹已经有WKWebTest组件库了 后面跟的就是组件库的各个版本

                                   ************************************ffffffs是我创建的第二个组件库 ************************************

添加方法和第一个一样 这里展示一下 xxxxxxs就是类似于master 里面有多个组件 每个组件有自己的版本

                                              打开github就会看到已经上传到git 上了 也就是本地和github上同时已经有了

已经上传成功

 如果再创建第二个组件的话 和创建第一个的方法一样 上图中 ffffffs就是第二个组件 所有的组件的(.podspec文件)都放在xxxxxxs中

4、壳工程怎么使用这些组件 还以第一步创建的 壳工程SXShellTest为例

      ·在壳工程的podfile文件中 添加source:组件在git上的地址

      ·然后把本地路径改成从索引库中获取的方式pod 'WKWebTest','0.8.0' --->(0.8.0 是这个组件的版本)

      ·版本号根据你自己的需要获取本地索引库中已经有的版本 类似于master里面的AFNetworking有各种不同的版本 用哪个写哪个

之前的是本地路径path=>'lib/WKWebTest' 现在修改成你需要的tag版本

 cd到壳工程SXShellTest目录下 执行pod install 这样组件就到壳工程了

三.iOS组件 某个组件更新 还以WKWebTest这个组件为例

打开工程WKWebTest->WKWebTest->Classes, 只要组件中classes 添加了文件 或者文件中的代码修改了 

 都需要 cd到lib/WKWebTest/Example/(一定是这个目录下)文件目录下,执行 pod install     

1、然后再cd 到WKWebTest 目录下 (因为是修改或者添加文件所以git时候不像第一次上传那样了)

      git add .

      git commit -m '注释'

      git push origin master -f

      git tag -a '新版本号' -m '注释' // 注意这里 只要是修改了需要重新打一个版本号

      git push --tags

      然后打开WKWebTest文件夹 修改s.version 这个版本就是刚才你(git tag -a)的新版本号 

修改s.version

最后:pod repo push xxxxxxs WKWebTest.podspec --allow-warnings (这时候就把修改过内容的版本 传到了xxxxxxs中)打开~/.cocoapods/repos 文件夹 就会看到xxxxxxs文件夹中的WKWebTest组件库里面的版本多了一个

每次修改都要打tag

2、壳工程中如何使用修改过的组件 ?

修改壳工程的podfile文件中的组件版本号

这里你用到哪个版本的组件 就写相应的版本号 比如刚才修改过的新版本 就写上相应的版本号

 cd到壳工程SXShellTest目录下 执行pod install 这样组件中修改的内容 就更新到了壳工程中了

四.总结

实施起来比较繁琐,步骤比较多也是容易出错的关键 其实想明白的话操作也挺容易

组件化固然不错 但是比较适合中大型项目 还是要根据自己的项目实施  

本文时间仓促,也参考了别人的文章(看的比较多链接也没留存,望见谅)可能有些地方叙述不到位和不合理或理解错误,望各位指正,共同进步!!!!!!!!!!!!!!!!!!!

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