XcodeServer持续化集成

花了两天时间才才将XcodeServer搭建完成,将过程遇到的问题总结一下,欢迎交流讨论。

1,下载与安装

  • 我准备了一台新的Mac作为主机,特意重装了一下系统。重启Mac,在出现苹果的logo之前按住commond+r不松手,Mac会进入修复模式,这里我选择了抹掉磁盘,然后重装系统。但是系统默认安装的是OS X Yosemite,并不是我想要的OS X EI Capitan最新版,所以重装完系统后又不得不花时间升级...

  • XcodeServer下载地址
    我选择的是以下版本,如果拥有开发者账号可以下载beta版。

    XcodeServer持续化集成_第1张图片
    01

  • 下载完直接安装即可,界面如下。主机这一栏,设置>远程访问中勾选SSH,其他全部默认即可。


    XcodeServer持续化集成_第2张图片
    02
  • 用户和群组根据需求添加,服务类里常用的有Wiki、邮件等,启动后选项前会有一个小绿点。

  • 点击Xcode选项,有个选取Xcode,需要我们下载最新版Xcode,没有的去AppStore下载。加载完成之后界面如下:


    XcodeServer持续化集成_第3张图片
    03

    XcodeServer持续化集成_第4张图片
    04
  • 在设置界面最下方有个查看bot,这个在我们创建bot成功后会跳转到XcodeSerever web版,里面的功能后面介绍。

  • 存储库界面,我们可以通过下面的+号添加本地存储库,路径可以再图02中的存储容量中查看。

  • 对于线上的项目,本地存储库并不是必须的。

  • 如果是新建项目并想加入Server服务器,可以在创建项目的时候直接选择你的服务器,系统会自动添加本地存储库。


    XcodeServer持续化集成_第5张图片
    05

2,创建Bot

  • 如果是线上的项目,需要先将项目clone下来,并运行。

  • 在Xcode上注册我们的Xcode Server服务器。


    XcodeServer持续化集成_第6张图片
    08
  • 编辑Scheme,完成图07后,push代码。

    XcodeServer持续化集成_第7张图片
    06

    XcodeServer持续化集成_第8张图片
    07

  • Product > Creat Bot

    • 我在这里遇到一个警告,说是Xcode Server 无法在git上找到我的项目,这个问题主要就是路径错误引起的,修正即可。
  • 如果没有问题的话,根据流程配置Bot,直至创建完成。我会在下面给出其他文档的链接,里面有详细的介绍。

3,证书配置

  • 导入开发者证书和生产者证书的.p12文件,导入到钥匙串的系统分类中,不是默认的登录分类。
  • 持续集成生成包时证书由/usr/bin/codesign管理,所以需将codesign添加为允许访问证书的程序。选择下面的+添加允许访问的程序,由于usr是隐藏文件,在选择时使用快捷键 commond+shift+. 显示隐藏文件。


    XcodeServer持续化集成_第9张图片
    09
  • 根据Bot的配置选择证书,如果需要可以直接上传AppStore的,要在Xcode中选择生产证书。


    XcodeServer持续化集成_第10张图片
    10
  • 最后一步,将Xcode客户端ProvisioningProfiles目录下的描述文件拷贝到Xcode Server对应目录下,路径如下:
    Xcode:~/Library/MobileDevice/Provisioning Profiles
    Xcode Server : /Library/Developer/XcodeServer/Provisioning Profiles

4,开始持续集成

  • 点击Integrate运行,结果无误的话如下图:


    XcodeServer持续化集成_第11张图片
    11
  • Build Results 里有Product和Archive两个版本,作用不同。
  • 至此,Xcode Server 初步搭建完成,后续操作例如发布到TestFlight 或者蒲公英、集成CocoaPods等,请参考下面的文档。
    • iOS Xcode Server 持续集成(一)(环境配置)
    • iOS Xcode Server 持续集成(二)ipa包自动上传蒲公英 执行pod install
    • Xcode Server 教程1:入门
    • XcodeServer持续化集成进阶

你可能感兴趣的:(XcodeServer持续化集成)