利用shell脚本自动化搭建cocoapod私有库

1,首先你得有自己的框架工程,接着,才创建一个模版podspec文件及其相关文件夹,

命令:

      pod lib create  私有库名B

大概目录如下:

具体目录结构

    进入到该私有库项目路径中,将framework动态组件库的代码文件 拷贝到 Classes文件夹中;


2,根据你的框架需要,修改.podspec文件 的内容:

Pod::Spec.new do |s|

  s.name            = 'EKUIBaseKitSpec'

  s.version          = '0.2.6'

  s.summary          = 'A short description of EKUIBaseKitSpec.'

# This description is used to generate tags and improve search results.

  s.description      = <<-DESC

TODO: Add long description of the pod here.

                       DESC

  s.homepage        = 'https://github.com/tianlunyuche/EKUIBaseKitSpec'

  # s.screenshots    = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'

  s.license          = { :type => 'MIT', :file => 'LICENSE' }

  s.author          = { 'tianlunyuche' => 'xin@moy.com' }

  s.source          = { :git => 'root@172.0.0.0:/home/ios/toollib/EKUIBaseKitSpec.git',

                         :tag => s.version.to_s,

                         :submodules => true

  }

  s.ios.deployment_target = '8.0'


  s.requires_arc = true  #是否支持arc


  #s.public_header_files = 'EKUIBaseKitSpec/Classes/**/*.h'

  #全局文件

  #s.prefix_header_contents = '#import "Masonry.h"', '#import "NSString+Helper.h"'

  s.prefix_header_file = 'EKUIBaseKitSpec/Classes/EKWHeader.h'


  # s.resource_bundles = {

  #  'EKWUIBase' => ['EKWUIBase/Assets/*.png']

  # }


  s.frameworks = 'UIKit', 'Foundation'

  # s.dependency 'AFNetworking', '~> 2.3'

  s.dependency 'Masonry'

  s.source_files = 'EKUIBaseKitSpec/Classes/**/*'

  s.subspec 'Category' do |a|

      a.source_files = 'EKUIBaseKitSpec/Classes/Category/**/*'

  end


  s.subspec 'EKWTextField' do |b|

      b.source_files = 'EKUIBaseKitSpec/Classes/EKWTextField/**/*'

      b.dependency 'EKUIBaseKitSpec/Category'

  end


  s.subspec 'EKWUnitField' do |c|

      c.source_files = 'EKUIBaseKitSpec/Classes/EKWUnitField/**/*'

      c.dependency 'EKUIBaseKitSpec/Category'

  end

end


3,然后创建一个shell脚本文件,取名0.0.1.sh,0.0.1是tag的版本号,跟podspec文件里的tag版本号一致,每次版本更新都要修改。

执行脚本:./0.0.1sh (第一次需要修改权限,输入linux命令:chmod 755 0.0.1.sh)

脚本具体内容如下:

#!/bin/sh

read -p "是否已用版本号重命名脚本名?[y/n]" input

case$inputin

[yY]*)

echo "命名版本号finished"

;;

[nN]*)

echo "改名字去!"

exit

;;

*)

echo "Just enter y or n, please."

exit

;;

esac

my_name=${0##*/}

tag_name="${my_name%.*}"

your_lib_pash=$(cd'dirname $0'; pwd)

echo ${your_lib_pash}

your_lib_name="${your_lib_pash##*/}"

if [ ! -d "/Users/${USER}/.cocoapods/repos/ekw" ]

then

pod repo add ekw  root@172.17.0.0:/home/ios/toollib/EkwSpecs.git

fi

cd /Users/${USER}/.cocoapods/repos/ekw

git add .

git commit -m"避免前置冲突"

git pull

git push

if [ ! -d "/Users/${USER}/.cocoapods/repos/ekw/${your_lib_name}" ]

then

mkdir ${your_lib_name}

fi

if[[ $? !=0]]

then

echo "新建索引父级目录失败,打印文件名是${your_lib_name}"

exit

fi

if [ -d "/Users/${USER}/.cocoapods/repos/ekw/${your_lib_name}/${tag_name}" ]

then

echo "${tag_name} 版本已存在!"

exit

fi

cd ${your_lib_name}

mkdir ${tag_name}

cp "${your_lib_pash}/${your_lib_name}.podspec" "/Users/${USER}/.cocoapods/repos/ekw/${your_lib_name}/${tag_name}/${your_lib_name}.podspec"

git add .

git commit -m "版本 ${tag_name} 索引提交"

# git pull

git push

if[[ $? !=0]]

then

echo "版本索引push失败"

else

echo "版本索引push成功"

fi

cd ${your_lib_pash}

git add .

git commit -m "版本 ${tag_name}: 新代码提交"

#git pull

git push origin master

git tag ${tag_name}

git push --tags

pod repo update /Users/${USER}/.cocoapods/repos/ekw

if[[ $? !=0]]

then

echo "repo更新失败"

else

echo "repo更新成功"

fi


4,最后就是验证安装过程了,在自己工程的podfile文件中:

引入自己的私有库路径所在的源:

source 'root@172.0.0.0:/home/ios/toollib/EkwSpecs.git'

    pod'EKUIBaseKitSpec/EKWTextField'

    pod'EKUIBaseKitSpec/EKWUnitField'


在终端输入命令,安装:

pod install



5,下次修改了这个框架的代码,要升级了,就修改脚本文件为0.0.2.sh,podspec文件里的tag版本号也为0.0.2,再次执行脚本:

./0.0.2.sh

返回更新成功了

输入git fetch --tag

和git tag 也返回对应的tag了

接下来,就是更新本地的缓存库了,pod update  EKUIBaseKitSpec


最后!!!!!就是祝贺大家成功接入了哈哈,是不是用shell脚本后 特别简单了,每次更新库,再也不用写哪那么多命令行了。



给个可能用到的命令:
删除远程标签:

git push origin :refs/tags/标签名

再重新打:

git tag‘0.1.0‘

git push —tags

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容