4

当我试图归档一个构建时,xcode 挂着五颜六色的死亡旋转轮。它曾经工作得很好,但我不能再浏览存档了,除非我手动删除存档文件。不过,我可以毫无问题地构建设备。我手动删除了存档中的所有内容(通过删除实际的存档文件),存档/管理器窗格显示正常,因为其中没有任何内容(因为我删除了存档)。但是当我再次尝试存档时,它会构建,然后尝试再次打开存档/组织器窗口,然后挂起。它生成的存档文件虽然是大约 30 兆的存档文件......但我害怕使用它..

当死亡之轮在旋转时,打开“活动监视器”会显示以下内容:“xcodebuild”的 CPU 使用率约为 80%,“opendirectoryd”的 CPU 使用率约为 30%。

我在 Lion 上卸载并重新安装了 XCode 4.3.2,但没有任何结果。

我也在从 Unity3D 构建项目..

有人在另一个线程中提到了以下内容:“我遇到了类似的问题,我发现我所做的符号链接是从 /Developer/usr/bin 到 /usr/bin 的问题的原因(因为 Xcode 4.3 移动了一些执行人员) "

我没有这样的事情发生。并且将所有类移动到一个新的“项目”并没有帮助,因为每次我在 Unity 中构建时,该项目都是全新的。

XCode 4.3.2 Mac OS X (10.7.3)

任何想法或建议都会对我很有帮助。什么都可以。谢谢。

4

1 回答 1

5

快速解决方案:执行以下命令:xcode-select -switch /Applications/Xcode.app/Contents/Developer/

我是如何找到解决方案的:

打开 opendirectoryd 调试日志:“odutil set log debug”

在 /var/logs/opendirectoryd.log 文件中搜索。

我不断看到这块日志一遍又一遍地发送垃圾邮件:


2012-04-12 11:29:28.420 CDT - 31053.1185984,模块:SystemCache - 用于更多工作的信号量

2012-04-12 11:29:28.420 CDT - 31053.1185984,模块:SystemCache - 完成响应对象 0x7fae5b21acb0,请求完成

2012-04-12 11:29:28.420 CDT - 31053 - 客户端:“xcodebuild”,以 0 个会话、0 个节点和 0 个活动请求退出

2012-04-12 11:29:28.421 CDT - 触发器 - 新节点触发器监视 'opendirectoryd:nodes;(register|unregister);.*'

2012-04-12 11:29:28.421 CDT - semaphore_wait 将等待 - 会员呼叫的最大数量已经在飞行中

2012-04-12 11:29:28.421 CDT - 31053.1185985,模块:SystemCache - 客户端:xcodebuild,UID:501,EUID:501,GID:20,EGID:20

2012-04-12 11:29:28.421 CDT - 31053.1185985,模块:SystemCache - 添加到全局请求列表 - 新计数 1

2012-04-12 11:29:28.421 CDT - 31053.1185985,模块:SystemCache - mbr_identifier_to_uuid 请求,UID:501

2012-04-12 11:29:28.421 CDT - 31053.1185985,模块:SystemCache - semaphore_wait 将等待 - max_active_work

2012-04-12 11:29:28.421 CDT - 31053.1185985,模块:SystemCache - semaphore_wait 将等待 - workq

2012-04-12 11:29:28.421 CDT - 31053.1185985,模块:SystemCache - 提交到管道

2012-04-12 11:29:28.421 CDT - 31053.1185985,模块:SystemCache - 执行请求管道

2012-04-12 11:29:28.421 CDT - 31053.1185985,模块:SystemCache - 缓存命中 - dev14 (0x59574CC0)

2012-04-12 11:29:28.421 CDT - 31053.1185985,模块:SystemCache - 提交到响应管道

2012-04-12 11:29:28.421 CDT - 31053.1185985,模块:SystemCache - 执行响应管道 - 0x10ba2f670

2012-04-12 11:29:28.421 CDT - 31053.1185985,模块:SystemCache - mbr_identifier_to_uuid 完成,交付 1 个结果

2012-04-12 11:29:28.421 CDT - 31053.1185985,模块:SystemCache - 从全局请求列表中删除

2012-04-12 11:29:28.421 CDT - 31053.1185985,模块:SystemCache - 用于更多工作的信号量

2012-04-12 11:29:28.421 CDT - 31053.1185985,模块:SystemCache - 完成响应对象 0x10ba2f670,请求完成

2012-04-12 11:29:28.421 CDT - 31053 - 客户端:“xcodebuild”,以 0 个会话、0 个节点和 0 个活动请求退出

2012-04-12 11:29:28.422 CDT - 触发器 - 新节点触发器监视 'opendirectoryd:nodes;(register|unregister);.*'

2012-04-12 11:29:28.422 CDT - semaphore_wait 将等待 - 会员呼叫的最大数量已经在飞行中

2012-04-12 11:29:28.422 CDT - 31053.1185986,模块:SystemCache - 客户端:xcodebuild,UID:501,EUID:501,GID:20,EGID:20

2012-04-12 11:29:28.422 CDT - 31053.1185986,模块:SystemCache - 添加到全局请求列表 - 新计数 1

2012-04-12 11:29:28.422 CDT - 31053.1185986,模块:SystemCache - mbr_identifier_to_uuid 请求,UID:501

2012-04-12 11:29:28.422 CDT - 31053.1185986,模块:SystemCache - semaphore_wait 将等待 - max_active_work

2012-04-12 11:29:28.422 CDT - 31053.1185986,模块:SystemCache - semaphore_wait 将等待 - workq

我在 google 中搜索了这些字符串之一,并在苹果的开发者论坛上找到了以下隐藏的解决方案:

“似乎旧的 xcodebuild 命令被新的 Xcode 安装程序留下了。在执行 'xcode-select -switch /Applications/Xcode.app/Contents/Developer/' 和 'make clean' 后,项目完美构建。”

确实,它现在有效。一定是一些不正确的奇怪符号链接。许多其他人似乎对 opendirectoryd 和损坏的符号链接有问题,导致 CPU 大幅飙升。

于 2012-04-12T16:40:56.283 回答