利用CocoaPods创建基于SVN的私有库

432 阅读3分钟

mac svn 组件化

准备工作

1.安装svn命令行工具(非必须,翻墙安装)

Mac下出现问题:zsh:command not found:svn.

终端依次输入以下命令(选清华源)

1.  /bin/zsh -c "$([curl](https://so.csdn.net/so/search?q=curl&spm=1001.2101.3001.7020) -fsSL [https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh](https://links.jianshu.com/go?to=https%3A%2F%2Fgitee.com%2Fcunkai%2FHomebrewCN%2Fraw%2Fmaster%2FHomebrew.sh))"

2.brew update

3.brew install subversion

4.svn --version

2.安装repo-svn插件

以下命令常用
gem install cocoapods-repo-svn 来安装 repo-svn 插件。 
pod repo-svn add my-svn-repo http://svn-repo-url 添加你的私有 svn 项目仓库 
pod repo-svn update my-svn-repo 更新项目 
pod repo-svn remove my-svn-repo 删除项目

创建

1.通过cornerstone 新建一个XXXXRepos,用来存放podspec,已经组件库迭代索引 功能如cocoapods pod 'AFNetworking'

#pod repo-svn add NAME URL
pod repo-svn add XXXXRepos http://svn/path/XXXXRepos

2.通过cornerstone 新建一个HSWeakTimer5Kit空文件夹,文件夹下通过命令行创建 tags文件夹,在tags文件夹下创建0.1.0文件夹

image.png

3.我们在 HSWeakTimer5Kit 的目录下执行注:在hsweaktimer5kit文件下执行pod lib create xxxKit,最后只需将.podspec和存放代码以及资源所在的文件放在tags>0.1.0文件夹下

pod lib create xxxKit

创建.podspec文件,其中s.source路径为svn上工程的根目录(上图第一个文件夹的路径,tags的父目录)[如s.source ={:svn => 'svn://**************'}],s.tag自行命名 在class文件夹下替换自己的文件,

s.prefix_header_contents = '#import "NXUI.h"','#import "NXService.h"','#import "NXKit.h"'//通过此代码来解决头文件依赖

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

4.commit之后

image.png 运行无误后,将以上两个文件放在tags下0.x.0文件夹下,0.x.0和.podspec内vision一致。可以删除tags下其他文件夹

5.首先要切换到本地工程的tags同级kit目录下

image.png

demo必须要运行成功,才能执行下述步骤

pod lib lint --allow-warnings   #(验证没有私有库依赖)
or(两个方法二选一)
pod repo-svn lint CRProtocolManager.podspec #(验证有私有库的依赖)

直到看到 ***** passed validation.

image.png

6.将spec推到repos远程仓库 切换到tags同级kit目录下

image.png

image.png

pod repo-svn push XXXXRepos #(自己建的repos)

7.使用

target 'PersionalDemo' do
    plugin 'cocoapods-repo-svn', :sources => [
    'svn://xxx.xxx.xxx.xxx/xxxx_repos' # 添加 svn 服务器中私有库 spec 的 repo
    ]
    use_frameworks!
    pod 'xxx_test', '~> 0.0.1'
end

更新

1.class下文件更改,同时.podspec 版本要更新

2.执行【创建】模块下的步骤4.5.6

参考

利用CocoaPods创建基于SVN的私有库

其他

image.png

image.png

Cornerstone 使用详解

Cornerstone 批量添加文件

Mac端SVN工具CornerStone详解

CornerStone-分支与合并 合并前记得update,合并后记得commit

CocoaPods创建基于SVN的私有库

利用CocoaPods创建基于SVN的私有库

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