利用Cocoapods创建基于SVN的iOS私有库

为了演示下文统一相关名称
私有库管理库名称为iOSSpec
私有库名称为iOSLibraryDemo

一、安装cocoapods环境

安装教程参考:https://www.cnblogs.com/angelgril/p/6731015.html

二、安装cocoapods-repo-svn插件

sudo gem install cocoapods-repo-svn 

三、创建私有库版本管理库

1.在SVN上创建私有库版本管理库

注意:该仓库不包含trunk、tags、branches

例如:iOSSpec

2.将版本管理库添加到本地
# 与git操作一样将管理库添加到本地
pod repo-svn add iOSSpec svn://svnbucket.com/blackmonkeyidea/iOSSpec/
3.执行pod repo即可查看是否已经添加成功
pod repo

查看本地repo列表

4.添加过程中出现的问题
(1)无法checkout SVN代码
svn:E170013-unable to connect to a repository at url xxx, 
svn:E1700113: unable to connect to remote host: no route to host。

解决方法:

使用SVN命令将账号密码添加到缓存

svn co svn://svnbucket.com/blackmonkeyidea/iOSSpec --username 填你的SVN用户名 --password 填你的SVN密码

添加账号密码到缓存

出现上图的情况,一般写p,以后就不会再出现了!

(2)SVN服务https证书问题导致无法访问

解决方法:

用命令打开servers配置文件:open ~/.subversion/servers

在servers配置文件的末尾添加:

ssl-ignore-host-mismatch = true
ssl-ignore-unknown-ca = true
ssl-ignore-invalid-date = true 

四、创建私有库

1.先在SVN上创建私有库

注意:私有库需要包含trunk、tags、branches

例如:iOSLibraryDemo

SVN上对应私有库目录结构

2.任意目录下执行创建私有库命令
pod lib create iOSLibraryDemo

注意:为了更好的进行版本管理,创建完成后会自动打开xcode暂时先关闭iOSLibraryDemo工程,在其他位置将SVN上的iOSLibraryDemo仓库checkout下来

3.将创建的本地库添加到SVN版本控制
(1)本地创建的私有库拷贝到trunk目录下并移除git相关文件

注意:由于版本管理是SVN,所以移除无用的git相关文件,如果以后打算迁移到git仓库可以不用移除

添加本地项目到SVN

(2)提交trunk目录内容到SVN

五、发布私有库版本

1.添加私有库源码
(1)将已经准备好的私有库代码拷贝到Classes目录

注意:私有库代码中,提供给外界使用的类、属性和方法,必须添加public修饰符,否则外界无法访问

(2)在Example目录下执行pod install,xcode即可看到添加的代码

项目代码结构示例

2.修改私有库描述文件并发布tag

例如:iOSLibraryDemo.podspec

name:框架名
version:当前版本(注意,是当前版本,假如你后续更新了新版本,需要修改此处)
summary:简要描述,在pod search iOSLibraryDemo的时候会显示该信息。
description:详细描述
homepage:页面链接
license:开源协议
author:作者
source:源码git地址/svn地址
platform:支持最低ios版本
source_files:源文件(可以包含.h和.m)
public_header_files:头文件(.h文件)
resources:资源文件(配置的文件都会被放到mainBundle中)
resource_bundles:资源文件(配置的文件会放到你自己指定的bundle中)
frameworks:依赖的系统框架
vendored_frameworks:依赖的非系统框架
libraries:依赖的系统库
vendored_libraries:依赖的非系统的静态库
dependency:依赖的三方库
(1)修改s.source版本管理地址和方式
//修改默认Git管理方式为SVN管理方式  
s.author           = { 'cwj' => 'xxx@example.com' }
s.source           = { :svn => 'svn://svnbucket.com/blackmonkeyidea/iOSLibraryDemo', :tag => s.version.to_s }

podspec描述文件

(2)修改后将trunk提交至SVN,并打一个tag

注意:每次要更新库时,都需要修改版本号并重新打tag

3.本地来验证一下.podspec
#首先要切换到本地工程的trunk目录下
pod lib lint --allow-warnings
4.将.podspec提交到版本管理库
pod repo-svn push iOSSpec iOSLibraryDemo.podspec
5.项目中使用方法
# Uncomment the next line to define a global platform for your project
platform :ios, '12.0'

target 'Target名称' do
  # Comment the next line if you don't want to use dynamic frameworks
  plugin 'cocoapods-repo-svn', :sources => [
  'https://svn服务器地址/iOSSpec' # 添加 svn 服务器中私有库 spec 的 repo
  ]
  use_frameworks!
  
  # 测试私有库pod
  pod 'iOSLibraryDemo'

end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值