XCode:4.6 Lion:10.8 IOS 6.1 error: SBTarget is invalid ,如何解决?
6 回答
经过数百次测试,我找到了一种可以帮助程序运行的方法,这里是:
- 当你第一次遇到SBTarget 无效时,选择
Product --> Clean
- 再次运行,这一次你也可能报错:SBTarget is invalid,没关系。
- 完全关闭 XCode,“完全”意味着 Xcode 图标不应出现在 Dock 中。
- 双击你的项目文件(xxx.xcodeproj,蓝色的)启动Xcode,再次运行。(
Do not Clean this time
),运行正常。
让我知道这是否可以帮助您或您有任何其他方法。谢谢
我在将 Facebook SDK 合并到我的应用程序时遇到了这个问题。该错误将在 SBTarget 无效和告诉我我的架构与我的设备不兼容之间交替出现,因此它不会启动。如果我遵循 alexqinbj 的建议,它会运行该应用程序一次,但随后会再次出现相同的错误。我尝试弄乱体系结构和构建设置并删除派生数据,但最终它实际上只是我文件结构中的重复文件。Facebook 告诉我添加他们的 SDK,然后添加一个文件夹(SDK 文件已经包含)。一旦我看到这只是删除重复文件的问题。我听说重复的 plist 也会发生此错误。祝你好运
事实上,根本原因(在 Facebook 集成中)是 Facebook SDK 中的重复资源(根据他们的说明)。当我删除资源文件(仅删除引用)时,这个问题就永久消失了。不知道为什么 Facebook 说明会要求您将资源包拖到您刚刚引入的 Facebook SDK 框架中...
TARGETS -> Build Phases
info.plist
,从中删除Copy Bundle Resources
。清洁并运行。这个对我有用。
不幸的是,接受的答案对我不起作用。我可以 100% 确定地引发这个错误。这不一定是 XCode 的内部一致性问题,可以通过清理、重新启动和重建来解决。
SBTarget is Invalid 是一个内部 XCode 错误。当附加调试器并且 XCode 项目中指定的体系结构与二进制文件不匹配时,会发生这种情况。
在 OS X 上,您可以通过转到硬盘驱动器上的二进制文件并键入以下内容来诊断此问题:
lipo -info <bin>
然后将其与构建设置 ARCH 和 ONLY_ACTIVE_ARCH 进行比较。他们必须匹配。ARCH 成为二进制文件中包含的可能架构的子集是不够的。
他们可能不匹配的原因有很多。以下是一些建议:
- 您正在使用外部构建方案。因此 XCode 并没有规定二进制文件的内容。构建设置只是告诉 XCode 在启动 GDB 或 LLDB 时会发生什么。
- 方案中为启动指定的可执行文件不正确。如果找不到可执行文件,则体系结构将不存在。
在我的情况下,这个错误有一个非常明显的原因。每当 Xcode 的“构建设置”中的“扩展 Info.plist 文件中的构建设置”设置为“否”时,就会出现此消息。将 rdar 提交给 Apple。