使用CocoaPods开发并打包静态库

不知道大家有没有遇到这种情况,当给一个项目中导入一个静态库的时候,会遇到静态库重复第三方库的错误,这时cocopods的这项技术就派上用场了。该技术通过对引用的三方库进行重命名很好的解决了类库命名冲突的问题,比如项目中可以包含两个AFNetworking框架,项目中本身包含一个,静态库中包含一个,两个可以同时存在。在开始之前,需要安装通过pod lib命令完成初始项目的搭建,和安装cocoapods-packager插件。

注:根据上下文将代码中XXX修改为自己相应的内容

一,通过pod lib命令完成初始项目的搭建

- 执行命令

# pod lib create XXXLib 

在此期间需要确认下面4个问题:

Would you like to provide a demo application with your library? [ Yes / No ]
yes
Which testing frameworks will you use? [ Specta / Kiwi / None ]
Kiwi
Would you like to do view based testing? [ Yes / No ]
No
What is your class prefix?
XXX

二,安装cocoapods-packager插件

- 执行命令

sudo gem install cocoapods-packager


配置podspec文件

官方podspec文件语法详细说明

下面是我项目中的podspec文件,请参考配置

Pod::Spec.new do |s|
s.name             = "XXXLIB"
s.version          = "0.4.0.8"
s.summary          = "生成静态库的XXXLIB."

s.description      = <<-DESC
成静态库的XXXLIB
DESC

s.homepage         = "https://github.com/username/XXXLIB"

s.license          = 'MIT'
s.author           = { "username" => "XXX@gmail.com" }
# s.source           = { :git => "/Users/XXX用户名/Desktop/XXXLIB", :tag => '0.4.0.8'}
s.source           = { :git => "/Users/XXX用户名/Desktop/XXXLIB", :tag => s.version.to_s}

s.platform         = :ios, '7.0'
s.requires_arc     = true

s.source_files     = ['Pod/Classes/**/*.{h,m,plist,c}']

s.resource_bundles = {
'XXXRES' => ['Pod/Assets/*.{png,jpg}']
}

s.public_header_files = ['Pod/Classes/XXX/*.h']

s.frameworks = ['UIKit', 'MapKit','MobileCoreServices','MobileCoreServices','SystemConfiguration','CFNetwork','AVFoundation','CoreData','ImageIO','Twitter']
s.libraries  = 'z.1'
s.dependency 'AFNetworking', '~> 2.3'
s.dependency 'FMDB','~> 2.2'
s.dependency 'MJExtension'
s.dependency 'SDWebImage'
s.dependency 'CocoaAsyncSocket'

end

四,打包的步骤


1,验证

开发完成静态类库之后,需要运行pod lib lint验证一下类库是否符合pod的要求(cd到podspec文件所在目录下),如果确认无误可略过。

# pod lib lint XXXLIB.podspec -only-errors --verbose --allow-warnings 


2,更新pod(cd到Podfile文件所在目录下)

# pod update --verbose --no-repo-update 或者pod install


3,提交,更新版本号(cd到podspec文件所在目录下)

# git add .

# git commit -a -m'v请换成版本号'

# git tag -a 版本号 -m'v版本号'


4,将podspec文件中s.version的版本号替换为所需要的版本号(第三步git tag的版本)

修改podspec文件中s.version  = "修改为自己需要打包的版本"


5,打包(cd到podspec所在文件目录下)

# pod package XXXLIB.podspec --library --force     打包成.a文件。--force是指强制覆盖

# pod package XXXLIB.podspec --force               打包成.framework文件



五,相关的参考阅读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值