SDK提交到CocoaPods
一:GitHub新建仓库,并clone到本地
1、注册GitHub账号并登录
2、右上方点击+,新建仓库(仓库名字(Repository name)、仓库权限(Public)、readme、license)
创建完成如下图:
3、检出仓库
新建一个文件夹SDK:
打开终端:
将FireRadarSDK文件夹拖进SDK里的克隆后的FireRadarSDK文件夹中
关掉终端,重新打开,切换到git仓库目录
cd /Users/huangzengsong/SDK/FireRadarSDK
二:更新CocoaPods版本
查看cocoapods的版本号
pod --version
确保cocoapods的版本号大于0.33,如果不大于需要先更新版本(无论版本号多大最好都更新一下)
sudo gem install cocoapods
注册Trunk账户(邮箱地址建议写成github注册的邮箱,用户名写成github对应的用户名)
pod trunk register 邮箱地址 '用户名' --verbose
注册命令执行完之后,对应的邮箱地址会收到一封邮件,“请确认您的注册CocoaPods通过点击以下链接:”,打开链接地址完成验证,如果地址不能点击就直接粘贴URL到浏览器上执行
查看自己的注册信息
pod trunk me
三:新建.podspec文件
pod spec create FireRadarSDK
注意:将代码提交到CocoaPods最容易出错的地方就是该.podspec文件,有可能多一个键或者少一个键、写错一个值都有可能在提交时出错,这里给出一份我的库中的,建议将我的.podspec文件拷贝一份,然后修改每个键对应的值,一般.podspec文件名和仓库的名字一致
Pod::Spec.new do |s|
s.name = 'FireRadarSDK'
s.version = '2.0.0'
s.summary = '安全反欺诈SDK'
s.description = '利用大数据处理,人工智能进行安全预警'
s.homepage = 'https://github.com/huangzs/FireRadarSDK'
s.social_media_url = 'http://www.fireradar.com.cn/'
s.license= { :type => 'MIT' }
s.author = { 'huangzs' => '759952579@qq.com' }
s.source = { :git => 'https://github.com/huangzs/FireRadarSDK.git', :tag => s.version }
s.source_files = 'FireRadarSDK/FRSDK.framework/Headers/*.{h}'
s.vendored_frameworks = 'FireRadarSDK/FRSDK.framework'
s.platform = :ios, '8.0'
s.frameworks = 'UIKit'
s.requires_arc = true
s.dependency 'AFNetworking', '~> 3.1.0'
s.dependency 'FMDB', '~> 2.7.2'
s.dependency 'AvoidCrash', '~> 2.3.0-beta'
end
s.name:名称,pod search 搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错
s.version:版本号
s.ios.deployment_target:支持的pod最低版本
s.summary: 简介 s.homepage:项目主页地址
s.license:许可证 s.author:作者
s.social_media_url:社交网址
s.source_files:需要包含的源文件
s.resources: 资源文件
s.requires_arc: 是否支持ARC
s.dependency:依赖库,不能依赖未发布的库,如 s.dependency = ‘AFNetworking’ s.dependency:依赖库,如有多个可以这样写
source_files:写法及含义建议大家写第一种或者第二种
"FireRadarSDK/* "
"FireRadarSDK/FireRadarSDK/*.{h,m}"
"FireRadarSDK/**/*.h"
- “*” 表示匹配所有文件
- “*.{h,m}” 表示匹配所有以.h和.m结尾的文件
- “**” 表示匹配所有子目录
四、提交工程到git,并打tag2.0.0版本
(.podspec, LICENSE 这两个文件必须提交到git上)
git add .
git commit -m "2.0.0"
git push
git tag 2.0.0
git push --tags
如果在操作过程中想删除tag,可以使用如下命令(删除tag不属于整个过程的步骤,这里只是提供删除tag的命令,在需要使用时可以查看):
git tag // 查看tag
git tag -d 2.0.0 //删除一个指定的tag
git push origin :refs/tags/2.0.0 // push到远程tag
五、 提交之前先验证.podspec文件是否合法
pod spec lint FireRadarSDK.podspec
有警告暂时不影响,下面提交用--allow-warnings忽略他们
六、提交.podspec文件到trunk中
pod trunk push FireRadarSDK.podspec
因为有警告 可以用下面的
pod trunk push FireRadarSDK.podspec --use-libraries --allow-warnings
只要验证通过,提交时一般没有什么问题, 一般会卡在“Updating spec repo ‘master’”, 这时不要关闭终端,要等,根据网络不同提交时可能要花几分钟时间,甚至是10分钟都有可能,成功如下图
七、重置cocoapods
pod setup
八、查找提交成功的库
pod search FireRadarSDK
如果查不到会报错如下
[!] Unable to find a pod with name, author, summary, or description matching
解决方案: 先删除search_index.json文件,然后再search (文件不存在时会自动下载,根据不同的网络可能要花一会时间,要等)
rm ~/Library/Caches/CocoaPods/search_index.json
pod search FireRadarSDK
九、从cocoapods移除刚才的框架
(移除框架不属于整个过程的步骤,这里只是提供移除框架的命令,在需要使用时可以查看)
pod trunk delete FireRadarSDK 2.0.0