cocoaPods的安装、更新、使用

cocoapods创建公有库

2020-05-22  本文已影响0人  爱玩游戏的iOS菜鸟

笔者之所以写这篇文章是因为自己记性不好,方便自己和像我一样的人查阅,顺便把自己项目里用到的东西分享给大家,忘记了再查阅一下。

1、注册CocoaPods账户信息(已注册过请略过)

创建一个开源pod库, 首先我们要注册CocoaPods账户, 使用trunk方式在终端执行:

pod trunk register '邮箱地址' '用户名'  --description=‘描述内容’ --verbose

可以直接使用GitHub邮箱和用户名, 然后在你的邮箱中会收到确认邮件, 在浏览器中点击链接确认即注册成功, 成功之后可以终端执行:

pod trunk me

如果显示类似下面的信息,代表已经成功!


image.png

2、创建仓库并克隆

1. 首先创建一个你想上传的库的同名仓库
image.png
2. 克隆到本地
image.png image.png

3. 创建.podspec文件并修改对应信息,将上传代码文件夹拖进去

pod spec create ZQNetworking.podspec
image.png
Pod::Spec.new do |spec|

  spec.name         = "ZQNetworking" # 项目名称

  spec.version      = "1.0.0" # 版本号 与 你仓库的 标签号 一致

  spec.summary      = "A set of useful Base Object for Foundation, UIKit and more.This is my personal packaged network request tool" # 项目简介

  spec.homepage     = "https://github.com/zziqiang/ZQNetworking" # 项目主页

  spec.license      = "MIT" # 开源证书

  spec.author             = { "zhengziqiang" => "a516969532@163.com" } # 作者信息

  spec.social_media_url   = "https://github.com/zziqiang" # 个人主页

  spec.platform     = :ios, "9.0" #平台及支持的最低版本

  spec.source       = { :git => "https://github.com/zziqiang/ZQNetworking.git", :tag => spec.version } #你的仓库地址,不能用SSH地址

  spec.source_files  = "ZQNetworking/**/*.{h,m}" # 代码的位置, ZQNetworking/*.{h,m} 表示 ZQNetworking 文件夹下所有的.h和.m文件

  spec.requires_arc = true # 是否启用ARC

  # spec.public_header_files = "Classes/**/*.h"

  # spec.resources = "Resources/*.png"

  spec.dependency "AFNetworking" ,"~> 3.2.1"

  spec.frameworks = "UIKit" # 依赖库

end
文件夹结构

4. 编写完成后需要验证.podspec文件的合法性

pod lib lint ZQNetworking.podspec

其他命令:

//本地验证
pod lib lint      
//本地和远程验证   
pod spec lint    
// 显示详细的检测过程,出错时会显示详细的错误信息
pod lib lint --verbose
//允许警告,用来解决存在警告导致不能通过校验的
pod lib lint --allow-warnings  
4.1 这里常见的错误

ZQNetworking.podspec中的路径、名称千万不能错了!
dependency、source_files这两个一定不能搞错了!
这一点是最重要的!如果创建的公有库依赖其三方库在验证过程中会报[-Werror,-Wnon-modular-include-in-framework-module],是不能在.h文件中直接引入三方文件的!

4.2 解决办法

如无必要,尽量在.m文件中声明 eg:#import "AFNetworking.h"
如果一定要暴露三方库才有的参数或接口 #import <AFNetworking/AFNetworking.h>

不断排错,不断验证,直到出现下面的结果:

image.png

恭喜你,即将踏上公有库创建成功之路了!

5、打tag标签,提交到远程仓库

git tag -a '1.0.0' -m '第一次提交'

git push --tag #推送tag到远端仓库

在此之前,需要先提交一次代码,然后打标签,相关git命令行操作自行百度,也可以使用sourceTree提交

6、发布自己的库描述文件.podspec至cocoapods

完成上面,仅代表你已经上传成功,通过pod search ZQNetworking找不到的,也无法使用

pod trunk push ZQNetworking.podspec --allow-warnings

发布到cocoaPods,之后还需要更新本地的search_index.json文件

//pod setup成功后生成的~/Library/Caches/CocoaPods/search_index.json文件, 是用来查找的索引文件
rm ~/Library/Caches/CocoaPods/search_index.json
或者
pod repo update
//并再次输入:
pod search ZQNetworking

成功!

6.1 遇到的问题

其实,我并没有成功 = =|| ,我遇到了重名的问题!!!


image.png

没办法,重新来一遍


提交成功!

7、更新维护podspec

后续需要版本迭代,修改工程文件后推送到远端仓库后, 需要修改podspec中的版本号, 并重新打tag上传, 再进行新一轮的验证和发布。(重复5-6操作

上一篇 下一篇

猜你喜欢

热点阅读