iOS 创建属于自己的公开库

前言

iOS开发过程中我们经常会使用到CocoaPods,进行第三方类库的管理;经常会使用到的cocoaPods命令行

cd ...// 打开并进入你需要创建podfile文件的工程目录
touch podfile // 创建一个可用文本编辑打开的podfile 文件
open -e podfile //打开刚才创建的podfile文件
pod search ...// 搜索我们需要使用的公开库(AFNetworking)
pod install... // 等待安装成功

为什么开发中我们使用CocoaPods管理第三方库?

1、传统使用第三方库的劣势

a.使用一个第三方SDK,需要在工程里面添加一堆配置,少添加一步配置就会报一大堆错误。这个时候为了排查少了哪一个步骤,只能从头开始重做一遍,太浪费时间和精力。有些配置还不好配置,就更使人烦躁郁闷了。
b.如果使用的第三方SDK有比较重要的更新,想使用最新的SDK只能到官方下载最新的SDK,重新导入到自己的项目工程中。
c.如果公司有多个项目,每一个工程都这样配置一遍,这是多么痛苦的领悟呀。

2、使用CocoaPods管理第三方库的优势

1、我们可以避免上诉的问题,使用方便。
2、方便我们自己管理,只需要更新版本就行了,以前的库还可以保留让他人使用。

从这一刻我教会你如何创建属于我们自己的公开库

Everybody,follow my footsteps,let's start together! I will show you something amazing!

如何创建属于我们自己的公开库呢?

  • 1、注册Trunk :trunk需要CocoaPods 1.0.0版本以上,使用pod --version 查看当前Mac 版本号
image.png
  • 如果当前版本过低,需要升级:
sudo gen install cocoapods
pod setup
  • 查看是否已经注册Trunk (我已经注册过)
pod trunk me
image.png
  • 注册Trunk
// --verbose 可以输出详细的Debug信息
pod trunk register [email protected] "zhangsan" --verbose
// zhangsan      -----> 用户名
// [email protected]    -----> 邮箱地址

注册完成后,会收到一封邮件信息,进入邮件信息链接,确认注册

  • 注册成功后可以再一次使用pod trunk me 查看个人信息
  • 2、GitHub上创建一个仓库,并将自己的代码进行上传
    大家可以查看Mac上传代码至GitHub文章中我做了详细的介绍;
  • 3创建XXX.podspec文件
    1.cd进入克隆的项目目录下
pod spec create XXX
// XXX ---> 表示你即将创建的框架名称
  • 4、编辑.podspec文件 (可使用默认文本编辑打开)
    下文附上我的一个公开库 WYQProgressHUD
Pod::Spec.new do |s|
  s.name         = "WYQProgressHUD"
  s.version      = "1.1.0"
  s.summary      = "提供网络加载等待层,用户操作成功、失败提示框"
  s.description  = <<-DESC
            WYQProgressHUD 提供网络加载等待层,用户操作成功、失败提示框
                   DESC

  s.homepage     = "https://github.com/YongQiangWei/WYQProgressHUD" 
  s.license      = "MIT"
  s.author             = { "yongQiang Wei" => "[email protected]" }
  s.ios.deployment_target = "8.0"
  s.source       = { :git => "https://github.com/YongQiangWei/WYQProgressHUD.git", :tag => "#{s.version}" }
  s.source_files  = "WYQProgressHUD/*.{h}"
  s.exclude_files = "Classes/Exclude"
  s.resources = "MBProgressHUDExtend/MBProgressHUD.bundle/*.png"
  s.dependency "MBProgressHUD","~> 1.1.0"

end

简单说明:
s.name:名称,pod search 搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错
s.version:版本号
s.ios.deployment_target:支持的pod最低版本
s.summary: 简介
s.homepage:项目主页地址
s.social_media_url:社交网址,这里我写的微博默认是百度,如果你写的是你自己的博客的话,你的podspec发布成功后会@你
s.license:许可证
s.author:作者
s.source:项目的地址
s.requires_arc: 是否支持ARC
s.source_files:需要包含的源文件
s.public_header_files:公开的头文件
//其他
s.resources: 资源文件
s.dependency:依赖库,不能依赖未发布的库,可以写多个依赖库
常见的写法:
1、dependency:写法
s.dependency = 'AFNetworking' , 'SDWebImage'
2、source_files: 写法
'runtime/'
'runtime/runtime/
.{h,m}'
'runtime//.h'
'
'表示匹配所有文件
'.{h,m}' 表示匹配所有以.h和.m结尾的文件
'
*' 表示匹配所有子目录
3、source: 常见写法
s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :commit => "68defea" }
s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :commit => "68defea", :tag => 1.0.0 }
s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :tag => s.version }

commit => "68defea" 表示将这个Pod版本与Git仓库中某个commit绑定

tag => 1.0.0 表示将这个Pod版本与Git仓库中某个版本的comit绑定

tag => s.version 表示将这个Pod版本与Git仓库中相同版本的comit绑定

  • 4、打上tag
    // 为Git打上tag,相当于我们的版本号
    git tag "0.0.1"
    // 将tag推送到远程仓库
    git push --tags

如果我们的tag打错了,没有用的时候,需要删除
首先我们查看tags
git tags //罗列我们所有的tags
删除本地tags
git tag -d + 分支 // git tag -d 0.0.1
删除远程分支
git push origin :refs/tags/分支

  • 5、验证.podspec文件
    验证时我会使用 --verbose 显示错误信息
    pod spec lint WYQProgressHUD.podspec --verbose
    在验证时,如果出现警告性问题,我们直接忽略
    pod spec lint --allow-warning


    image.png

    passed validation 表示验证通过

  • 6、发布
    发布时会验证 Pod 的有效性,如果你在手动验证 Pod 时使用了 --use-libraries 或 --allow-warnings 等修饰符,那么发布的时候也应该使用相同的字段修饰,否则出现相同的报错。
    pod trunk push WYQProgressHUD.podspec

  • 7、审核通过后,我们就可以验证使用自己的公开库
    pod search WYQProgressHUD
    如果出现未找到的情况,
    rm ~/Library/Caches/CocoaPods/search_index.json
    pod setup

你可能感兴趣的:(iOS 创建属于自己的公开库)