Cocoapods+svn搭建私有仓库

首先,确保你已经部署好了你的SVN代码仓库。

关于搭建仓库可以参考这里

准备工作都结束了,就可以开始在SVN上部署Cocoapods了。

创建SVN目录

这点很重要,Cocoapods在和SVN结合的时候,对项目结构有很严格的要求。

Cocoapods+svn搭建私有仓库_第1张图片
Snip20180202_10.png

创建项目

使用Xcode创建名为ModuleA的项目,项目下创建Classes文件夹,我们开发的模块中代码就存放在这里。

Cocoapods+svn搭建私有仓库_第2张图片
Snip20180202_12.png

同时使用pod spec create 文件名创建私有库配置文件ModuleA.podspec`, 此文件要与模块名相同。

然后将项目下的文件,拷贝到trunk目录下

Cocoapods+svn搭建私有仓库_第3张图片
Snip20180202_13.png

接下来看看ModuleA.podspec的内容:

Pod::Spec.new do |s|

# 模块名
s.name         = "ModuleA"
# 版本号。需要注意的是:当仓库代码 push 到远程仓库的时候,需要打上 tag。tag 和 版本号必须一致!!!
s.version      = "0.0.1"
# 简短描述
s.summary      = "This is ModuleA for myProj"
# 模块主页 可能不存在,但是一定要写
s.homepage     = "http://XXXX/ModuleA"
# license 类型
s.license      = { :type => "MIT", :file => "FILE_LICENSE" }

# 创建者信息
s.author             = { "姓名" => "邮箱地址" }
# 平台信息,后面的数字指的是最低的系统要求。
s.platform     = :ios, "9.0"

#  推荐使用下面这几个,针对指定平台最系统配置要求
# s.ios.deployment_target = "9.0"
# s.osx.deployment_target = "11.0"
# s.watchos.deployment_target = "2.0"
# s.tvos.deployment_target = "9.0"

# 远程仓库路径
s.source       = { :git => "http://EXAMPLE/ModuleA.git", :tag => "#{s.version}" }

# 需要暴露给别人的代码文件
s.source_files  = "Classes", "Classes/**/*.{h,m}"

# 需要暴露给别人的资源文件
# s.resources = "Resources/*.png"

# 需要添加的系统 framework
# s.frameworks = "AFramework", "BFramework"

# 需要添加的系统 .tbd 库
# s.libraries = "iconv", "xml2"

# 是否是 ARC 环境
s.requires_arc = true
# xcconfig 路径配置
# s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }
# 需要依赖的三方库
# s.dependency "JSONKit", "~> 1.4"
# s.dependency "AFNetWorking"

end

这里我们只做最基础配置

Pod::Spec.new do |s|

  s.name         = "ModuleA"
  s.version      = "0.0.1"
  s.summary      = "ModuleA for MyProject"
  s.description  = <<-DESC
                ModuleA for MyProjectModuleA for MyProjectModuleA for MyProjectModuleA for MyProjectModuleA for MyProject
                   DESC
  s.homepage     = "http://www.baidu.com"
  s.license      = { :type => 'MIT', :file => 'LICENSE' }
  s.author             = { "程立卿" => "[email protected]" }
  s.source       = { :svn => 'svn://10.0.3.112:8080/app/Common/ios/ModuleA', :tag => "#{s.version}" }

  s.source_files  = "ModuleA/Classes/**/*"

end

我们可以验证一下配置信息是否合格,使用pod lib lint

Cocoapods+svn搭建私有仓库_第4张图片
Snip20180202_14.png

看到这个,表示已经验证通过了。接下来需要将我们的模块打包推到tags目录下。

这里我使用的是Cornerstone。

Cocoapods+svn搭建私有仓库_第5张图片
Snip20180202_17.png

更新一下本地的代码,会发现我们的tags目录下会创建以下的文件

Cocoapods+svn搭建私有仓库_第6张图片
Snip20180202_18.png

这里就是打包好的我们对应的ModuleA模块了!

到这里,我们就可以使用我们的私有仓库了!

创建项目过程就不多说了,我们之间看pod init后的Podfile文件

target 'RootProj' do
  pod 'ModuleA',:svn =>'svn://10.0.3.112:8080/ModuleA',:tag =>'0.0.1'
end

填入我们的模块名和对应的svn地址还有版本即可。

这时候我们高高兴兴的'pod update',可能会出现无法导入的情况。这时候八成是需要权限的问题,使用

svn checkout https://10.0.3.112:8080/ModuleA

然后根据提示,输入你的svn账号密码,然后再重新update即可。

你可能感兴趣的:(Cocoapods+svn搭建私有仓库)