1. iOS 组件化 之 利用Git 或 SVN 实现 Pods 库本地化配置

发布于 2022年 02月 21日 11:41

    在实际开发中,我们经常会用到三方库,比如AFNetworking、Masonry等,我们还会它们行裁剪、重构以适应项目的需要。当然也有自己开发的静态或者动态库。
    如果我们在重构后在使用CocoaPods提交到仓储是比较麻烦的,有没有更好的办法?能不能使用Pods直接加载本地库呢?本地修改的库又怎么进行管理?
    我们带着问题开始本节的探索。

上面这种方式就很好的解决了上面的三个问题。

  • 1.使用Git 或者 SVN 对经常使用的三方库或者自己开发的库进行管理。
  • 2.使用脚本更新的远程仓库到本地repos
  • 3.使用pod命令引用本地库。

那下面就分别看看SVN 和 Git 管理方式吧

一、SVN 方式管理

  • 1.首先我们构建一个SVN仓储

        这个就不用讲了,太老了~

  • 2.思考下库的类别。

        一般是分为两种
        1.三方库:github 或者其它地方下载的。
        2.自己开发的库。
好了,现在可以在SVN上仓储下创建两个文件夹

看下它两里面的内容吧,这个就是三方库的

这个一定是用户开发的组件。

创建其实很简单,那么我们不会每次开发都要自己使用命令更新吧?当然不是我们只需在工程目录下创建一个脚本即和方便的开展团队开发!


脚本的大致内容

#!/bin/sh
SVN="svn"
POD=pod
// 三方库
PODS_LOC_PATH="${HOME}/.cocoapods/repos/" //定义本地路径
PODS_SVN_PATH="SVN仓储地址" // SVN的仓储
if [ ! -d "${PODS_LOC_PATH}" ]
then
    rm -fr "${PWD}/Pods"
    echo "本地私有仓库\"~/.cocoapods/repos/本地路径/\"不存在,正在为你初始化,请耐心等待 ..."
    cd PODS_LOC_PATH
    $SVN co $PODS_SVN_PATH 'svn用户名和密码' 本地库名称
else
    echo "更新本地仓库\"~/.cocoapods/repos/本地库名称s/\" ..."
    cd $PODS_LOC_PATH
    $SVN up 'svn用户名和密码'
fi
// 自己组件
这里内容和上面类似就不多解释了

// 执行pod 命令
cd $SCRIPT_DIR
if [ $? = 0 ]
then
	echo '执行 pod install --no-repo-update'
	${POD} install --no-repo-update
fi

二、Git 方式管理

Git 创建其实也和上面的类,就是更新脚本命令不一样
先看下Git是否安装


GIT="git"
POD=pod
PODS_LOC_PATH="${HOME}/.cocoapods/repos/" //定义本地路径
PODS_GIT_URL="GIT仓储地址" // GIT仓储地址
if [ -d ${PODS_LOC_PATH} ]; then
    echo "更新本地仓库\"~/.cocoapods/repos/你库的名称"..."
    cd ${PODS_LOC_PATH}
    ${GIT} pull
else
    echo "本地私有仓库\"~/.cocoapods/repos/你库的名称/\"不存在,正在为你初始化,请耐心等待 ..."
    ${GIT} clone ${PODS_GIT_URL} ${PODS_LOC_PATH}
fi
// 自己组件
这里内容和上面类似就不多解释了

// 执行pod 命令
cd $SCRIPT_DIR
if [ $? = 0 ]
then
	echo '执行 pod install --no-repo-update'
	${POD} install --no-repo-update
fi

现在都是会选择Git 管理,至于为什么,谁用过谁知道哈。
SVN与Git比较的优缺点差异这个我随便找找,关键要使用过,才能知道它的优秀!

推荐文章