iOS使用pod创建本地库

如果想让项目可以根据自己的需求进行源代码切换。或者使得项目达到低耦合的组计划,首页制作本地pod库是第一步,我也曾遇到这个问题,网上搜索之后发现自己的第一步找的很正确,所以为了自己以后方便找,所以特意在自己描述一下这个过程。

我用这种方式是本身我之前的库内容比较多,想要实现组件化管理,只能用下沉库的方式,如果是一个新项目,直接 pod lib create 方式创建。

参考的文章在这里:iOS使用pod创建本地库

创建pod本地库

1.我们需要用pod来管理我们的项目,如果之前没有用pod来管理,以下方法可以帮助你切换到pod管理项目。
//首先cd到自己的工程目录下面

cd Desktop/TTProject/

//pod init 初始化可以自动创建一个podfile,如果本身即是pod的管理那就不需要了

pod init

2.直接在工程目录下面创建podspec文件(podspec文件必须和你的工程名字一致)
pod spec create TTProject

创建成功之后,打开编辑podspec文件,可以用文本编辑器打开,后期生成workspace就可以直接在xcode打开编辑,一些注释信息可以不要,剩下如下信息:

Pod::Spec.new do |spec|


  spec.name         = "TTProject"
  spec.version      = "0.0.1"
  spec.summary      = "A short description of TTProject."

  spec.description  = "组件化"

  spec.homepage     = "http://aaa/TTProject"
 
  spec.license      = "MIT"
  spec.author             = { "huweihong" => "huweihong@miao.cn" }
      spec.source       = { :git => "http://aaa/TTProject.git", :tag => "#{spec.version}" }
 
end

如果想要接收参数来控制代码可以向上面的代码内加入部分代码,代码如下:

#这个t可以是Jenkins上shell传出来的参数

$lib = ENV['t']
if $lib == "1"
    puts "this is choice 1"
    puts $lib
    spec.source_files  = "TTProject/Classes/COO/*.h"

elsif $lib == "2"
  puts "this is choice 2"
  
  spec.source_files  = "TTProject/Classes/COO/*.m"
elsif $lib == "3"
  puts "this is choice 3"
  spec.source_files  = "TTProject/Classes/COO/*"
else
  puts "this is default choice"
 spec.source_files  = "TTProject/Classes/*"

end
具体参数的解释:
1、spec.summary 赋值内容随便写
2.spec.description 赋值内容随便写
3.去除这个文件里所有跟EXAMPLE相关的内容,比如s.homepage。注意,这里内容都不能为空,不然会出警告、
4.新建LICENSE文件,如图所示

新建LICENSE文件,内容随你,我这里选了MIT(如果是从git上拉去下来的项目可以选择带有LICENSE文件就不用创建了)

The MIT License (MIT)Copyright ©2018Permissionishereby granted, free of charge, to any person obtaining a copy of this softwareandassociated documentation files (the “Software”), to dealinthe Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,and/orsell copies of the Software,andto permit persons to whom the Softwareisfurnished to do so, subject to the following conditions:The above copyright noticeandthis permission notice shall be includedinall copiesorsubstantial portions of the Software.THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

image
5.配置LICENSE :spec.license ="LICENSE"
6.修改路径:source改为这样,tag是你的版本号,你随意。
7.创建本地文件,可以在自己的工程目录下和工程目录一样名字的文件夹建立一个Classes文件夹

我们可以看到

spec.source_files = "TTProject/Classes/COO/*.h"

这前面对应的文件夹都是Classes,所我们建立Classes文件夹,如图所示。这个文件夹不一定得叫Classes,如果叫别的你就得去改source_files和exclude_files的配置。


image
8.可以在Classes中放入自己建立的文件我创建了
image
9.填写Podfile:你看这里的路径是你自己填写的,所以你这个文件夹用别的名字也行。
pod 'TTProject', :path =>'./'

验证本地库

1.进行pod验证
pod lib lint

如果出现以下错误需要把错误问题解决了。

2.出现警告可以忽略
pod lib lint --allow-warnings

提示: TTProject passed validation. 就是本地通过验证了

拉取本地库

pod install --verbose --no-repo-update

这里只拉去Coo文件夹下的两个文件,所以只显示两个文件


image

切换文件路径spec.source_files

#切换spec.source_files

 spec.source_files  = "TTProject/Classes/*"

然后 pod update --no-repo-update


image

接下来还会有文章说明在podspec中加入判断配合终端的使用来切换本地的文件。

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

推荐阅读更多精彩内容