【iOS工程优化】远程pod仓库

思路:
1.下载一个模板项目
2.把这个模板项目上传到git上
3.通过pod来获取这个git上的项目

操作:

一.创建模板

1.有自己的git账号和仓库

2.已经安装好pod

3.确定好组件的名称(避免名字过于大众)

4.打开终端,cd到桌面,输入下面的命令去创建模板
pod lib create 组件名字

5.会问你几个问题,一些问题和答案如下

would you like to include a demo application with your library?

yes

Which testing frameworks will you use?

none

would you like to do view base testing?

no

what is your class prefix?

前缀名称

其他问题看自己的需求

整个过程,终端会显示这些


这里我的组件名字叫 TeSt
前缀是 TeSt

这时候会自动打开一个工程

8.打开工程所在的文件夹(标红的是主要会用到的文件/文件夹)


二.把这个模板项目上传到git上

由于本人是git苦手,不大会用命令行,所以用的是界面化操作的sourceTree。

1.在git上创建一个工程,工程名同组件名(我是直接在网页上操作的,命令行真的是弄不来),至于是是不是公有随意。

2.clone到本地(这时候,这个clone到本地的项目应该就是一个空文件夹)

3.把之前模板里面的东西都放到到这个clone的工程里面(就是红框里面的东西),然后那个模板工程现在应该就是一个空文件夹了,可以删掉了


4.把整个项目同步到git远程服务器上,现在服务器上这个工程里面的内容就是当初咱们下载的模板内容了。

5.更改podspec
在项目中能找到一个 podspec后缀的文件,用xcode打开它。然后直接把下面的粘贴上去

Pod::Spec.new do |s|
#插件名称
 [s.name](http://s.name)             = ‘*******需要更改********'
 #插件版本号,也就是git中的tag
 s.version          = '0.1.0'
#插件简述
s.summary          = '*******建议更改********'
#插件具体描述
 s.description      = <<-DESC
*******建议更改********
                       DESC
#插件首页
s.homepage         = '*******需要更改********'
#插件截屏地址
# s.screenshots     = '[www.example.com/screenshots_1](http://www.example.com/screenshots_1)', '[www.example.com/screenshots_2](http://www.example.com/screenshots_2)'
#插件证书,一般不用更改
s.license          = { :type => 'MIT', :file => 'LICENSE' }
#插件作者名/邮箱地址
s.author           = { 'mj230816' => ['songqian@readchina.com.cn]> (mailto:'songqian@readchina.com.cn)' }
#插件资源地址
s.source           = { :git => '*******需要更改********', :tag => s.version.to_s }
#插件iOS开发版本
s.ios.deployment_target = '8.0'
#插件文件地址
s.source_files = 'TeSt/Classes/**/*'
#插件资源地址
# s.resource_bundles = {
#   'TeSt' => ['TeSt/Assets/*.png']
# }
#插件公共头文件地址
# s.public_header_files = 'Pod/Classes/**/*.h'
#插件依赖的framework
# s.frameworks = 'UIKit', 'MapKit'
#插件以来的其他三方库
# s.dependency 'AFNetworking', '~> 2.3'
end

这里需要修改的有以下几个:
1.s.homepage 更改为
s.homepage = '插件本身的git地址(http/https形式的)'
2.s.name 就是插件/工程名字
3.s.source 更改为:
s.source = { :git => ‘插件本身的git地址(http/https形式的)', :tag => s.version.to_s }
4.如果依赖了一些苹果的framework,则把下面的放开(把#去掉),并且添加依赖的framework名称
s.frameworks = 'UIKit', ‘MapKit'
5.如果依赖了其他的三方库则同三处理
s.dependency 'AFNetworking', '~> 2.3’

剩下的我已经表明注释了,大家可以按需更改。

6.更改完之后在再推送到git服务器上一次。

7.添加tags
这时候如果你用网页进入git仓库中的项目,你会发现界面不一样了。
以前是这样


现在是这样


然后把这个tag更改为s.version相同的数值

7.测试
打开命令行
cd到插件工程目录下



输入pod spec lint

可能会出现如下错误:
1)
ERROR | [iOS] unknown: Encountered an unknown error
说明: tags 和 s.version 数值不同
解决方法:修改远程仓库的 tags

2)
WARN | summary: The summary is not meaningful.
说明:s.summary 应该修改一些内容,让其描述更加的有意义
解决方法:打开podspec,改一个更加有意义的描述

更改完了之后,别忘了和远程仓库同步。

如果出现如截图所示,就表示基本成功了。


三.通过pod来获取这个git上的项目

这里我只说明咱们的podfile要怎么写。

pod '插件名称', :git => ‘和s.homepage的数值相同’

如果到这里成功了那么就差最后一步。(基本应该没啥问题)

四.把组件的实现文件放入

咱们只要
1.把咱们想要放的东西全都放到之前克隆的项目的Classes文件夹,记住把ReplaceMe.m删除哦



2.然后上传到服务器
3.pod update
就OK了

获取插件所在bundle

NSBundle *bundle = [NSBundle bundleForClass:[self class]];

获取插件中的图片

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

推荐阅读更多精彩内容