配置私有CocoaPods仓库

随风 2018-09-03 15:03:21
我们一般都是用的pod公共仓库,有时候可能会用到私有仓库,要创建一个私有仓库,先要找到一个git托管服务,可以用码云、码市,也可以利用Gogs、Gitlab等自己搭建一个,我这里用的都是码市。 先来创建一个远程仓库: 进入cocoapod本地目录
cd  ~/.cocoapods/repos
如果之前没有使用过pod库,最好先pod setup 或者找个项目 pod install 来一波,才会出现这个目录。然后在这个目录下执行下面的命令
pod repo add [YOUR_REPO_NAME] [YOUR_SOURCE_URL]
比如我的
pod repo add DCSpecs https://gitee.com/zcb1603999/DCSpecs.git
执行过后就能在这个目录里看到多出来名叫DCSpecs的文件夹 然后我们再创建一个仓库来存我们自己要上传到仓库的代码,主要是注意一下开源协议那里的选择 然后clone到本地,创建一个文件夹存放要传到仓库的代码,添加podspec文件
pod spec create DCSpecsTest
最重要的就是这个文件的配置了
Pod::Spec.new do |s|

  s.name         = "DCSpecsTest"  #名称
  s.version      = "0.0.1"  #版本号
  s.summary      = "DCSpecsTest Summary"  #这里不能少
  s.description  = "DCSpecsTest Description" #这里也不能少,而且不能喝上面一样

  s.homepage     = "https://gitee.com/zcb1603999/DCSpecsTest"
  # s.screenshots  = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif"

  s.license      = "MIT"  #开源协议
  # s.license      = { :type => "MIT", :file => "FILE_LICENSE" }

  s.author             = { "Shen" => "xudong11.25@163.com" }
  # Or just: s.author    = "Shen"
  # s.authors            = { "Shen" => "xudong11.25@163.com" }
  # s.social_media_url   = "http://twitter.com/Shen"

  # s.platform     = :ios
  s.platform     = :ios, "8.0"   #支持的平台及版本
  s.requires_arc = true   #是否使用ARC
  s.module_name = "DCSpecsTest"            #模块名称

  s.source       = { :git => "https://gitee.com/zcb1603999/DCSpecsTest.git", :tag => "0.0.1" }  #tag与版本号要保持一致

  # s.source_files  = "Classes", "Classes/**/*.{h,m}"
  # s.exclude_files = "Classes/Exclude"

  #难点1:描述你的代码+资源在哪里.特别注意xib虽然在你的工程中与代码放在一起但写描述的时候要写在s.resources内
  s.source_files  = "DCSpecsTest/DCSpecsTest/DCTestObj/*.{h,m}"
  # s.resources  = "DCSpecsTest/DCSpecsTest/DCTestObj/*.xib","DCSpecsTest/DCSpecsTest/DCTestObj/resources/*.png"

  #难点2:在工程引入什么了系统库这里都要全写出来.特别注意像引入了libz.tbtd,这里写个'z'就可以了
  s.frameworks = 'UIKit', 'Foundation'  #所需的系统的framework,多个用逗号隔开
  #s.libraries = 'z'     #所需的系统的lib,多个用逗号隔开
  #^(本文的所展示的工程不需要这个,只是为了说注意点而已,所以是注释掉的)

  #难点3:有的时候我们需要自己在工程内拽入一些framework+lib
  #s.vendored_frameworks = 'DCSpecsTest/DCSpecsTest/SDK/*.framework'    #工程自带的framework,多个用逗号隔开
  #^(本文的所展示的工程不需要这个,只是为了说注意点而已,所以是注释掉的)
  #s.vendored_libraries = 'DCSpecsTest/DCSpecsTest/SDK/libWeChatSDK.a'    #工程自带的lib,多个用逗号隔开
  #^(本文的所展示的工程不需要这个,只是为了说注意点而已,所以是注释掉的)

  #难点4:有的时候我们上传的工程已经不是一个project,而是一个写了podFile的workspace.那么我们用到的pod也要在这写出来
  #s.dependency  'Masonry'
  #s.dependency  'AFNetworking'
  #s.dependency  'SVProgressHUD'
  #^(本文的所展示的工程不需要这个,只是为了说注意点而已,所以是注释掉的)

end
这个文件一般这样写就没问题了,然后执行命令:
pod lib lint --allow-warnings --verbose
这一步报错概率特别大.出错了,一般都是podspec文件描述的与工程的信息不符合,看看报错信息,改掉再来,下面就是常规操作了
git add .
git commit -m "提交一次"
git push
带一个标签
git tag 0.0.1
git push --tags
最后把我们的代码添加到仓库里去就行了
pod repo push DCSpecs DCSpecsTest.podspec  --allow-warnings --verbose
我们使用的时候只需要添加个仓库就行了
# Uncomment the next line to define a global platform for your project
source 'https://github.com/CocoaPods/Specs.git'        #官方仓库地址
source 'https://gitee.com/zcb1603999/DCSpecs.git'       #私有仓库地址
platform :ios, '8.0'

target 'DCSpecsTest' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  use_frameworks!

  # Pods for DCSpecsTest
  pod 'DCSpecsTest'

end