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'
  end
s.subspec 'DataModel' do |dataModel|
      dataModel.source_files = 'Pod/Classes/DataModel/**/*'
      dataModel.public_header_files = 'Pod/Classes/DataModel/**/*.h'
  end
 
podfile:
platform :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文件

posted on 2017-04-08 11:53  鬼手渔翁  阅读(3417)  评论(0)    收藏  举报

导航