Xcode 4:构建失败,没有问题

时间:2011-03-19 17:21:43

标签: ios xcode build xcode4

该应用程序在模拟器中正常运行,构建和运行。

当我连接我的设备(运行iOS 4.3的iPhone 3GS)并以iPhone为目标时,结果为“Build failed”,并显示“No issues”。

查看构建结果窗口,一切都是绿色的,带有复选标记,包括构建失败通知

扩展成绩单显示没有错误。

我不能排除签名或配置错误的可能性,但它给了我那些错误,我解雇了它们,现在它没有给我任何错误或问题,只是“构建失败;没有问题”

  • 构建失败的哪些方面没有问题?
  • 有没有办法可以观看构建输出,看看我是否能找到它没有问题的原因?
  • 是否在问题列表之外生成了构建输出?
  • 我没有在构建窗口中看到它试图将应用程序加载到我的设备上 - 这是其他地方的输出吗?

44 个答案:

答案 0 :(得分:76)

我一直在“建立失败”这个问题。在“问题”导航器中没有错误(仅警告)。但报告导航器正确显示错误。

答案 1 :(得分:33)

您是否正在使用“下划线”和“空间”等捆绑标识符?

你在其中一个进口中使用.m而不是.h吗? #import“Photo.h”

答案 2 :(得分:21)

我要尝试的第一件事就是清理所有东西(菜单产品/清洁)并再次构建它。你可能已经尝试过了。

您可以在Log Navigator中找到(并且可以在构建期间观察)完整的构建输出。这是“运行”和“构建”按钮正下方小图标的最右侧图标。

构建(和调试)日志文件位于/ Users / you / Library / Developer / XCode / DerviedData / YourProject-abcdefg / Logs / Build(和../Debug)目录中。

我认为您的应用在设备上安装没有任何输出。

答案 3 :(得分:19)

目标公司的产品名称中是否有空格?

我知道在Xcode的早期版本中这没有问题,但似乎他们在Xcode 4中破坏了某些东西,因此它不再起作用(我怀疑它与DerivedData路径无意义有关)。您可以通过将CFBundleDisplayName中的Info.plist键设置为${PRODUCT_NAME}以外的其他内容,在iDevice的启动板上显示应用名称的空格。

答案 4 :(得分:13)

在当地的Cocoa Heads邮件列表中,我被鼓励尝试一个小的默认示例项目 - 我应该在开始时做些事情,以确保我的配置和签名工作。它在我的设备上构建并运行没有问题,因此所有迹象都表明我的代码或项目存在问题。

我将把现有项目中的东西扔进新的示例项目中,如果它以类似的方式失败,我应该能够将问题缩小到更小的感兴趣区域。


我已将应用程序的主要功能添加到新项目中,并且运行正常。这次我做的唯一不同的事情是我没有设置通用二进制文件(目前只有iPhone)并且除了纵向方向外都关闭了。据我所知,其他一切都是一样的,但如果我决定稍后再研究一下,我会对项目文件进行区分,看看还有什么不同。

因此,我的解决方案是启动一个新项目,将旧项目的所有功能都移植到新项目中。

正如保罗在另一个答案中建议的那样,重建目标可能会修复它,但是这样一个简单的项目从头开始重新启动对我来说很容易。

答案 5 :(得分:7)

删除未使用的目标后发生了这种情况。似乎Xcode在我剩下的目标的CFBundleIdentifier(com.company.etc)中放了一个空格。我不得不用外部文本编辑器编辑Info.plist以删除它,然后它工作正常。

答案 6 :(得分:7)

我只是在工作区内添加多个项目并遇到了这个问题。我在其中一个项目中有一个简单的库,我正在构建,我添加了一个基于iOS窗口的目标来测试它。我删除了我为此重命名的第一个目标。阅读本文后,我尝试从.xcodeproj包中删除xcuserdata ,这解决了我的问题。我希望这有助于其他人。在OS X 10.7.1上运行Xcode 4.1。

答案 7 :(得分:7)

在完成所有这些答案之后,我遇到了完全相同的问题,但不同的东西为我解决了这个问题。

问题:

重构后构建失败而没有问题。 (使用编辑重命名了一个类 - >重构 - >重命名)。

永远 Dumbest 解决方案:

去重构(重命名)别的东西(-_-“)。这样做之后,错误是Xcode无法重命名所有适当的文件,并且没有显示错误。然后,在另一个重构之后,来自的错误先前的重构出现了。

答案 8 :(得分:7)

我遇到了同样的问题,并且像其他人一样建议它与捆绑标识符有关。我最近更改了它,作为测试,并在其中加了一个星号。我修好了,不得不清理目标,然后就可以了。

答案 9 :(得分:6)

我有同样的问题。我试图修复它的xcode崩溃。我重新打开它,它运作得很好。也许我很幸运或者什么?无论如何,只要它现在有效,我真的不在乎它有什么问题

答案 10 :(得分:6)

以上解决方案对我不起作用。

我的解决方案是将项目移动到另一个文件夹。

然后,构建错误就像通常那样出现。

答案 11 :(得分:6)

对我来说,构建失败而没有在Issue Navigator中显示任何错误。但是,在Log Navigator中,在该构建会话中,我可以看到错误。就我而言,错误是一个未声明的常量。我导入了所需的头文件,问题得到了解决。我不确定,为什么这个错误没有出现在问题导航器中。

我试图通过故意更改另一个变量的名称来重现此行为。这次,错误显示在“问题导航器”中。所以,我仍然不确定为什么早期的错误不会出现在问题导航器中。

希望这有帮助。

答案 12 :(得分:6)

如果您更改了包标识符并清除了项目,但它也无效,请尝试清空/ Users / YOUR_USERNAME / Library / Developer / Xcode / DerivedData目录。

它对我有用。

答案 13 :(得分:4)

我知道问题是什么: 在Info.plist中 - >捆绑标识符:您不能使用'_'。 例如,com.mycompany.My_app无效,但com.mycompany.My-app确定。

答案 14 :(得分:4)

您是否清理了构建文件夹?转到产品菜单,按住Option键,然后选择“Clean Build Folder ...”

答案 15 :(得分:3)

在构建设备时,此处存在同样的问题。构建失败,但我的日志都是绿色选中标记。清除/删除构建文件夹无法修复它。我在别处读到有人通过删除并重新创建目标来解决这个问题,但我还没有完全弄清楚如何在XCode 4中做到这一点。


我的临时解决方案是下载并安装带有iOS 4.3的XCode 3.2.6。我没有意识到Apple还发布了包含iOS 4.3的XCode 3版本,允许你将升级推迟到XCode 4.我向Apple提交了一个关于Build Failed问题的bug报告。


来自Apple的udpate:

  

当我们构建这个项目时 - 尽管是在Xcode 4.0之后的版本 - 我们在构建日志的ProcessProductPackaging步骤中看到以下内容:

     

(null):错误:CFBundleIdentifier'com.yourcompany.Magic_Carpet'包含非法字符'_'无效的包标识符'com.yourcompany.Magic_Carpet'

     

ProcessProductPackaging代码最近才进行了大修,因此我们怀疑它在Xcode 4.0中没有正确发出错误。看一下你自己构建的成绩单,如果有的话,那么这很可能会在未来的Xcode版本中修复(我们不能再发表评论,直到修复发布)。

我从下划线切换到短划线,它解决了问题。

答案 16 :(得分:3)

我也有这个问题,但原因不同:

我有一个工作区,里面有一个项目。在这个项目中,我使用了一个框架,它通过将Xcode项目添加到我的项目中而包含在内。我在前缀头文件(.pch)中导入了框架的头文件。这太愚蠢了。

解决方案是从我的前缀头文件中删除框架头文件的#import,并仅在需要的地方添加它。

答案 17 :(得分:3)

我的UnitTest目标发生了这种情况。工作然后停止了。我忘记了我刚刚在文件系统上删除了.h / .m而没有从项目文件中删除它,但是XCode没有报告它。

我通过在命令行上运行项目来解决这个问题,它告诉我错误:

/usr/bin/xcodebuild -target "UnitTest"

在您拥有项目文件的文件夹中运行此命令,并将UnitTest替换为目标 - 或者只是不传入目标以构建默认目标。

答案 18 :(得分:3)

在尝试编译xcode 4中的现有项目时,我遇到了完全相同的问题,并且几乎完成了重新创建项目的痛苦。

然而,在最后的尝试中,我用新创建的一个替换了info.plist文件,其中包括“文档类型”,“url类型”,“导出类型UTI”和“导入类型UTI”的附加标记< / p>

这似乎有效,对我的项目来说是一个非常简单的修复。

答案 19 :(得分:2)

似乎有很多可能的原因导致这个问题。我的结果是那个

我的目标设置为使用不存在的配置文件。

我将项目设置为使用新配置文件,然后删除旧配置文件。没有意识到目标有自己的配置文件设置,仍然设置为旧的(现已删除)配置文件。

答案 20 :(得分:2)

我清除了xcschemes中项目模式中的所有空格,这解决了这个问题。 F *** ing Apple :( AppCode ROCKS!

答案 21 :(得分:2)

同样的事情恰巧发生在我身上。

我从我的Entitlements.plist文件中删除了get-task-allow,留下了一个空的plist。构建设置仍然将Entitlements.plist文件指定为我的Entitlements文件。选择在我的iPhone连接的iOS设备上使用我的Ad-Hoc构建设置运行,并看到此错误中描述的行为。添加get-task-allow会修复它。

答案 22 :(得分:2)

在尝试以上所有内容后再添加另一个答案但没有成功:我不得不重启MacBook,不仅关闭XCode,而且这对我有用。最终,XCode显示了之前未显示的Localizable.strings中的一些错误。

希望有所帮助

答案 23 :(得分:1)

请参阅:http://developer.apple.com/library/ios/#DOCUMENTATION/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html

  

UTI字符集统一类型标识符是Unicode字符串   通常包含ASCII字符集中的字符。然而,   只允许使用ASCII字符的子集。你可以使用   大写和小写的罗马字母(A-Z,a-z),数字0   通过9,点(“。”)和连字符(“ - ”)。这个限制是   基于DNS名称限制,在RFC 1035中规定。

     

统一类型标识符也可以包含任何Unicode   字符大于U + 007F。

     

重要提示:UTI字符串中出现的任何非法字符   例如,下划线(“_”),冒号(“:”)或空格(“”) - 将导致   要作为无效UTI拒绝的字符串。在API层,没有错误   为无效的UTI生成。

答案 24 :(得分:1)

转到xcode中的Organizer。在“项目”选项卡中,删除该项目。让xcode重建导出的数据再次修复我的问题。

答案 25 :(得分:1)

我对捆绑包的名称没有任何问题,因此建议的解决方案对我不起作用。最后,我为构建设置了Do not code sign,然后我关闭了项目,然后在组织器中删除了配置,然后下载了新的配置并将其添加到组织者,然后将它们设置为构建。它奏效了。

答案 26 :(得分:1)

我遇到了类似的问题。无法在任何地方找到错误。删除了我的所有配置文件并添加了新配置文件。

然后我尝试在我的设备上构建另一个测试应用程序,并收到此错误消息:

代码签名错误:证书身份'iPhone Developer:xxxxxx'在钥匙串中出现不止一次。代码签名工具只需要一个。

所以我进入了Keychain,找到了几个同名的过期证书,并删除了它们,这就行了。

非常随意,但也许如果你尝试像我一样在设备上构建另一个应用程序,你可能会很幸运地收到错误消息,就像我一样,帮助诊断问题。

答案 27 :(得分:1)

我在XCode4.5中遇到了类似的问题,在处理我的应用程序时,XCode突然崩溃了。

搜索了几个小时后,我发现我的应用程序中的一个文件在xcode崩溃时被删除了。

我从“已删除邮件”中恢复了该文件,问题已得到解决。

答案 28 :(得分:1)

我正在编写Mac OS X应用程序而没有代码签名。当我在“权利”部分启用沙盒时,代码签名自动启用,我无法进行新构建。

答案 29 :(得分:1)

就我而言,原因是我的本地化字符串之一最终没有;: 因此,最终没有"You’ve already passed the test" = "Тест по этому слову уже пройден"的{​​{1}}会导致构建失败而没有任何问题。

答案 30 :(得分:1)

这不是技术性答案,而是“用户错误”答案可能不适用于您的情况。它发生在我身上,我的搜索引导我到这个Q&amp; A无济于事 - 直到我意识到我的错误。我在问题导航器中设置了一个过滤器,它与报告的任何问题都不匹配。当我清除过滤器时,显示了问题。

请注意,症状与您询问的相同,我不知道何时设置该过滤器(必须从其他导航视图继承),因为我不需要在短列表上进行任何过滤。

答案 31 :(得分:1)

检查名称中的空格。 不仅是你的目标名称,还有构建模式。 对我来说,删除空格就可以了。

答案 32 :(得分:0)

对我来说,这是在我添加以下内容后开始发生的:“〜Documents”in:Build Settings - &gt;标题搜索路径。

删除后,调试器再次开始工作。

答案 33 :(得分:0)

对我来说,我按产品检查了隐藏(未列出)的问题 - &gt;分析。 如果分析失败,将列出所有隐藏的错误

答案 34 :(得分:0)

导入该文件问题已解决后,我在未导入的文件中使用了一个

答案 35 :(得分:0)

Xcode 6.1

我的问题是在一个.m文件中留下错误,然后转到另一个并关闭Xcode而不修复第一个.m文件中的错误。在我再次打开Xcode之后,错误没有显示,直到我转到第一个.m文件。然后它出现了没有任何干预。

答案 36 :(得分:0)

对我来说,JSONKit库中有一个弃用版。它正在访问不推荐使用的对象的isa属性,我们必须使用object_setClass()

答案 37 :(得分:0)

我的错误是在main.m文件的第1行意外输入了一封信并意外保存了它。

我不得不失去希望并将我的代码迁移到新项目,直到我在Finder中意外打开了main.m文件。太糟糕了,编译器没有看到错误。

答案 38 :(得分:0)

如果您的Xcode项目包含子项目,请尝试关闭父项目并直接打开子Xcode项目。

我的子项目有错误,但是当我构建子项目的目标时,它没有显示在父项目的错误列表中。但是当我打开单个Xcode项目并构建同一个项目时,出现了错误。

答案 39 :(得分:0)

在我的情况下,这是我的编码编译问题。但是XCODE没有提醒编译错误。

答案 40 :(得分:0)

刚试过这篇文章中的所有内容并没有任何效果。

然后去Apple菜单&gt;软件更新&gt;发现有一个xcode更新。

我还没有安装更新,但只是保持此窗口打开就可以解决问题(当我关闭升级窗口时,问题会重新出现)。

我想这一定有点罕见,但希望它会解决一些问题。

答案 41 :(得分:0)

我发现我错过了一个框架。我使用了MFMailViewController并添加了对

的引用
 MessageUI/MessageUI.h

但是我无意中忘记将它添加到项目中...如果您不知道如何将项目添加到项目中:

双击Project Navigator中的项目名称 - &gt;选择Build Phases - &gt; 展开Link Binary with Libraries选项卡 你会看到一个+和 - 。选择+以添加框架。输入您要添加的名称,当您看到它时,单击它并单击“添加”。

答案 42 :(得分:0)

我遇到了同样的问题,我通过添加用于前缀文件中定义的宏的缺失包含来修复它。

我在前缀文件中定义了这个宏:

#define ApplicationDelegate ((tdAppDelegate *)[UIApplication sharedApplication].delegate)

但在我使用的文件中我忘了包含文件“tdAppDelegate.h”;)

答案 43 :(得分:0)

我遇到了类似的问题,解决方法是删除项目名称的驼峰案例命名。