CocoaPods-5.发布私有库
2018-11-16 本文已影响4人
Mccc_
一. 发布代码到CocoaPods的步骤
- 创建两个仓库。一个是代码仓库A,一个存放podspec文件的仓库B。并打开两个终端页面,一个操作代码仓库A,一个操作仓库B.
- 下载仓库A到本地,将要发布的代码提交,添加tag,提交到线上。
- 创建podspec文件。
- 编辑podspec文件。
- 检验podspec是否符合要求。
- 将配置仓B链接到本地的repos里面。
- 发布podspec文件。
- 用pod下载使用。
二. 发布代码到CocoaPods的具体操作
1. 在github创建自己的代码仓库。并且要选择许可证。 创建代码仓库,并选择许可证
2. 下载到本地,并将自己的代码提交。设置tag,并提交。 Git命令行的使用说明
3. 创建.podspec
文件。
进入项目的根目,执行pod spec create 文件项目名(同项目名)
比如:我的项目名字为MCCCC. 就是执行命令pod spec create MCCCC
4. 编辑podspec文件。
-
用xcode打开文件
打开podspec文件 - 编辑
Pod::Spec.new do |s|
s.name = "MCCCC"
s.version = "1.1"
s.summary = "TextView for ios."
s.homepage = "https://github.com/mancongiOS/MCCCC"
s.license = "MIT"
s.author = { "MC" => "562863544@qq.com" }
s.platform = :ios, "7.0"
s.source = { :git => "https://github.com/mancongiOS/MCCCC.git", :tag => "1.1" }
s.source_files = "MCCCCViewController/*.{h,m}"
end
说明:
name -> 第三方的项目名字。例如:AFNetworking
version -> 第三方的版本号
summary -> 描述信息
homepage -> 主页地址
license -> 许可文件。就填写MIT,跟之前创建仓库的时候一致。
author -> 作者信息
platform -> 支持平台以及版本
source -> 资源仓库的地址,以及版本信息。
source_files -> 要共享的文件路径。从根目录(即。podspec文件所在目录)
5. 检验podspec文件是否正确。
pod lib lint
是只从本地验证你的pod能否通过验证
pod spec lint
是从本地和远程验证你的pod能否通过验证
我一般都是直接使用pod spec lint
去验证pod有没有问题
6. 创建配置仓(用来存储代码的podspec文件,即上面创建的podspec文件)。在github上自行创建。别忘记选择MIT License许可证。
7. 新建终端。将该配置仓链接到本地repo(在根目录下)
-
pod repo add 配置仓名 配置仓地址
链接到本地
我的配置仓名字为MCCCSpec。
命令即:pod repo add MCCCSpec https://github.com/mancongiOS/MCCCCSpec.git
-
查看目录 在新终端上执行
目录文件
open ~/.cocoapods/repos
8. 回到原来终端上(即项目根目录下)执行发布podspec文件的命令
pod repo push 项目配置库名 项目代码库.podspec
pod repo push MCCCSpec MCCC.podspec
完成发布操作。
三. 使用
1. 在待安装的工程目录下,搜索验证一下。
pod search + 库名
2. 链接资源文件
source 'https://github.com/CocoaPods/Specs.git' #官方仓库地址
source ‘https://github.com/mancongiOS/MCPageViewControllerRepo.git’ #私有仓库地址
3. 关闭项目重新打开。
4. 如何没有,更新本地的spec
pod repo update
七. 如何发布Swift的包
- 配置swift的版本
s.swift_version = '4.2'
因为不同版本对应不同的swift方法。比如privite
这个作用域修饰词3.0上就没有。 - 配置iOS的部署版本
s.ios.deployment_target = '8.0'
- 给swift文件中的类名和方法名添加作用域修饰词。
需要给类加上修饰词,只允许访问不能继承就用public
,如何允许继承就用open
修饰。