让自己的框架支持CocoaPods

1. 在 github 上创建新的项目

注意 :
LICENSE 是必须的
readme.md 可选

新创建仓库 如图所示 :
让自己的框架支持CocoaPods_第1张图片
new_repository.png

2. clone 到本地, 放入自己的库和 demo

让自己的框架支持CocoaPods_第2张图片
clone.png

3. podspec 文件

  • 3.1 创建
pod spec create DGItemView.podspec

3.2 编辑
命令vim DGItemView.podspec

Pod::Spec.new do |s|
  s.name         = 'DGItemView'
  s.version      = '1.0.0'
  s.license      = { :type => "MIT", :file => "LICENSE" }
  s.homepage     = 'https://github.com/David5-G/DGItemView'
  s.authors      = { 'david' => '[email protected]' }
  s.summary      = 'a view for segment control'
  s.source       = { :git => "https://github.com/David5-G/DGItemView.git", :tag => s.version }
  s.source_files  = "DGItemView/*.{h,m}"
  s.requires_arc = true
  s.frameworks   = 'UIKit' 
 s.ios.deployment_target  = '8.0'
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:社交网址,这里我写的微博默认是Twitter,如果你写Twitter的话,你的podspec发布成功后会@你
s.source:项目的地址
s.source_files:需要包含的源文件(基于source)
s.resources: 资源文件
s.requires_arc: 是否支持ARC
s.dependency:依赖库,不能依赖未发布的库
s.dependency:依赖库,如有多个可以这样写
  • 这里的 description 书写 需要一点格式, 具体是下面这样:
s.description  = <<-DESC
              easy to use WeChat SDK tools.
                   DESC
  • 这里的 source_file 书写, 需要依据你的目录结构 :
默认是 s.source_files = "Classes/**/*.{h,m}"
首先
** 是匹配所有目录,
* 匹配文件,
.{h,m} 匹配后缀是 .h 或 .m 的文件

Classes 须和 podspec 同级的存放, 这里我存放库文件的目录是DGItemView, 且里面已经是.h & .m的文件, 即我的 s.source_files = "DGItemView/*.{h,m}", 若你的目录下还有很多子目录比如 util, tool, 可以写成

s.source_files  = "Classes/util/*.{h,m}"
s.source_files  = "Classes/tool/*.{h,m}"
//或者是
s.source_files  = "Classes/**/*.{h,m}"
  • s.source 常见写法
//commit => "68defea" 表示将这个Pod版本与Git仓库中某个commit绑定
s.source = { :git => "https://github.com/xxx.git", :commit => "68defea" }
//tag => 1.0.0 表示将这个Pod版本与Git仓库中某个版本的comit绑定
s.source = { :git => "https://github.com/xxx.git", :tag => 1.0.0 }
//tag => s.version 表示将这个Pod版本与Git仓库中相同版本的comit绑定
s.source = { :git => "https://github.com/xxx.git", :tag => s.version }
  • 3.3 验证
pod spec lint DGItemView.podspec

注 : 可加参数
--verbose 打印错误信息
--allow-warnings 允许警告
--use-libraries 允许使用静态库

通过验证:
podspec_pass_validation.png

4.上传到Git

将包含配置好的 .podspec, LICENSE,和第2步中的文件项目提交 Git

5.打tag

注意 :
cocoapods是依赖tag版本的,所以必须打tag,
更新库时
1.只需要再一个tag
2.然后修改.podspec文件中的版本接着提交到cocoapods

//为git打tag, 第一次需要在前面加一个v
git tag 1.0.0
//将tag推送到远程仓库
git push --tags

6.发布到 cocoapods

pod trunk push DGItemView.podspec

发布成功


podspec_push_success.png

7.注册cocoapods

trunk需要CocoaPods 0.33版本以上,用pod --version命令查看版本,

//如果版本低,需要升级
sudo gen install cocoapods
pod setup
//检查注册
pod trunk me
//注册
// 加上--verbose可以输出详细debug信息,方便出错时查看。
pod trunk register [email protected] "name" --verbose

注册完成之后会给你的邮箱发个邮件,进入邮箱邮件里面有个链接,需要点击确认一下

8.搜索一下

pod search DGItemView

注意 : cocoapods 需要一些处理时间, 可以去 cocoapods 官网去查看自己的库

  • 若提示Unable to find a pod with name, author, summary, or descriptionmatching 'DGItemView'
  • 删除~/Library/Caches/CocoaPods目录下的search_index.json文件
  • 终端输入rm ~/Library/Caches/CocoaPods/search_index.json
  • 删除成功后再执行pod search DGItemView就可以了

用CocoaPods做iOS程序的依赖管理
CocoaPods官网

你可能感兴趣的:(让自己的框架支持CocoaPods)