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

利用Cocoapods创建基于SVN的iOS私有库,第1张

为了演示下文统一相关名称
私有库管理库名称为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

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

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

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

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

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

(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 }

(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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/796490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存