【问题标题】:Building with xcodebuild Timed out waiting for <IDEWorkspace, 0x2004cebc0>/"runContextManager.runContexts"使用 xcodebuild 构建超时等待 <IDEWorkspace, 0x2004cebc0>/"runContextManager.runContexts"
【发布时间】:2011-08-22 23:54:16
【问题描述】:

我正在设置我的 iphone 项目以与 hudson 一起运行,我的构建脚本在本地运行良好,但是在我的雪豹服务器 mac 上执行以下命令时

xcodebuild -sdk iphoneos4.3 -workspace Moments.xcworkspace/ -scheme Moments -configuration DistributionTest

我收到以下错误消息。

从命令行构建设置: SDKROOT = iphoneos4.3

2011-05-11 10:32:17.729 xcodebuild[4151:903] 警告:等待 /"runContextManager.runContexts" 超时(经过 10.010780 秒) xcodebuild:错误:工作区“Moments.xcworkspace/”不包含名为“Moments”的方案。

什么是超时?!为什么它肯定存在时找不到名为 Moments 的方案。如果我在构建服务器上的 xcode 中打开工作区,我可以看到方案。

【问题讨论】:

    标签: iphone osx-snow-leopard xcodebuild


    【解决方案1】:

    选中“管理方案”对话框中的“共享”框会将方案移动到 Project.xcodeproj/xcshareddata/xcschemes/Scheme.xcscheme

    因此,即使您从未通过 xcode ui 打开过干净的结帐,这也可以。我们使用它以便 buildbot 可以构建我们的应用程序

    【讨论】:

    • 哇哦!!!访问此页面的人!!!检查的答案很好,但这个更好!谢谢@David!
    • 一旦您更改了要共享的方案,请务必将以下目录添加到 SVN/git:{Project}.xcodeproj/xcshareddata/*
    【解决方案2】:

    不幸的是,xcodebuild 依赖于 XCode 生成的一些每个用户的文件。要解决此问题,您可以以 hudson 用户身份登录并运行 XCode UI 一次。这将创建必要的文件。

    我目前正在尝试解决此问题,但在构建之前将所需文件复制到源代码树中。

    如果您运行 xcodebuild 并且 XCode 正在后台运行,xcodebuild 将联系 XCode 以获取所需的数据。由于 XCode 没有运行,你会得到超时。

    【讨论】:

    • 仅供参考,下面的答案更可靠,特别是如果您在同一个项目中有多个工作。
    【解决方案3】:

    方案默认情况下不在用户(和您的构建服务器)之间共享。作为David mentions,您可以共享它们,但您也可以只调用共享的目标。

    所以不是

    xcodebuild -scheme Foobar
    

    应该是

    xcodebuild -target Foobar
    

    因为方案通常与目标命名相同。

    【讨论】:

    • 如果我正确理解文档,如果您使用 -workspace 标志,则不能使用 -target 标志。这意味着如果您依赖工作空间,您需要使用方案,并且该问题的解决方案已由 David 和 Cornelius 提供
    猜你喜欢
    • 1970-01-01
    • 2019-07-30
    • 2012-04-19
    • 2012-09-20
    • 1970-01-01
    • 2019-09-20
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多