前言
这里主要介绍podspec文件的编辑方法,涉及到多种情况,文件资源的引用、.a文件的引用等,下一篇文章我会介绍子组件的写法,那是需要你已经掌握里这里的知识后采取研究的。
一、基本的配置
Pod::Spec.new do |s|
s.name = 'Module' #(1)组件的名称
s.version = '1.0.9' #(2)组件的版本
s.summary = ModuleSummary' #(3)组件的简述
s.homepage = 'http://192.168.0.1/Module'
s.license = { :type => 'MIT', :file => 'LICENSE' } #(4)用户协议
s.author = { 'you' => 'your_email' } #(5)邮箱
s.source = { :git => 'http://192.168.0.1/Module.git', :tag => s.version.to_s } #(6)git的地址
s.ios.deployment_target = '8.0' #(7)支持的平台及版本
s.source_files = 'Module/Classes/**/*' #(8)代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则用逗号分开,如果需要在项目中分组显示,这里也要做相应的设置
#(9)资源文件的路径,图片、音频等
s.resource_bundles = {
'BunldeName' => ['Module/Assets/*.png','Module/Assets/*']
}
#(10)这个组件依赖的其他组件或者第三方库
s.dependency 'Masonry'
s.dependency 'SDWebImage'
end
- (1)组件名称:这个就是你组件的名字 没啥说的
- (2)组件的版本: 这个版本号,当验证podspec 的时候远端一定要有;我们可以根据不同的版本号拉到不同的代码
- (3)组件的简述 :没啥说的
- (4)用户协议:没啥说的
- (5)邮箱:邮箱,没啥说的
- (6)git的地址: 这个东西很重要,直接影响到当别人用你的组件的时候 拉的是哪个仓库的代码
- (7)支持的平台及版本:没啥说的
- (8)代码源文件地址:这个跟(6)一样重要,作用耶差不多,表示别人用你的组件,拉的是你组件里的哪一部分代码
- (9)资源文件的路径: 当你的组件里涉及到一些UI上的东西,需要引用一些图片的时候,需要把这个设置一下;
- (10)这个组件依赖的其他组件或者第三方库: 你的组件可能没有那么纯净,会依赖一些别人的组件,那你需要在这里说明,你的组件依赖里哪些东西,比如你写一个弹窗,可能依赖了Masonry,那么 你这里就必须要写s.dependency 'Masonry'
二、当你需要增加一个环境变量
这中情况一般很少见,我一般是在创建子组件的时候才使用。
作用:因为在子组件中,一定会用一些共用的代码,但是有一些小的细节不一样,这个时候我就会用 这个来区分,在build 的时候 放一个环境变量进去
f.pod_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'FIRST_MODULE=1'}
s.pod_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'SECOND_MODULE=1'}
f 和 s分别代表两个子组件,怎么才能这么写,下一篇文章再介绍
用的时候我们在代码中一般会判断这个变量存不存在,而不是判断它是不是 == 1,判断等于1 是不准确的
#ifdef FIRST_MODULE
//there is first module do everything you want
#endif
三、pod中引入.a或者.framework
#自己的framework 后面是路径
s.vendored_frameworks = ['Module/Vendors/*.framework']
#系统的framework
s.frameworks = ['UIKit', 'MapKit']
#自己的.a 后面是路径
s.vendored_library = 'Module/Classes/SDK/*.a'
#系统的.a
s.libraries = ['xml2.2','sqlite3.0']