一添加本地个人索引私有库
# pod repo add [Private Repo Name] [GitHub HTTPS clone URL]
(pod repo remove REPO_NAME 私有库删除)
bogon:repos user$ pod repo add HelloRepo https://xxxx.git //添加私有库,并关联远程库
bogon:repos user$ cd ~/.cocoapods/repos //切入本地库文件目录
bogon:repos user$ ls
HelloRepo master // master是pod官方库,hellorepo是我们本地私有库
创建本地项目仓库
二bogon:repoTest user$ pod lib create [项目名]
bogon:repoTest user$ pod lib create HelloGitee
1、初始化git版本库:git init
2、添加文件到本地库:git add .
3、提交文件到本地库:git commit -m "msg(提交日志)"
4、关联远程库:git remote add origin(可修改) branch_Name(为空时默认为master) url
关联之后可以用git remote -v 来检查是否关联成功
5、一般情况需要先pull一下:git pull origin master
一般情况下含有共同文件时需要执行 git merge origin/master --allow-unrelated-histories
这之后解决一下冲突,重新提交
6、push到远程库:git push -u origin master
创建tag(保持项目、repo、tag号尽可能一致性。方便维护。)
$ git tag -a 0.0.1 -m "xxx"(版本号和spec中保持一致)
$ git push origin --tags
三修改podspec配置文件中重要的几项
Pod::Spec.new do |s|
s.version = '0.0.1' #版本号
s.source = { :git => 'https://gitee.com/xxxxx/hello-gitee.git', :tag => s.version.to_s }
s.ios.deployment_target = '9.0'
s.source_files = 'HelloGitee/Classes/**/*'
#框架资源文件位置
# s.resource_bundles = {
# 'HelloGitee' => ['HelloGitee/Assets/*.png']
# }
#在这个属性中声明过的.h文件能够使用
# s.public_header_files = 'Pod/Classes/**/*.h'
#依赖的系统框架
# s.frameworks = 'UIKit', 'MapKit'
#依赖的三方框架
# s.dependency 'AFNetworking', '~> 2.3'
#属性值还有很多,可以直接百度更多属性添加。。
#子集文件夹 第二层文件夹名称AppInfo(虚拟路径)
# s.subspec 'AppInfo' do |ss|
# //下载HycProject文件夹下AppInfo的.h和.m文件
# ss.source_files = 'HycProject/AppInfo.{h,m}'
# //允许使用import<AppInfo.h>
# ss.public_header_files = 'HycProject/AppInfo.h'
# //依赖的frameworks
# ss.ios.frameworks = 'MobileCoreServices', 'CoreGraphics'
# en
四本地验证配置文件信息
pod lib lint --allow-warnings
可选参数:
--verbose : 显示详细信息
--allow-warnings: 是否允许警告,用到第三方框架时,用这个参数可以屏蔽讲稿
--fail-fast: 在出现第一个错误时就停止
--use-libraries:如果用到的第三方库需要使用库文件的话,会用到这个参数
--sources:如果一个库的podspec包含除了cocoapods仓库以外的其他库的引用,则需要改参数指明,用逗号分隔。
--subspec=Name:用来校验某个子模块的情况。
五如果验证成功则推送本地库关联远程索引库
pod repo push REPO_NAME SPEC_NAME.podspec
六使用
1、podfile头部引入
source 'https://github.com/ourpods/private.git’
2、我们还可以直接使用本地模式,从而忽略上面的source。
pod 'SPEC_NAME', :path => SPEC_NAME_PATH
3、直接指定git地址
pod 'SPEC_NAME', :git => "https://www.github.com/balabla.git”, :branch => ’test'
问题记录:
1、bogon:Example user$ pod search sdweb
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin19/rbconfig.rb:229: warning: Insecure world writable dir /usr/local/sbin in PATH, mode 040777
[!] CDN: trunk - Cannot perform full-text search because Algolia returned an error: 0: Cannot reach any host: execution expired, execution expired, execution expired, execution expired
实际操作:
1 创建个私有仓库ZJH1 拷贝地址https://gitee.com/xxxxx/zjh1.git
2 pod repo add zjh1 https://gitee.com/xxxxx/zjh1.git关联本地组件库(zjh1索引库创建完成)
3 pod lib create ZjA 创建项目ZjA
4 进入class目录替换replaceme文件为自己的项目内容。后进入目录example中进行pod install 安装自己的项目文件到工程目录
5 创建远程仓库ZjA 地址https://gitee.com/xxxxx/zj-a.git
6 git remote add origin https://gitee.com/xxxxx/zj-a.git关联
Git add . ;
Git commit xxxx. ;
git push -u origin master完成提交
bogon:ZjA user$ git tag -a 0.1.1 -m "project init"
bogon:ZjA user$ git push origin —tags tag打完
7 pod lib lint --verbose --use-libraries --allow-warnings 验证本地podspec
或者分别验证本地和远程。。。
pod lib lint --allow-warnings
pod spec lint —allow-warnings
显示 ZjA passed validation.
ZjA.podspec passed validation. 成功
8 向索引库提交本地索引
pod repo push zjh1 ZjA.podspec --allow-warnings --verbose --use-libraries
9pod 'SPEC_NAME', :git => "https://www.github.com/balabla.git”, :branch => ’test’
直接指定地址进行引用
完成。。