CocoaPods 私有库创建与发布指南

本文档记录从注册账号、创建 Pod 库到发布的完整流程,包括 Git 操作、Tag 管理和 CocoaPods 发布。

一、注册 CocoaPods 账号(首次准备)

在创建和发布 Pod 库之前,首先需要注册 CocoaPods Trunk 账号。

1. 查看本地是否已注册

pod trunk me

如果已注册,会显示你的账号信息;如果未注册,会提示错误。

2. 注册账号

基础注册(替换为你的邮箱和名字):

pod trunk register 136769890@qq.com '桃色三岁' --description='MacBook Pro'

完整描述示例:

pod trunk register 136769890@qq.com '桃色三岁' \
  --description='常用文件库,专注于为 iOS 开发提供高质量、易用的组件与工具库,帮助开发者提升开发效率。库内包括常用的UI控件、网络请求封装、数据存储等基础功能,致力于减少重复工作,让开发更轻松。'

注意

  • 执行完该命令后,绑定的邮箱会收到一封验证邮件
  • 邮件里面包含一个验证链接,必须点击该链接完成验证
  • 验证链接有效期通常为 24 小时

3. 验证注册是否成功

点击邮件中的验证链接后,再次执行以下命令确认:

pod trunk me

如果显示类似以下信息,说明注册成功:

  - Name:     桃色三岁
  - Email:    136769890@qq.com
  - Since:    March 8th, 2020
  - Pods:
    - ZHHAnneKit
  - Sessions:
    - March 8th, 2020 - May 14th, 2020. IP: xxx.xxx.xxx.xxx
    Description: MacBook

二、创建新的 Pod 库(首次创建)

1. 使用模板创建 Pod 库

进入工作目录:

cd /Users/meihui/Documents/workspace/CocoaPod

创建 Pod 库(会自动生成项目结构):

pod lib create ZHHAnneKit

执行后会依次提示以下问题,根据你的需求选择:

创建 Pod 库提示问题

主要选项说明:

  • 平台(Platform):选择 iOS 或 macOS
  • 语言(Language):选择 Objective-C 或 Swift
  • 示例项目(Demo):建议选择 Yes,方便开发调试
  • 测试框架(Test Framework):根据需要选择
  • 视图测试(View Testing):根据需要选择

2. 配置 Podspec 文件

创建完成后,编辑 ZHHAnneKit.podspec 文件:

Pod::Spec.new do |s|
  s.name             = 'ZHHAnneKit'
  s.version          = '0.0.1'
  s.summary          = '简短描述(必填,不能与 description 相同)'
  
  s.description      = <<-DESC
                       详细描述,需要比 summary 更详细
                       DESC
  
  s.homepage         = 'https://github.com/username/ZHHAnneKit'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'Your Name' => '136769890@qq.com' }
  s.source           = { :git => 'https://github.com/username/ZHHAnneKit.git', :tag => s.version.to_s }
  
  s.ios.deployment_target = '13.0'
  s.requires_arc     = true
  
  s.source_files = 'ZHHAnneKit/Classes/**/*.{h,m}'
  s.public_header_files = 'ZHHAnneKit/Classes/**/*.h'
  s.frameworks = 'UIKit', 'Foundation'
  
  # 如果有依赖其他库
  # s.dependency 'AFNetworking', '~> 4.0'
  
  # ========== 分模块配置示例(subspec)==========
  # 如果需要将库按功能模块划分,可以使用 subspec
  # 使用时通过 pod 'ZHHAnneKit/UIKit' 来单独引入某个模块
  
  # s.subspec 'UIKit' do |ui|
  #   ui.source_files = 'ZHHAnneKit/Classes/UIKit/**/*.{h,m}'
  #   ui.public_header_files = 'ZHHAnneKit/Classes/UIKit/**/*.h'
  #   ui.frameworks = 'UIKit'
  # end
  
  # s.subspec 'Foundation' do |fd|
  #   fd.source_files = 'ZHHAnneKit/Classes/Foundation/**/*.{h,m}'
  #   fd.public_header_files = 'ZHHAnneKit/Classes/Foundation/**/*.h'
  #   fd.frameworks = 'Foundation'
  # end
  
  # s.subspec 'Network' do |net|
  #   net.source_files = 'ZHHAnneKit/Classes/Network/**/*.{h,m}'
  #   net.dependency 'AFNetworking', '~> 4.0'  # 模块单独的依赖
  # end
  
  # 注意:使用 subspec 后,需要注释掉上面的 s.source_files
  # 或者设置默认包含所有子模块:
  # s.default_subspecs = 'UIKit', 'Foundation', 'Network'
end

3. 添加库文件

删除自动生成的占位文件:

rm ZHHAnneKit/Classes/ReplaceMe.m

将你的源代码文件添加到 ZHHAnneKit/Classes/ 目录中。

进入示例项目目录:

cd /Users/meihui/Documents/workspace/CocoaPod/ZHHAnneKit/Example

安装依赖,将你的库文件引入示例项目:

pod install

4. 创建 Git 仓库并推送

初始化 Git 仓库(如果还没有):

git init

添加远程仓库:

git remote add origin https://github.com/username/ZHHAnneKit.git

添加所有文件并提交:

git add -A
git commit -m "Initial commit"

推送到远程:

git push -u origin main

三、Git 基础操作

1. 提交代码到仓库

查看当前状态:

git status

添加所有修改的文件:

git add -A

提交修改:

git commit -m "优化: 描述你的修改内容"

推送到远程仓库:

git push origin main

四、Tag 版本管理

1. 创建和推送 Tag

创建 tag(版本号需要与 podspec 中的 version 一致):

git tag 0.0.2

推送单个 tag 到远程:

git push origin 0.0.2

或推送所有 tag:

git push --tags

2. 查看 Tag

查看本地所有 tag:

git tag

查看 tag 列表(包含模式匹配):

git tag -l

3. 删除 Tag

删除本地 tag:

git tag -d 0.0.2

删除远程 tag:

git push origin --delete 0.0.2

五、CocoaPods 验证与发布

1. 验证 Podspec 文件

本地验证(快速检查)

基础验证:

pod lib lint

允许警告:

pod lib lint --allow-warnings

详细输出:

pod lib lint --verbose

使用静态库:

pod lib lint --use-libraries

远程验证(推荐,正式发布前)

基础验证:

pod spec lint ZHHAnneKit.podspec

允许警告(推荐):

pod spec lint ZHHAnneKit.podspec --allow-warnings

详细输出:

pod spec lint ZHHAnneKit.podspec --verbose --allow-warnings

验证成功标志

ZHHAnneKit.podspec passed validation.

2. 发布到 CocoaPods

推送到 CocoaPods Trunk:

pod trunk push ZHHAnneKit.podspec --allow-warnings

发布成功标志

--------------------------------------------------------------------------------
 🎉  Congrats

 🚀  ZHHAnneKit (0.2.2) successfully published
 📅  March 8th, 2020 18:27
 🌎  https://cocoapods.org/pods/ZHHAnneKit
 👍  Tell your friends!
--------------------------------------------------------------------------------

3. 删除已发布的版本(慎用)

删除指定版本:

pod trunk delete ZHHAnneKit 0.2.2

注意:删除操作需谨慎,可能影响已使用该版本的用户。

六、完整发布流程示例

假设要发布 0.2.3 版本:

# 1. 修改 podspec 文件中的版本号为 0.2.3

# 2. 提交代码
git add -A
git commit -m "chore: 发布 0.2.3 版本"
git push origin main

# 3. 创建并推送 tag
git tag 0.2.3
git push origin 0.2.3

# 4. 验证 podspec
pod spec lint ZHHAnneKit.podspec --allow-warnings

# 5. 发布到 CocoaPods
pod trunk push ZHHAnneKit.podspec --allow-warnings

七、常见问题

1. Tag 与 Podspec 版本不一致

确保 ZHHAnneKit.podspec 中的 s.version 与 Git Tag 版本号一致。

2. 验证失败

  • 检查源文件路径是否正确
  • 检查依赖项是否正确
  • 使用 --verbose 参数查看详细错误信息
  • 使用 --allow-warnings 忽略警告

3. 推送失败

  • 确认已注册 CocoaPods Trunk 账号
  • 确认邮箱已验证
  • 检查网络连接

八、参考链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 可用于实现组件化 1、先查看本地是否已经绑定过 如果已经绑定,会显示: 如果未绑定,先绑定,执行: 执行成功: 然...
    Streamsle阅读 2,929评论 0 1
  • 创建本地私有库 1 创建空目录 2 创建子工程 3 之后等待CocoaPods建立demo工程,最后CocoaPo...
    发发_小码农阅读 4,134评论 0 3
  • 在码云(我的个人主页)上创建两个远程仓库,其中YYSpecs 用来存放本地的spec,YYToolProject是...
    Misaki_yuyi阅读 3,952评论 0 0
  • 步骤 创建一个spec Repo的私有远程仓库[A] , 一个存放pod 库源码的远程仓库[B],两个仓库! 创建...
    CoderKK阅读 3,456评论 0 1
  • pod install原理cocoapod安装之后本地会有~/.cocoapods/repos/的路径,repos...
    OscarWang_ux阅读 2,286评论 0 0

友情链接更多精彩内容