在项目中有时候需要开发一些组件,在不同的项目中都可以通过pod仓库导入到自己的项目中。
这时候就需要来创建一个私有的pod仓库,满足我们的需求。
一下是具体步骤:
- 在coding.net 创建一个版本仓库,和一个代码仓库
2.打开终端
cd .cocoapods/repos/
pod repo add FFRepo https://git.coding.net/zhangfei11/FFRepo.git // coding.net的文件路径,本地仓库和远端的路径映射
- git clone https://git.coding.net/zhangfei11/FFRepoDemo.git
添加相应的文件层次结构如下:
屏幕快照 2018-05-22 下午6.26.34.png
4.编辑podspec文件
Pod::Spec.new do |s|
s.name = "FFRepo" # 项目名称
s.version = "0.0.4" # 版本号 与 你仓库的 标签号 对应
s.license = "MIT" # 开源证书
s.summary = "私人pod代码" # 项目简介
s.homepage = "https://git.coding.net/zhangfei11/FFRepoDemo.git" # 仓库的主页
s.source = { :git => "https://git.coding.net/zhangfei11/FFRepoDemo.git", :tag => "0.0.4" }#你的仓库地址,不能用SSH地址
# s.source_files = [
# "FFRepoDemo/FFRepoDemo/FFNetwork/*.{h,m}" ,
# "FFRepoDemo/FFRepoDemo/FFRouter/*.{h,m}" ,
# "FFRepoDemo/FFRepoDemo/FFCommonTool/*.{h,m}" ,
# "FFRepoDemo/FFRepoDemo/FFExtensions/*.{h,m}",
# "FFRepoDemo/FFRepoDemo/FFCommonHeader/*.h"
# ]
s.subspec 'FFExtensions' do |ext|
ext.source_files = "FFRepoDemo/FFRepoDemo/FFExtensions/*.{h,m}"
ext.dependency 'MJExtension'
ext.dependency 'FFRepo/FFCommonHeader'
end
s.subspec 'FFCommonHeader' do |header|
header.source_files = "FFRepoDemo/FFRepoDemo/FFCommonHeader/*.h"
end
s.subspec 'FFCommonTool' do |tool|
tool.source_files = "FFRepoDemo/FFRepoDemo/FFCommonTool/*.{h,m}"
tool.dependency 'FFRepo/FFExtensions'
end
s.subspec 'FFRouter' do |rout|
rout.source_files = "FFRepoDemo/FFRepoDemo/FFRouter/*.{h,m}"
rout.dependency 'FFRepo/FFExtensions'
end
s.subspec 'FFNetwork' do |net|
net.source_files = "FFRepoDemo/FFRepoDemo/FFNetwork/*.{h,m}"
net.dependency 'FFRepo/FFRouter'
net.dependency 'FFRepo/FFCommonTool'
net.dependency 'FFRepo/FFExtensions'
net.dependency 'FFRepo/FFCommonHeader'
end
s.subspec 'FFImages' do |image|
image.resources = "FFRepoDemo/FFRepoDemo/FFImages/*.png"
end
s.subspec 'FFAlert' do |alert|
alert.subspec 'Manager' do |m|
m.source_files = "FFRepoDemo/FFRepoDemo/FFCommonAlert/FFAlertManager/*.{h,m}"
m.dependency 'FFRepo/FFAlert/Model'
m.dependency 'FFRepo/FFAlert/View'
m.dependency 'FFRepo/FFCommonHeader'
m.dependency 'FFRepo/FFNetwork'
end
alert.subspec 'Model' do |model|
model.source_files = "FFRepoDemo/FFRepoDemo/FFCommonAlert/FFAlertModel/*.{h,m}"
end
alert.subspec 'View' do |v|
v.source_files = "FFRepoDemo/FFRepoDemo/FFCommonAlert/FFAlertView/*.{h,m}"
v.dependency 'FFRepo/FFAlert/Model'
v.dependency 'FFRepo/FFExtensions'
v.dependency 'FFRepo/FFCommonHeader'
v.dependency 'FFRepo/FFImages'
end
end
#s.private_header_files = 'FFRepoDemo/FFRepoDemo/FFCommonHeader/*.h'
s.requires_arc = true # 是否启用ARC
s.platform = :ios, "8.0" #平台及支持的最低版本
s.frameworks = "UIKit", "Foundation", "AdSupport"#支持的框架
s.dependency 'Masonry'
s.dependency 'AFNetworking'
s.dependency 'MJExtension'
s.dependency 'SDWebImage'
s.author = { "BY" => "302591061@qq.com" } # 作者信息
end
#s.private_header_files = 'FFRepoDemo/FFRepoDemo/FFCommonHeader/*.h'
s.requires_arc = true # 是否启用ARC
s.platform = :ios, "8.0" #平台及支持的最低版本
s.frameworks = "UIKit", "Foundation", "AdSupport"#支持的框架
s.dependency 'Masonry'
s.dependency 'AFNetworking'
s.dependency 'MJExtension'
s.dependency 'SDWebImage'
s.author = { "BY" => "302591061@qq.com" } # 作者信息
end
3.然后验证是否编辑成功
pod lib lint --allow-warnings --verbose
5.接着 用git提交
git add -A
git commit -m "first vision”
git tag -m "new version" '0.0.1' #每次修改时候改一下版本
git push —-tags
git push origin master
5.提交到git仓库,这一步会将本地的新的podspec文件提交到远程和本地的repo仓库
pod repo push FFRepo FFRepo.podspec --allow-warnings --verbose
成功后文件层次结构
屏幕快照 2018-05-22 下午6.07.32.png6.测试pod是否可用
创建一个工程,进入工程。
pod init
pod install
在Podfile中输入
source 'https://git.coding.net/zhangfei11/FFRepo.git' #本地仓库路径
source 'https://github.com/CocoaPods/Specs.git' #其他第三方依赖仓库路径
platform :ios, '9.0'
target 'FFRepoDemo' do
pod 'FFRepo'
end
pod导入的字文件结构:
屏幕快照 2018-05-22 下午6.09.03.png最后进入工程文件更新
pod update --verbose --no-repo-update
7 . 关于后期pod 的更新,由于本地有一个测试工程,所以每次在测试工程中将修改的改好之后,重新编辑一下 本地工程的podspec 文件,然后重复 3、4、5步
参考:
https://www.jianshu.com/p/d6a592d6fced https://www.jianshu.com/p/1e5927eeb341
pod 官方文档
https://guides.cocoapods.org/syntax/podspec.html
git 命令
http://www.cnblogs.com/cspku/articles/Git_cmds.html
网友评论