最近公司开新项目,发现需求有相似之前可以共用一个自定义弹窗的组件。打开之前项目看到是直接两个文件放进去的,考虑后做成私有库是相对方便的,直接维护一份代码。两个项目依赖就可以了
1.创建私有库例子工程和配置文件
首先可以现在桌面上创建一个文件夹test
终端进入文件夹执行如下:
xuyifeng-pc:~ zmx$ cd /Users/zmx/Desktop/test
开始创建一个名字是TestAlertView的类库代码如下:
xuyifeng-pc:test zmx$ pod lib create TestAlertView
下面就是一步一步操作
pod lib.png
What language do you want to use? 用什么语言我是oc的
Would you like to include a demo application with your library? 是否需要包含一个demo工程
剩下其他的可以根据自己情况选择
2.修改配置文件 TestAlertView.podsSpec
Pod::Spec.new do |s|
s.name = 'TestAlertView' #名称
s.version = '0.1.0' #版本号
s.summary = 'A short description of TestAlertView.' #简短介绍
s.description = <<-DESC
s.homepage = 'https://github.com/zhangxiaoming0/TestAlertView'
s.license = { :type => 'MIT', :file => 'LICENSE' } #开源协议
s.author = { 'zhangxiaoming0' => ‘这是个邮箱’ } #作者信息
s.source = { :git => 'https://github.com/zhangxiaoming0/TestAlertView.git', :tag => s.version.to_s } #项目地址
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
s.ios.deployment_target = '8.0' #支持的平台及版本
s.source_files = 'TestAlertView/Classes/**/*' #代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则用逗号分开,如果需要在项目中分组显示,这里也要做相应的设置
s.dependency 'BFKit' #依赖第三方库
s.dependency 'Masonry', '1.0.2'
s.dependency 'KVOController'
# s.resource_bundles = { #资源文件地址 本项目不需要资源文件所以是注释掉的
# 'TestAlertView' => ['TestAlertView/Assets/*.png']
# }
# s.public_header_files = 'Pod/Classes/**/*.h' #公开头文件地址
# s.frameworks = 'UIKit', 'MapKit' #所需的framework,多个用逗号隔开
end
然后进入TestAlertView中进行验证
xuyifeng-pc:~ zmx$ cd /Users/zmx/Desktop/test/TestAlertView
xuyifeng-pc:TestAlertView zmx$ pod lib lint
会有警告但是无妨,验证通过说明这个podspec是正常的
将文件放到索引指定的文件夹下面

3.进入示例工程中进行安装第三方库
xuyifeng-pc:~ zmx$ cd /Users/zmx/Desktop/test/TestAlertView/Example
xuyifeng-pc:Example zmx$ pod install

私有库创建已经完成
4.私有库导入我们现有项目工程中
我将私有库上传到公司SVN上面。在项目工程podfile中添加指定私有库的路径
pod ‘TestAlertView’, :svn => ‘自己公司svn路径’
执行 pod install 就可以看到安装到项目工程中
后记
按照上面的步骤可以完成一个简单的私有库。
私有库中的配置还可以有不同的依赖,可以根据头文件配置把文件分别配置到不同的文件夹中。在podsSpec还有很多高级配置可以参考查看一些开源库SDWebImage AFNetworking
还是不懂的可以看看下面两篇文章
http://www.jianshu.com/p/oZfb8s
http://www.cocoachina.com/ios/20150228/11206.html
网友评论