思路:
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];