CocoaPods私有库

在开发pod之前,请先阅读《git-flow+arc流程》

生成

1)查看本地是否有公司的Pods私有仓库:

pod repo

如果终端打印有HoriSpecs,而且URL指定的是*ssh://git@192.168.51.75/source/HoriSpecs.git*,跳过第二步:

HoriSpecs
- Type: git (master)
- URL:  ssh://git@192.168.51.75/source/HoriSpecs.git
- Path: /Users/chenjiangchuan/.cocoapods/repos/HoriSpecs

2)如果有HoriSpecs,但是URL不是75服务器地址,先执行(如果没有HoriSpecs,直接执行“添加私有仓库地址”):

pod repo remove HoriSpecs

添加私有仓库地址:

pod repo add HoriSpecs ssh://git@192.168.51.75/source/HoriSpecs.git

3)创建Pod项目:

pod lib create HoriTestModule

稍等会出现:

What language do you want to use?? [ Swift / ObjC ]
 >

注意!现在不要有任何操作,此时在当前目录下会有创建一个与项目名同名的文件夹,用Finder打开,进入./HoriTestModule/templates/ios/Example,打开Podfile文件,在文件的开头添加内网的specs地址:

source 'ssh://git@192.168.51.75/source/Specs.git' #内网官方仓库镜像地址

use_frameworks!

target '${POD_NAME}_Example' do
  pod '${POD_NAME}', :path => '../'

  target '${POD_NAME}_Tests' do
    inherit! :search_paths

    ${INCLUDED_PODS}
  end
end

现在可以设置:

What language do you want to use?? [ Swift / ObjC ]
 > ObjC

Would you like to include a demo application with your library? [ Yes / No ]
 > Yes

Which testing frameworks will you use? [ Specta / Kiwi / None ]
 > None

Would you like to do view based testing? [ Yes / No ]
 > No

What is your class prefix?
 > Hori

4)添加.gitignore(用来忽略不需要管理的文件)和podshell(私有库操作脚本)文件:

5)使用SourceTree打开HoriTestModule,点击“文件状态”全部勾选,再在底部填写提交的描述,最后点击提交:

6)设置pod库对应的服务器git地址:

git remote add origin ssh://git@192.168.51.75/source/HoriTestModule.git

7)初始化git-flow,在SourceTree菜单栏的中“仓库” -> “git-flow” -> “初始化仓库”。

8) 初始化远程仓库:

git push origin master
git push origin develop

内部结构

  • Finder目录

  • XCode目录

  • Finder目录中的Example和XCode目录中的Example for HoriTestModule对应;
  • Finder目录中的HoriTestModule和XCode目录中的Development Pods->HoriTestModule对应。

在pod开发中,涉及到主要的两个目录和文件:

  • Assets:存放资源;

  • Classes:存放源码,把代码都放在这个文件夹中;

  • podspecs:对pod库进行描述的文件;

  • Example:对pod库进行测试的项目。

1)开发新功能
打开SourceTree,菜单栏->仓库->git-flow->创建新的功能:

2)开发完成后,需要修改.podspec文件,下面列举必须的几个配置:

Pod::Spec.new do |s|
    s.name             = 'HoriTestModule'
    s.version          = '0.1.0' #每次更新模块版本后,这里也要修改成对应的版本号
    s.summary          = 'A short description of HoriFindModule.' #这里需要修改
    s.homepage         = 'https://github.com/jiangchuanc@gmail.com/HoriTestModule'
    s.source           = { :git => 'https://github.com/jiangchuanc@gmail.com/HoriTestModule.git', :tag => s.version.to_s }
    s.ios.deployment_target = '8.0'
    s.source_files = 'HoriTestModule/Classes/*'
    s.public_header_files = 'HoriTestModule/Classes/*.h'
end
  • s.name:库的名字;
  • s.version:当前库的版本,这里要注意,pod库的版本是和git中的tag一一对应的;
  • s.summary:库的描述;
  • s.homepage:库的网址;
  • s.source:库的git地址,注意,这里必须是http地址,不能是ssh;
  • s.ios.deployment_target:支持的最低版本;
  • s.source_files:指定源代码;
  • s.public_header_files:指定对外公开的头文件。

3)测试pod库,这里主要使用到Example里面的工程了,但是我们开发的pod库并没有关联到Example工程中,这里需要执行podshell脚本:

./podshell

如果提示:zsh: permission denied: ./podshell.sh,给podshell赋权限:

chmod 775 podshell.sh

再次执行./podshell,终端提示:

请输入需要的操作命令(update/lint/push):update

现在在Example工程中就可以使用pod库了。

当我们在开发过程中需要对pod库进行测试,则需要按照此步骤执行一遍!

4)pod库开发测试完后,我们需要发布版本,但是在发布版本之前,我们还需要在本地验证pod库是否能编译通过:

// 执行podshell脚本
./podshell

// 输入lint
请输入需要的操作命令(update/lint/push):lint

如果成功如下所示:

** BUILD SUCCEEDED **

   Testing with xcodebuild.
 -> HoriTestModule (0.1.0)
    - WARN  | url: The URL (https://github.com/jiangchuanc@gmail.com/HoriTestModule) is not reachable.

HoriTestModule passed validation.

但这里有条警告:The URL is not reachable,因为我们在podsepcs中的s.source和s.homepage没有修改成真实地址,我们在192.168.51.75创建一个git仓库,然后修改podsepcs:

s.homepage         = 'http://192.168.51.75/source/HoriTestModule/'
s.source           = { :git => 'http://192.168.51.75/source/HoriTestModule.git', :tag => s.version.to_s }

再执行podshell,输入lint。
如果homepage和source都填对的话,最终结果是:

** BUILD SUCCEEDED **

   Testing with xcodebuild.
 -> HoriTestModule (0.1.0)

HoriTestModule passed validation.

5)完成新功能的开发,在SourceTree中cmmit修改的代码:

然后菜单栏->仓库->git-flow->完成新功能:

6)准备发布版本前,需要进行:

arc diff
arc land

7)经过代码审核没有问题后,就可以发布realease版本,打开SourceTree菜单栏->仓库->git-flow->建立新的发布版本:

8)修改完一些和版本号有关的东西后,点击菜单->仓库->git-flow->完成发布版本:

9)推送master和tag到远程服务器:

git push origin master
git push --tags

10)把pod推送到私有仓库HoriSpecs中:

./podshell.sh
请输入需要的操作命令(update/lint/push):push

如果没有中途没有fail提示说明推送成功。

11)测试,新建一个项目后执行:

pod init

再修改Podfile文件,这里要注意,需要在Podfile文件的最前面添加:

source 'ssh://git@192.168.51.75/source/Specs.git' #内网官方仓库镜像地址
source 'ssh://git@192.168.51.75/source/HoriSpecs.git' #自己的仓库地址

接着添加:

# Pods for 你项目的名称
  pod 'HoriTestModule'

最后执行:

pod install

results matching ""

    No results matching ""