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文件夹
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之后
运行无误后,将以上两个文件放在tags下0.x.0文件夹下,0.x.0和.podspec内vision一致。可以删除tags下其他文件夹
5.首先要切换到本地工程的tags同级kit目录下
demo必须要运行成功,才能执行下述步骤
pod lib lint --allow-warnings #(验证没有私有库依赖)
or(两个方法二选一)
pod repo-svn lint CRProtocolManager.podspec #(验证有私有库的依赖)
直到看到 ***** passed validation.
6.将spec推到repos远程仓库 切换到tags同级kit目录下
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
参考
其他
CornerStone-分支与合并 合并前记得update,合并后记得commit
CocoaPods创建基于SVN的私有库