【问题标题】:TeamCity + Xcode 6 - Run Test action failsTeamCity + Xcode 6 - 运行测试操作失败
【发布时间】:2016-01-05 05:06:24
【问题描述】:

我正在尝试使用 TeamCity 制作一个简单的 Xcode 项目。没有运行任何测试我就成功了。

我有一个基本的 Swift 单视图应用程序,屏幕上有一个标签。 TeamCity (9.0.2) 和 Xcode (6.1.1) 都在安装了 OS X (10.10.2) Server (4.0.3) 的同一台机器 (Mac mini) 上运行。我已经使用 Server 创建了一个 Git 存储库,并将其作为远程添加到我的示例 Xcode 项目中。之后,我成功创建了一个有效的 TeamCity 项目并进行了构建。

但是,当我尝试检查 Run tests 复选标记时,无论我做什么,构建都会失败。

配置(保管箱图片) https://dl.dropboxusercontent.com/u/55101816/Screen%20Shot%202015-03-01%20at%2002.45.48.png

错误消息(以及之前的消息)

[02:31:48][FirstTeamCityProjectTests (BUILD)] Touch
[02:31:48][Touch] Touch build/Debug-iphoneos/FirstTeamCityProjectTests.xctest
[02:31:48][Touch]     cd /Library/TeamCity/buildAgent/work/55b27ad210b8fe77
[02:31:48][Touch]     export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/>    ontents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Server.app/Contents/ServerRoot/usr/bin:/Applications/Server.app/Contents/ServerRoot/usr/sbin"
[02:31:48][Touch]     /usr/bin/touch -c /Library/TeamCity/buildAgent/work/55b27ad210b8fe77/build/Debug-iphoneos/FirstTeamCityProjectTests.xctest
[02:31:48][FirstTeamCityProjectTests (BUILD)] CodeSign
[02:31:48][CodeSign] CodeSign build/Debug-iphoneos/FirstTeamCityProjectTests.xctest
[02:31:48][CodeSign]     cd /Library/TeamCity/buildAgent/work/55b27ad210b8fe77
[02:31:48][CodeSign]     export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
[02:31:48][CodeSign]     export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/    Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Server.app/Contents/ServerRoot/usr/bin:/Applications/Server.app/Contents/ServerRoot/usr/sbin"
[02:31:48][CodeSign] Signing Identity:     "iPhone Developer: *"
[02:31:48][CodeSign]     /usr/bin/codesign --force --sign * /Library/TeamCity/buildAgent/work/55b27ad210b8fe77/build/Debug-iphoneos/FirstTeamCityProjectTests.xctest
[02:31:48][Step 1/1] ** BUILD SUCCEEDED **
[02:31:48][Step 1/1] xcodebuild: error: Failed to build workspace FirstTeamCityProject with scheme FirstTeamCityProject.
[02:31:48][Step 1/1]    Reason: Xcode cannot run using the selected device.
[02:31:48][Step 1/1] Process exited with code 70
[02:31:48][Step 1/1] Step Xcode Project failed

我发现这个错误代码和 CI 的主要问题是他们正在尝试使用 ssh 并且没有 GUI 会话。目前我与它使用的同一用户有一个有效的 GUI 会话,所以这应该不是问题。

xcodebuild 命令如下。

/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -workspace FirstTeamCityProject.xcodeproj/project.xcworkspace -scheme FirstTeamCityProject SYMROOT=/Library/TeamCity/buildAgent/work/55b27ad210b8fe77/build OBJROOT=/Library/TeamCity/buildAgent/work/55b27ad210b8fe77/build clean build test

这里缺少的(我想)是一个或多个目的地。 我已经执行了以下命令,它工作得很好。 (打开模拟器,成功退出。)

xcodebuild test -project FirstTeamCityProject.xcodeproj -scheme FirstTeamCityProject -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1'

似乎只有我一个人有这个问题,我没有找到任何其他相关的点击。看这个教程:http://pivotallabs.com/ios-continuous-deployment-teamcity-hockeyapp/,我的问题根本不应该出现。

编辑: 目的地确实不见了,但我不明白为什么。此外,如果我尝试手动添加它,构建会失败。 (我怀疑参数的顺序很重要,但我怎么能在 TeamCity 的其他地方添加这个目的地。)

[01:48:12][Step 1/1] Building project: /Library/TeamCity/buildAgent/work/55b27ad210b8fe77/FirstTeamCityProject.xcodeproj
[01:48:12][Step 1/1] Using Xcode 6.1.1
[01:48:12][Step 1/1] Starting: /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -workspace FirstTeamCityProject.xcodeproj/project.xcworkspace -scheme FirstTeamCityProject SYMROOT=/Library/TeamCity/buildAgent/work/55b27ad210b8fe77/build OBJROOT=/Library/TeamCity/buildAgent/work/55b27ad210b8fe77/build clean build test -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1'
[01:48:12][Step 1/1] in directory: /Library/TeamCity/buildAgent/work/55b27ad210b8fe77
[01:48:12][Step 1/1] xcodebuild: error: option 'Destination' requires at least one parameter of the form 'key=value'

感谢您的任何想法!提前致谢!

【问题讨论】:

  • 我很困惑。您似乎已经在您的问题中回答了您自己的问题:“这里缺少什么......是一个或多个目的地。我已经执行了以下命令,它工作得很好。” ... 那么问题是什么?
  • 我对 TeamCity 不太熟悉,从你写的内容来看,显然 -destination 标志不见了。如果这有帮助,这里是 Bitrise.io 的 Xcode 构建步骤的代码 [免责声明:CTO],它也可以运行单元测试:github.com/bitrise-io/steps-xcode-builder/blob/master/step.sh - 你可以在 bitrise.io 上尝试一下,我们有一个始终免费的订阅计划。跨度>
  • @JeremyHuddlestonSequoia 对不起,我刚刚更新了我的问题。
  • @ViktorBenei 谢谢!我去看看。

标签: ios xcode testing continuous-integration teamcity


【解决方案1】:

在团队城市中,当您配置“Xcode 项目”构建步骤时, 在“其他命令行参数”中添加目标参数 输入框如下:

"-destination" "platform=iOS Simulator,name=iPhone 6,OS=8.4"

注意引号

为我解决了这个问题(我在 TeamCity Professional 9.1.5(内部版本 37377)上进行了检查)。

【讨论】:

  • 为我工作,非常感谢!
  • 在这里也工作过 - v 2017.1.3(内部版本 46961)
  • 谢谢,它成功了。干得好 TeamCity,花了大约一个小时试图找出正确的引号。
  • 天才!感谢分享。 :)
【解决方案2】:

请参阅How to start TeamCity Build Agent on Mac OS on a user logon 以使其能够运行 GUI 应用程序(另请参阅 Yosemite OS 的说明)。

【讨论】:

  • 我尝试了建议的解决方法(以及它的许多变体),直接启动了 buildAgent(和所有东西)。同样的错误。
  • 虽然我遇到了一些不同的问题,但这解决了我的问题。基本上,在我们的 TeamCity buildagent 上更新到 OSX 10.10 的效果是 buildAgent 无法与 UI 交互,因此无法执行我们的单元测试。在上面的链接中为 Yosemity 建议的修复确实解决了问题:)
  • @farkasseb 我们在 TeamCity 9.0.4 之前发现了一个错误。我们更新了文档中的Automatic Agent Start under MacOSx 部分。请尝试建议的解决方法。
  • @AlinaMishina 谢谢!我终于可以检查您建议的解决方案。现在我将 buildAgent 作为 LaunchAgent 自动启动,它工作得很好。
  • @AlinaMishina 但是我的其他问题仍然存在。正如 JeremyHuddlestonSequoia 指出的那样,缺少一个目的地。如果我将 -destination "platform=iOS Simulator,OS=8.3,name=iPhone 6" 添加到“其他命令行参数”,则构建将成功。所以在我看来,TeamCity 的 Xcode Project 插件在启用“运行测试”选项后缺少指定目的地的选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-29
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-14
  • 1970-01-01
相关资源
最近更新 更多