Podfile和podspec一些理解
1、
pod ‘objection‘ ‘version‘;
例如,
pod ’MCDateExtensions‘,不指定版本,在pod update时会获取最新的版本;
pod ‘MCDateExtensions‘, ‘~>1.0.0‘,获取的版本信息是[1.0.0, 1.1.0). ~>是参照ruby的语法的,~>x.y.z, 的意思是版本号x,y 固定,但可以大于等于z。
通常版本号的命名有其惯例:
x major 版本号升级表示有API 发生不向后的兼容性变动,
y minor 版本号升级表示有功能新增,
z tiny 版本号升级表示bugs 修正。
因此’~> x.y.z‘ 可以让我們保有升级弹性,又不致于升級太多让程序发生不兼容错误;
2、
从本地pod files,
pod 'AFNetworking', :path => '~/Documents/AFNetworking'
此目录下一定要有.podspec文档
3、
从git server端pod files
To use the master branch of the repo:
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :branch => ‘develop‘
Or specify a commit:
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :commit => '082f8319af'
4、
pod 'ShareKit/Facebook'
可以使用subspec支持子模块的导入。
podspec:
s.subspec 'NetWorkEngine' do |networkEngine| networkEngine.source_files = 'Pod/Classes/NetworkEngine/**/*' networkEngine.public_header_files = 'Pod/Classes/NetworkEngine/**/*.h' networkEngine.dependency 'AFNetworking', '~> 2.3' ends.subspec 'DataModel' do |dataModel| dataModel.source_files = 'Pod/Classes/DataModel/**/*' dataModel.public_header_files = 'Pod/Classes/DataModel/**/*.h' endplatform :ios, '7.0'pod 'PodTestLibrary/NetWorkEngine', '1.0.0' #使用某一个部分pod 'PodTestLibrary', '1.0.0' #使用整个库5、
使用本地代码,用pod管理本地代码会放置在pods下的Development Pods目录下面,使用非本地都在pods下的Pods目录下
通过:path可以指定本地代码,不过需要确保目录包含podspec文件,根据podspec里面的配置:
s.source_files = 'Pod/Classes/**/*' #代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则用逗号分开,如果需要在项目中分组显示,这里也要做相应的设置s.resource_bundles = { 'PodTestLibrary' => ['Pod/Assets/*.png'] } 这两个设置源码的位置,podspec和源码都要在本地存在。
platform :ios, '7.0'pod 'PodTestLibrary', :path => '~/code/Cocoapods/podTest/PodTestLibrary' #指定路径pod 'PodTestLibrary', :podspec => '~/code/Cocoapods/podTest/PodTestLibrary/PodTestLibrary.podspec' #指定podspec文件
浙公网安备 33010602011771号