列表命令在xcode中挂起

时间:2014-11-12 12:56:30

标签: ios iphone xcode jenkins-plugins

我正在使用Jenkins Xcode插件(https://wiki.jenkins-ci.org/display/JENKINS/Xcode+Plugin)来构建iOS应用程序,但是当我从另一个开发人员继承的项目上运行以下命令时它会挂起:

$ /usr/bin/xcodebuild -list    

当我从终端手动运行此命令时,它也会挂起。有谁知道原因可能是什么?显示的警告也显示在我拥有的另一个项目上,但在这种情况下它不会挂起。

在OS X 10.10上运行Xcode 6.1

$ /usr/bin/xcodebuild -list
2014-11-12 04:47:21.234 xcodebuild[42642:1431240] [MT] DVTAssertions: Warning in /SourceCache/IDEFrameworks/IDEFrameworks-6604/IDEFoundation/SourceControl/Model/IDESourceControlManager.m:423
Details:  Error Domain=com.apple.dt.IDESourceControlErrorDomain Code=-1 "Missing extension: public.vcs.subversion" UserInfo=0x7f9792309200 {NSLocalizedDescription=Missing extension: public.vcs.subversion}
Object:   <IDESourceControlManager: 0x7f9792302860>
Method:   -loadRepositories
Thread:   <NSThread: 0x7f9790d2dbe0>{number = 1, name = main}
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide.
Information about project "DOHSmokefree":
Targets:
    DOHSmokefree
    DOHSmokefreeTests

Build Configurations:
    Debug
    Release

If no build configuration is specified and -scheme is not passed then "Release" is used.

3 个答案:

答案 0 :(得分:4)

TLDR;我的解决方案:将方案标记为在XCode中共享,如果从命令行以不同的用户身份构建它们,或者在构建计算机上没有打开XCode。

我在CI服务器上间歇性地遇到了同样的问题。我遇到了这个问题。问题和修复SVN版本的接受答案对我不起作用,因为在CI服务器上使用的SVN是默认的SVN,如上所述,间歇性地工作。

我最终注意到,在工作版本和非工作版本之间,这些方案没有列出。我最近在项目上升级了一个库,这让我想到了这些方案。在意识到每个用户本地存储方案之后,除非共享,否则对我的修复是进入方案管理器并将方案标记为共享。

问题显然是CI服务器用户从未在Xcode中实际打开过项目,从而导致list命令挂起,因为没有可供用户构建的方案。

间歇性工作的次数是次数,以CI服务器用户身份登录后,我在Xcode中打开了项目来测试构建过程,从而创建了必要的方案。擦除CI服务器或重构/添加方案会导致构建中断,直到在绝望的Xcode中重新打开项目。

答案 1 :(得分:3)

在更新到Xcode 6.1时,在命令行上使用较新版本的subversion时,我遇到了类似的问题。 在Xcode首选项中禁用源代码管理应该可以解决问题。

如果这不是一个选项,您可以尝试使用此技术替换Xcode中的subversion实现:Use SVN 1.7 in XCode 4.3+

基本上,这将是以下步骤:

这假设您已经在/ opt / subversion中安装了SVN 1.7,您可以从WANdisco获取它:http://www.wandisco.com/subversion/download#osx

现在打开终端并使用sudo -s获取升级的shell。

然后,cd到XCode.app包内,到SVN二进制文件所在的位置。

制作备份目录并将旧的SVN文件移入其中

bash-3.2# mkdir bup
bash-3.2# mv svn* bup/

最后,象征性地将新文件链接到包中:

bash-3.2# ln -s /opt/subversion/bin/svn* ./

就是这样!

答案 2 :(得分:0)

我在使用XCode 6.4的OS X 10.10上遇到了同样的问题,只是关闭了XCode的源代码控制来解决这个问题:

  1. 运行XCode
  2. 打开菜单:XCode - &gt;偏好......
  3. 点击&#34;源代码管理&#34;选中并取消选中&#34;启用源代码管理&#34;