1.准备工作
- 先去gitHub创建一个项目存放私有Repo源,空的就可以
- 本地添加私有源 终端执行命令
pod repo add XZRepositories [Repo源url]
(如果之前并未向gitHub push过文件也没有把SSH公钥保存到gitHub,这时候应该会提示你输入gitHub账号密码) - 以上操作完成 cd ~/.cocoapods/repos目录下至少会有2个文件夹 XZRepositories 和 master, master文件下面存放的是公有源文件, XZRepositories*目录下目前是空的,后面会存放我们私有源文件
- 基本准备工作完成。
2.将项目添加到私有源中
(2.1.1)先将工程提交到git上
- gitHub新建一个project名字和工程一样
- 终端cd至项目目录下
- 建立本地仓库
git init
- 将项目中的所有文件添加到本地仓库中
git add .
- 将add的文件commit到仓库中
git commit -m "可随意填写"
- 执行命令
git remote add origin [project在git上url]
- 上传github之前,要先pull一下
git pull origin master
- 上传代码到github远程仓库
git push -u origin master
(2.1.2)可能遇见的问题
error:failed to push some refs to git [url]
解决方案:先执行git pull --rebase origin master
,再git push -u origin master
(2.2.1)添加到私有源中
- 因cocoaPods强制添加开源许可文件执行命令
echo MIT>FILE_LICENSE
创建名为FILE_LICENSE的文件 - 创建podspec文件
pod spec create 工程名
- 去打开podspec文件,编辑
编辑模板:
Pod::Spec.new do |s|
s.name = "XZGoodsListModule" # 项目名称
s.version = "0.0.1" # 版本号 与 你仓库的 标签号 对应
s.license = { :type => "MIT", :file => "FILE_LICENSE" }
s.summary = "goods list" # 项目简介
s.homepage = "https://git.coding.net/qing1234/XZGoodsListModule.git" # 仓库的主页
s.source = { :git => "https://git.coding.net/qing1234/XZGoodsListModule.git", :tag => "#{s.version}" } #你的仓库地址,不能用SSH地址
s.resources = "XZGoodsListModule/XZGoodsListModule/*.{png,bundle}" # 如果有bundle包,就要加这句话
s.source_files = "XZGoodsListModule/XZGoodsListModule/**/*.{h,m}" # 你代码的位置, XZGoodsListModule/*.{h,m} 表示 XZGoodsListModule文件夹下所有的.h和.m文件,不要.{h,m}就是所有文件
s.requires_arc = true # 是否启用ARC
s.platform = :ios, "7.0" #平台及支持的最低版本
# s.frameworks = "UIKit", "Foundation" #支持的框架
s.dependency "XZMediator" # 依赖库
s.dependency "XZGoodsModel" # 依赖库
s.dependency "XZGoodsListModuleCategory" # 依赖库
# User
s.author = { "qing" => "251230890@qq.com" } # 作者信息
s.social_media_url = "http://www.jianshu.com/u/2987f5a5790f" # 个人主页
end
看一下你先的tag
git tag
添加tag
git tag 0.0.1
提交tag
git push origin master --tags
-
把podspec文件提交上去
pod repo push [远程库名] [项目名].podspec --verbose --allow-warnings
pod repo push [远程库名] [项目名].podspec --verbose --allow-warnings
的过程就是:1)、验证 [项目名].podspec 文件
2)、拉取远程版本库 [远程库名]
3)、添加 [项目名].podspec 到版本库中
4)、 push 到远程 搜索
pod search 项目名
(2.2.2)可能遇见的错误
- ERROR | file patterns: The
source_files
pattern did not match any file.
这是最常见的错误,原因有很多种
1,pod的网络文件路径不对,所以找不到文件;
2,git上没有设对应的tag;
3,pod上没有设置与git tag对应的version;
解决办法:
$ set the new version to 1.0.0
$ set the new tag to 1.0.0 (1.0.0要与podspec的version对应)
- ERROR | [iOS] unknown: Encountered an unknown error (Unable to find a specification for
XZMediator
depended upon byXZGoodsListModuleCategory
) during validation.
这种错误是你的工程依赖第三方库造成的
解决办法:
在提交podspec的命令后面加一个--private
或者--use-librariespod
就是这样:
pod repo push XZRepositories XZGoodsListModuleCategory.podspec --verbose --allow-warnings --private
或者
pod repo push XZRepositories XZGoodsListModuleCategory.podspec --verbose --allow-warnings --use-libraries
- pod search 搜索不到你传的项目
因为你本地search_index.json文件没有更新
解决办法:
前往文件~/Library/Caches/CocoaPods/search_index.json
把search_index.json文件删除,然后再pod search 项目名
,之后terminal就会一直显示Creating search index for spec repo 'master'..
,接下来就只能一直等了,我反正等了很久很久。