上传个人库到cocoapods

1.1 在GitHub创建项目

  • 填写项目名
  • 填写项目描述
  • 设置库公开(Public)
  • 添加证书及README文件,证书也可以在项目创建完成后点击Create new file并输入LICENSE,点击右上角出现的Choose a license template选择需要的证书并添加进去

设置完成后直接克隆到本地,并将工程代码复制进该文件夹

1.2 创建podspec文件

1.2.1 通过终端进克隆到本地的文件夹
cd xxx
1.2.2 创建podspec文件
pod spec create xxx
  • xxx为自己创建的库的名字,如Alamofire
1.2.3 配置podspec文件
@version = "0.0.1"
Pod::Spec.new do |s|
s.name = "MCircleBoard"
s.version = @version
s.summary = "MCircleBoard"
s.description = "MCircleBoard is a dash board."
s.homepage = "https://github.com/MichaelLynx/MCircleBoard"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "xxx" => "xxxxxx@qq.com" }
s.platform = :ios
s.ios.deployment_target = "8.0"
s.source = { :git => "https://github.com/MichaelLynx/MCircleBoard.git", :tag => "v#{s.version}" }
s.source_files = "Code/*.swift"
s.resources = ["Code/*.xcassets"]
s.swift_version = "4.0"
s.requires_arc = true
s.framework = "UIKit"

end
  • 如果有依赖库则增加如:s.dependency "AFNetworking", '~> 3.0'
  • 比较重要的字段有:nameversionsummaryhomepagelicenseauthordeployment_targetsourcesource_filesrequires_arc
  • source_files:最好把要上传的文件放在专门的文件夹下
  • 往库里添加资源:添加bundle然后设置属性resource\`resources\\resource_bundles`

spec里添加资源:

spec.resource = 'Code/MCircleBoardIcon.bundle'
spec.resources = ['Images/*.png', 'Sounds/*']
spec.resource_bundles = {
    'YourBundleName' => ['MapView/Map/Resources/*.png'],
    'OtherResources' => ['MapView/Map/OtherResources/*.png']
  }

bundle内图片的调用方式:

var bundle = Bundle(for: theClass.self)
if let resoucePath = bundle.path(forResource: "bundleName", ofType: "bundle"), let resouceBundle = Bundle(path: resoucePath) {
    bundle = resouceBundle
}
let image = UIImage(named: imageName, in: bundle, compatibleWith: nil) ?? UIImage()
  • 要设置成为第三方库,获取图片只能通过该方式,而不能像主工程项目里的获取方式
  • theClass:工程项目名称;bundleName:对应的bundle的名字

podspec字段说明:

字段 作用
name 库的名称
version 版本号,该号一定要和GitHub上的对应,参见下面的步骤
summary 该库的一个简介
homepage 这个库的主页,对应Github上的地址
license 采用何种license,和创建GitHub时候选择的那个要对应
author 作者
deployment_target 可以使用该库的iOS的最低版本
source 数据源,对应的是你clone的时候使用的那个HTTPS的链接地址
source_files 哪些文件是要上传到pods的
requires_arc 是否在ARC环境下使用
dependency 该库还引用了哪些第三方库

1.3 GitHub上创建发布版本

  • podspec文件验证无误后需要先将项目更新到GitHub上
  • 更新完毕后再release创建新版本,Tag version以v开头,后接版本号,标题release title需要填写
  • 如果操作过程中有对代码进行了更改,则需要删除release,上传代码并重新创建该release

1.4 注册Trunk账号及上传项目

1.4.1 注册cocoapods账号
如果已经注册成功账号,则这步跳过

在终端输入指令:

pod trunk register 邮箱地址 '用户名' —description='描述信息'
或
pod trunk register 邮箱地址 '用户名'  --verbose
  • 用户名后面的信息可不写
  • 注册成功后会提示去邮箱验证信息
  • 注册的信息最好和GitHub保持一致,方便记忆
  • 这里注册的邮箱地址和用户名即podspec的author

验证成功后在终端输入以下命令确认是否注册成功

pod trunk me
  • 出现用户信息则注册成功
1.4.2 验证podspec文件
如果确认podspec文件没问题则可以不进行验证

如果配置得正确,则输入验证命令后会提示:passed validation.

podspec文件配置完成之后可以在终端输入指令进行验证

pod spec lint XXX.podspec
  • 如果验证的结果有error则必须按要求进行处理;如果有warning则可以选择处理也可以忽视
  • 后面的XXX.podspec可省略
  • pod lib lint只从本地验证你的pod能否通过验证;pod spec lint从本地和远程验证你的pod能否通过验证。pod lib lint可省略,直接用pod spec lint进行验证
1.4.3 上传cocoapods

输入以下指令将代码上传到cocoapods:

pod trunk push

如果之前验证的结果里有warning,则可以用--allow-warnings忽略警告:

pod trunk push --allow-warnings

完成后出现Tell your friends字样则证明上传完毕,可以通过pod search XXX指令来验证是否上传成功。

如果没搜索出来则可以通过pod repo update更新本地的pod库,然后再进行搜索。

如果事先已经下载了旧版的库,可以直接cd到该工程,并pod update 第三方库名,哪怕暂时无法搜索出来,pod update依然可以有效将其更新到最新版本。

以下是我自己创建的第三方库,欢迎点个Star,也欢迎相互交流。
MCircleBoard


Lynx
206 声望3 粉丝

步步