iOS 上传Framework到cocoapods
前言
制作cocoapods步骤
创建github平台上的仓库
创建.podspec
编辑.podspec
代码提交到github平台
项目打tag
验证.podspec
注册 cocoapods trunk帐号
发布.podspec到cocoapods
1 创建github平台上的仓库
- 在github上创建一个新的仓库
- 填写Repository name
- 勾选Public
- 勾选Initialize this repository With a README
- Add .gitignore:
- 根据你的情况自己选择。比如: Objectvie-C
- Add a license::
- 根据你的情况自己选择。比如:MIT License
- clone代码到本地
- git clone https://github.com/xxx/xxx.git
注意:
如果有两个github,提交到github前,需要在clone下来的文件中去修改隐藏文件 .Git/config 。否则出现The requested URL returned error: 403 Forbidden while accessing的错误。
步骤如下:
- vim .Git/config
- 修改 url = https://github.com/xxx/example.git 为 url = https://xx@github.com/xxx/example.git
2 创建.podspec
- $ pod spec create XXXSDK
- $ vim XXXSDK.podspec
3 编辑.podspec
假设:github文件夹目录结构
- XXXSDK
- lib
- XXXSDK.framework
- openSource
- publicSource.h
- publicSource.m
- resource
- resource.bundle
- resource.jpg
Pod::Spec.new do |s|
s.name = "XXXSDK"
s.version = "1.0.0"
s.summary = "这是一个SDK"
s.description = "这是一个SDK 一定要比summary长."
s.homepage = "https://github.com/xxxx/XXXSDK"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "作者" => "123456@qq.com" }
s.platform = :ios, "8.0"
# When using multiple platforms ios部署版本
# s.ios.deployment_target = "5.0"
# s.osx.deployment_target = "10.7"
#1 git commit -m =>"13287dd",讲pod版本与git仓库中的某一次提交绑定
#s.source = { :git => "https://github.com/xxxx/XXXSDK", :commit => "13287dd" }
#2 将这个Pod版本与Git仓库中某个版本的comit绑定
#s.source = { :git => "https://github.com/xxxx/XXXSDK", :tag => 1.0.0 }
#3 将这个Pod版本与Git仓库中相同版本的comit绑定
#s.source = { :git => "https://github.com/xxxx/XXXSDK", :tag => s.version }
s.source = { :git => "https://github.com/xxxx/XXXSDK.git", :tag => "v#{s.version}" }
s.source_files = "XXXSDK", "XXXSDK/openSource/*.{h,m}"
s.vendored_frameworks = 'XXXSDK/lib/XXXSDK.framework'
s.resources = "XXXSDK/resource/resource.bundle"
s.framework = "UIKit"
#s.resource = "XXXSDK/resource/resource.jpg"
#s.frameworks = "SomeFramework", "AnotherFramework"
#引用libxml2.lib和libz.lib、tbd ,去掉头尾的lib
# s.library = "z"
# s.libraries = "z", "xml2"
#s.vendored_libraries = 'XXXSDK/lib/XXXSDK.a'
s.requires_arc = true
# s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }
# s.dependency "JSONKit", "~> 1.4" s.dependency = 'AFNetworking', '~> 2.3' s.dependency = 'SDWebImage'
# 创建子库
#s.subspec 'Components' do |ss|
#ss.source_files = 'YDKit/Components/*/.{h,m}'
#end
end
- s.name:
- 名称
pod search
搜索的关键词,一定要和.podspec
的名称一样,否则报错
s.version
:
- 版本号
s.ios.deployment_target
:
- 支持的
pod
最低版本
- 支持的
s.summary
:
- 简介
s.homepage
:
- 项目主页地址
s.license
:
- 开源协议(创建
github
库的时候选择的)
- 开源协议(创建
s.author
:
- 作者信息(这里随便谢谢也可以通过)
s.social_media_url
:
- 社交网址
s.source
:
- 项目的地址
s.source_files
:
- 需要包含的源文件
s.resource
:
- 资源文件,单个
s.resources
:
- 资源文件(含
bundle
)
- 资源文件(含
s.vendored_frameworks
:
- 包含的
framework
,也就是我们自己制作的pod
- 包含的
s.requires_arc
:
- 是否支持
ARC
- 是否支持
s.dependency
:
- 依赖库,不能依赖未发布的库.如AFNetWorking
s.description
:
- 描述,字数要比
s.summary
长
- 描述,字数要比
s.screenshots
:
- 截图
s.exclude_files
:
- 隐藏的文件
s.public_header_files
:
- 公开的头文件
s.framework
:
- 所需的
framework
,单个
- 所需的
s.frameworks
:
- 所需的
framework
,多个用逗号隔开
- 所需的
s.library
- 引用的静态库
s.libraries
- 引用的静态库,多个用逗号隔开
s.vendored_libraries
:
- 引用自己生成的.a
s.vendored_frameworks
:
- 引用自己生成的.framework
s.dependency
:
- 依赖的库
s.ios.deployment_target
- iOS部署版本
4 代码提交到github平台
提交到github
- 将要上传的文件,拖到此文件夹下
- git add .
- git commit -m “描述”
- git push -u origin master
5 项目打tag
git tag 'v1.0.0'
git push origin --tags
#下边是拓展,不再步骤中
#删除远程tag
git push origin --delete tag 'v1.0.0'
6 验证.podspec
# 加上--verbose验证失败会显示详细的报错信息
pod spec lint XXXSDK.podspec --verbose
如果验证成功的话会显示
XXXSDK.podspec passed validation.
7 注册 cocoapods trunk帐号
# 1 注册
pod trunk register 123456@qq.com '用户名' --description='描述' --verbose
# 下边是拓展,不再步骤中
# 2 查看注册信息
pod trunk me
# 3 添加其他维护者
pod trunk add-owner XXXSDK 123456@qq.com
# 4 删除已发的版本
pod trunk delete XXXSDK 版本号
# 5 删除某个pod
pod trunk deprecate XXXSDK
# 6 删除其他维护者
pod trunk remove-owner XXXSDK 56789@qq.com
8 发布(或更新).podspec到cocoapods
pod trunk push XXXSDK.podspec
9 注意
pod search 搜索的时候出现[!] Unable to find a pod with name, author, summary, or description matching
xxxxx
错误rm ~/Library/Caches/CocoaPods/search_index.json pod search xxx
pod search 搜索搜不到,需要更新本地pod依赖库
pod setup