Jenkins 是否支持 Xcode 集成

Does Jenkins support Xcode integration

有人在 Xcode 中使用过 Jenkins 进行代码管理和自动化部署吗?如果是,如何整合?自动化部署如何与 Jenkins 一起工作?经历了 documentation 但没有太多想法。
我经历了 Jenkins plugins for iOS 但不清楚我们是否可以使用任何插件将构建发布到 AppStore。

我们正在使用 Jenkins 服务器进行持续集成,方法是在 Jenkins 被提交到此存储库触发时从 SVN 服务器获取源代码。

但是,说真的,我不推荐 jenkins...我宁愿使用 xcode server/bots 来摆脱 jenkins 的所有麻烦...

fastlane 是供 iOS 和 Android 开发人员自动执行繁琐任务的工具,例如生成屏幕截图、处理配置文件和发布应用程序。 https://github.com/fastlane/fastlane

xctool 是 Apple 的 xcodebuild 的替代品,可以更轻松地测试 iOS 和 Mac 产品。它对持续集成特别有帮助。 https://github.com/facebook/xctool

"Jenkins in Xcode for code management" 这个词似乎不完全正确。因为 Jenkins 服务器适用于 CI,我们在其中配置它(创建一个作业)将从您的存储库(SVN,GIT)获取源代码,然后编译它并 运行,可能会执行您的单元测试、UI 自动化测试或代码覆盖工具。

根据您的日程安排,Jenkins 服务器将自动开始其工作或在您的存储库发生更改时触发(例如任何人提交代码)。

您在Xcode中提到的工具可能是XCode Bots,内置CI工具。 为了设置,首先,您必须安装和配置 XCode 服务器。之后,将您的服务器与您的存储库连接起来。其次,使用您的自定义配置和 运行 创建一个机器人。

在我看来,就 Jenkins 和 Xcode 比较而言,我认为这取决于您要为 CI 服务器设置哪些工具或插件功能。 Jenkins 有许多插件可能会有帮助,比如检查样式、测量代码覆盖率,而 Xcode 机器人仍然有一些限制。 本文档 https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/ 供您进一步参考。

希望对您有所帮助。

有一个gem叫做xcpretty,你可以用它输出JUnit格式的测试结果,然后用Jenkins JUnit Plugin显示结果。

  • 安装 xcpretty
    gem install xcpretty
  • 使用xcpretty创建junit格式xml文件
    xcodebuild test ... | xcpretty --report junit --output [path_to_save]/unit_test_result.xml
  • 然后这个unit_test_result.xml可以被Jenkins JUnit Plugin用来报告