pod私有库创建

一添加本地个人索引私有库

# 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

#     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’

直接指定地址进行引用

完成。。

你可能感兴趣的:(pod私有库创建)