使用CocoaPods开发并打包静态库(framework&a)
2017-03-01 本文已影响0人
kaikai5545
- 使用pod命令创建library工程(以GTAsiHttpRequest为例)
pod lib create GTAsiHttpRequest
-
会问一些问题,输入后自动创建cocoapod工程,并且自动打开其中的Example工程
-
创建完的整个目录结构如下
- 其中以下几个文件需要注意一下
LICENSE defaulting to the MIT License.
GTAsiHttpRequest.podspec the Podspec for your Library.
README.md a default README in markdown.
RemoveMe.swift/m 把这些文件替换成你自己的源码
GTAsiHttpRequest目录 放置你library工程源码的地方
Example目录 自动生成的Demo实例和测试例子 - 编辑GTAsiHttpRequest.podspec、License、readme三个文件, 其中podspec文件的详细说明可以看Podspec Syntax Reference
Pod::Spec.new do |s|
s.name = 'GTAsiHttpRequest'
s.version = '0.0.2'
s.summary = 'just build the AsiHttpRequest to framework'
s.description = <<-DESC
1.static framework of AsiHttpRequest.
2.don't change any src.
3.don't include ASIWebPageRequest and CloudFiles function.
4.just support Objective-C.
DESC
s.homepage = 'https://github.com/kaikai5545/GTAsiHttpRequest'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'wrk' => 'kaikai5545@163.com' }
s.source = { :git => 'https://github.com/kaikai5545/GTAsiHttpRequest.git', :tag => s.version.to_s }
s.ios.deployment_target = '7.0'
s.source_files = 'GTAsiHttpRequest/Classes/**/*'
s.public_header_files = 'GTAsiHttpRequest/Classes/*.h'
s.frameworks = "CFNetwork", "SystemConfiguration", "MobileCoreServices", "CoreGraphics"
s.library = "z.1.2.5"
s.requires_arc = false
end
-
将ASIHTTPRequest的代码拷贝到GTAsiHttpRequest/Classes目录下(根据自己libarary需求)
-
进入Example目录执行pod install,然后可以编写一下测试demo和用例
- 在github上创建GTAsiHttpRequest工程,路径要和podspce中的s.source对应,如
s.source = { :git => 'https://github.com/kaikai5545/GTAsiHttpRequest.git', :tag => s.version.to_s }
- 初始化git工程,创建tag,上传到github,tag版本号要和s.version对应
创建tag
同步到服务器
对应s.source -
验证类库,pod lib lint或pod spec lint(区别是后者会联网检测)
- 打包类库
sudo gem install cocoapods-packager
pod package GTAsiHttpRequest.podspec --force
--force标示强制覆盖
通过以上命令就可以打包出framework,如果需要打包成.a静态库,需要加 --library , 打包好的目录结构为
需要特别强调的是,该插件通过对引用的三方库进行重命名很好的解决了类库命名冲突的问题