上一篇尝试了创建自己的pod私有库,步骤还算简单,但是有些重复性工作能不能用脚本代替呢?当然自己的功力还没达到那个火候,只有借别人的轮子,偶然的一个机会找到了casa大神在github上有一个脚本,脚本地址。脚本提供了podspec,gitignore,readme.md,podfile,license模板,通过config.sh配置当前项目,就可以给将要组件化的项目添加这些必要的文件,然后在通过upload.sh脚本就可以提交podspec文件到repo去。接下来就简单介绍一下脚本的使用步骤吧。
步骤一 下载脚本
从这里下载脚本,ConfigPrivatePod文件夹中包含一个config.sh脚本文件和一个templates文件夹,templates文件夹里全是所需要的模板文件,在配置并执行了config.sh脚本后,会为我们的项目生成项目特定的文件。
步骤二 创建私有源仓库,配置模板
在公司自己的服务器或者在GitHub上创建一个作为私有库的仓库,这里我创建的仓库名字为:XLZGComponent,仓库地址为:http://*****/XLZGComponent.git。
首先,向Cocoapods的repo添加我们创建的私有库,添加命令:
pod repo add XLZGComponent http://*****/XLZGComponent.git
接着,修改templates文件夹中的podfile模板,如下:
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
//这里就是自己的私有源地址(我们刚刚创建的)
source 'http://*****/XLZGComponent.git'
//GitHub的源地址
source 'https://github.com/CocoaPods/Specs.git'
target '__ProjectName__' do
# Uncomment this line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
end
继续,修改upload.sh脚本中私有库名字,如下:
pod repo push 自己的私有库名字 __ProjectName__.podspec --verbose --allow-warnings
我的就是这样的:
pod repo push XLZGComponent __ProjectName__.podspec --verbose --allow-warnings
步骤三 创建项目工程,工程的git仓库
创建一个工程项目,这个项目中将有我们一会儿需要pod的源文件。由于使用脚本,所以要注意项目和脚本文件的层级,我的是这样的:
我的PodTest文件下放了ConfigPrivatePod脚本文件夹,testA为我的工程项目,在git服务器上创建一个testA的git仓库:http://*****/testA.git。
步骤四 配置并执行config.sh
终端cd到 ConfigPrivatePod 文件夹,运行脚本:
./ConfigPrivatePod.sh
按提示输入项目的HTTPS Repo URL ,SSH Repo URL ,HOME Page URL地址,我这里就是输入testA相关地址。配置好了,就可以发现我们项目文件下面多了一些东西:
说明:因为在实际使用中,我们不可能pod整个项目到我们项目中去,只会pod一些类文件或者资源文件。所以我在项目中创建了一个和项目名一样的文件夹testA,里面有一个类,这个就是一会儿将作为第三使用的类。而且casa的这个脚本在创建podspec文件里设置源文件路径也是在项目文件夹下与项目名一样的文件夹。也不知道说清楚没有,也就是要使用这个脚本,需要在xcode项目名目录下创建一个和项目名一样的文件夹里面放要作为第三方的文件。当然这不是必须,只是为了脚本,当然可以根据自己的需要修改脚本。还是觉得好绕,就说到这里吧,下面是xcode层级:
注意:放A_catergory类的文件夹testA在项目中必须是一个物理存在的一文件夹。
步骤五 提交项目到git仓库,发版
参照前一篇,发版那一步,这里
步骤六 提交podspec文件到repo去
cd到templates文件下,执行upload.sh脚本:
./upload.sh
最后
最后就可以像使用AFNetworking一样pod使用了,具体使用方法参照前一篇,使用步骤,这里
总结
终于写完了,写的好纠结,总觉得没写清楚,没有清楚的表达出具体的步骤。如有不懂得地方,请留言,或者私信,一起探讨,有不对的地方也请大家指出,我立刻改正。自己也了好几篇文章,写文章不容易,写一篇通俗易懂的文章更不容易,这也许是我坚持写的原因,希望有一天能让自己想表达的通过文字完全的表达出来,写文章还有一个好处,让自己再一次梳理逻辑,让逻辑更清晰,记忆更深刻。在此感谢casa大神。
分享是一件快乐的事情!