私有库的原理就是使用一个repo仓库管理组建仓库的podspec文件,本文以码云为例,gitlab同理
一、创建私组建库repo(不需要
.podspec
文件,简单一个仓库即可)
1、直接使用oschina创建空仓库作为组建库repo
2、将远程组建库镜像到本地
pod repo add 本地私有仓库名 远程仓库地址
pod repo remove 本地私有仓库名//如果提示已存在删除重加
pod repo (查看可以看到对应的仓库表明添加成功)
二、向私有的组建库添加组建spec
1、xcode创建组建工程
2、在oschina上创建仓库,用于存放步骤1中xcode创建的组建工程
3、克隆步骤2中创建的仓库到本地,将项目中的.git替换到组建工程中
4、在组建工程共目录执行以下指令
git add .
git commit -m "备注"
git pull
git push
git tag -m "备注" 1.0
git push --tags(这里的tag必须打,否则无法添加成功)
5、创建组建工程的spec文件
touch 项目名称.podspec
open 项目名称.podspec
#插入如下内容
Pod::Spec.new do |s|
s.name = "仓库名称"
s.version = "版本号"
s.summary = "概述"
s.description = <<-DESC
详细描述
DESC
s.homepage = "github仓库网址(区别仓库地址https://github.com/*****/*****)"
s.license = "MIT"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "作者名称" => "邮箱地址" }
#支持平台
s.platform = :ios
#支持平台版本
s.platform = :ios, "7.0"
#仓库地址 (不要使用ssh)
s.source = { :git => "https://github.com/*****/****.git", :tag => "#{s.version}" }
#源文件位置
s.source_files = "ADCarouselView/ADCarouselView/*.{h,m}"
# s.exclude_files = "Classes/Exclude"
#仓库地址 (暴露出来的头文件)
s.public_header_files = "ADCarouselView/ADCarouselView/*.h"
#需要的framewoke
# s.framework = "UIKit"
s.frameworks = "UIKit"
#库
# s.library = "iconv"
# s.libraries = "iconv", "xml2"
#是否arc
s.requires_arc = true
# s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }
#需要依赖的三方
s.dependency 'SDWebImage', '~> 3.7.6'
end
6、检查podspec文件
pod spec lint --allow-warnings
// pod lib lint 和 pod spec lint 命令的区别
pod lib lint是只从本地验证你的pod能否通过验证
pod spec lint是从本地和远程验证你的pod能否通过验证
以前使用pod lib lint,现在推荐使用pod spec lint
7、将组建工程的.podspec文件推到spec仓库
pod repo push 项目名称.podspec
如果在创建完.podspec后再添加文件,可能目录结构被缓存,尝试重新创建
8、搜索刚刚完成的组建
pod search 项目名称(或者关键字都可以搜索到,不会出现直接上传cocoapods,可能搜索不到的情况,如果有删除搜索json,重新搜索即可)
三、使用私有组建库
1、搜索组建(添加完直接搜索就能搜到)
pod search 组建库名称
2、在Podfile文件中顶部添加
source 'https://git.oschina.net/tiancanfei/ADRepo.git'
source 'https://github.com/CocoaPods/Specs.git'
网友评论