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

该应用程序在模拟器中正常工作,build立并运行。

当我连接我的设备(运行iOS 4.3的iPhone 3GS)和iPhone的目标,结果是“生成失败”与“没有问题”。

看看构build结果窗口,一切都是绿色的,有一个复选标记, 包括生成失败通知

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

我不能排除签名或供应错误的可能性,但是它给了我这些错误,我把它们解决了,现在它不给我任何错误或问题,只是“构build失败;没有问题”

  • 构build失败的方式是什么?
  • 有没有办法我可以看到构build输出,看看我能find没有问题的失败的原因?
  • 在问题清单之外是否有产出?
  • 我没有看到它的构build窗口,它试图加载到我的设备上的应用程序 – 这是其他地方的输出?

我已经在问题导航器中发现“Build Failed”,没有错误(只有警告)。 但报告导航器正确显示错误。

你是否使用“下划线”和“空格”等等作为Bundle标识符?

你在使用.m而不是.h在你的一个import中? #import“Photo.h”

我想尝试的第一件事是清理所有东西(菜单Product / Clean)并再次构build它。 你可能已经试过了。

您将在日志导航器中find(并且您可以在构build期间观看)完整的构build输出。 这是“运行”和“生成”button下方小图标的最右侧图标。

build(和debug)日志文件可以在/ Users /你/ Library / Developer / XCode / DerviedData / YourProject-abcdefg / Logs / Build(和../Debug)find。

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

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

我知道在Xcode的早期版本,这是没有问题的,但似乎他们破坏了Xcode 4的东西,所以它不再工作(我怀疑这是与DerivedDatapath胡说八道。 您可以通过将Info.plistCFBundleDisplayName键设置为${PRODUCT_NAME}以外的其他名称,为应用程序的名称添加一个空格,使其显示在iDevice的启动板上。

在当地的一个Cocoa Heads邮件列表中,我被鼓励去尝试一个小的默认示例项目 – 我在开始时应该做的事情是确保我的configuration和签名能够正常工作。 它构build并运行在我的设备上没有问题,所以所有迹象都指向我的代码或项目的问题。

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


我已经将应用程序的主要function添加到新项目中,并且运行良好。 我这次做的唯一的事情是我没有设置一个通用的二进制文件(现在只有iPhone),并closures了除了纵向的所有东西。 据我所知,其他所有东西都是一样的,但如果我决定稍后再研究它,我将会区分项目文件,看看还有什么不同。

所以对我来说,解决scheme就是开始一个新项目,将旧项目的所有function移植到新项目中。

保罗在另一个答案中提出的build议可能是重build目标,也可以解决这个问题,但是从头开始的这样一个简单的项目对我来说很容易。

我有同样的问题,并像其他人一样build议它必须使用捆绑标识符。 最近我做了一个testing,并在其中加了一个星号。 我修好了,不得不清理目标,然后运行。

删除一个未使用的目标后,这发生在我身上。 看来,Xcode在我的剩余目标的CFBundleIdentifier(com.company.etc)中放置了一个空间。 我不得不编辑Info.plist与外部文本编辑器删除它,然后它工作正常。

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

经过所有这些答案后,我有完全相同的问题,但不同的东西解决了我。

问题:

重构后没有问题的构build失败。 (使用编辑 – >重构 – >重命名重命名一个类)。

最愚蠢的解决scheme:

去重构(重命名)其他的东西(-_-“)。这样做后,错误是Xcode无法重命名所有适当的文件,并没有显示错误。然后,经过另一个重构,出现以前的重构错误。

我有这个相同的问题。 我试图解决它的Xcode崩溃。 我重新打开它,它工作得很好。 也许我很幸运或什么? 无论如何,只要现在有效,我真的不在乎它有什么问题

如果您更改了捆绑标识符并清理了项目,但它也不起作用,请尝试清空/ Users / YOUR_USERNAME / Library / Developer / Xcode / DerivedData目录。

这个对我有用。

对于我来说,构build失败而不在Issue Navigator中显示任何错误。 但是,在日志导航器的构build会话中,我可以看到错误。 在我的情况下,错误是一个未声明的常量。 我导入了所需的头文件并解决了问题。 我不确定为什么这个错误没有显示在问题导航器中。

我试图通过故意改变另一个variables的名字来重现这种行为。 这一次,问题导航器中显示错误。 所以,我仍然不确定为什么早期的错误不会显示在Issue Navigator中。

希望这可以帮助。

上述解决scheme不适合我。

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

那么构build错误就像通常那样出现。

你有没有清理你的生成文件夹? 转到产品菜单,按住Option键,然后select“清理生成文件夹…”

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

在尝试编译xcode 4中的现有项目时,我遇到了同样的问题,并且几乎经历了重新创build项目的痛苦。

然而,在最后一次尝试中,我用新创build的info.plist文件replace了info.plist文件,其中包括“文档types”,“urltypes”,“导出typesUTI”和“导入typesUTI”

这似乎工作,并为我的项目一个惊人的简单的修复。

这发生在我的UnitTest目标。 正在工作,然后停下来。 我忘记了我只是删除了文件系统上的.h / .m,并没有从项目文件中删除它,但是XCode没有报告它。

我想通过在命令行上运行这个项目来告诉我这个错误:

 /usr/bin/xcodebuild -target "UnitTest" 

在你有你的项目文件的文件夹中运行这个,并用你的目标代替UnitTest – 或者不要传入目标来build立默认目标。

我也有这个问题,但是原因是另外一个:

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

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

这里同样的问题,当build设设备。 生成失败,但我的日志全部是绿色的选中标记。 清理/删除生成文件夹不能解决它。 我在其他地方读过,有人通过删除和重新创build目标来解决这个问题,但是我还没有完全想到如何在XCode 4中做到这一点。


我的临时解决scheme是下载并安装XCode 3.2.6 w / iOS 4.3。 我没有意识到,苹果还发布了包含iOS 4.3的XCode 3版本,允许您推迟升级到XCode 4.我向苹果提交了关于构build失败问题的错误报告。


来自苹果公司的udpate:

当我们构build这个项目时(虽然是在后Xcode 4.0版本上),我们在构build日志的ProcessProductPackaging步骤中看到以下内容:

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

ProcessProductPackaging代码最近得到了一次彻底的检查,所以我们怀疑它只是在Xcode 4.0中没有正确地发出错误。 看看你自己构build的脚本,如果是这样的话,那么这个问题很可能会在Xcode的未来版本中得到解决(我们不能进一步评论,直到修复已经发布)。

我从一个下划线切换到短划线,并解决了这个问题。

同样的事情发生在我身上,原因不同。

我从我的Entitlements.plist文件中删除了get-task-allow,留下一个空plist。 生成设置仍然有Entitlements.plist文件指定为我的权利文件。 select使用iOS设备上的Ad-Hoc构build设置与我的iPhone连接,并看到此错误中描述的行为。 添加get-task-allow修复它。

似乎这个问题有很多可能的原因。 矿是原来的

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

我把我的项目设置为使用一个新的configuration文件,我删除了旧的configuration文件。 没有意识到目标具有自己的configuration文件设置,该设置仍然被设置为旧的(现在被删除的)configuration文件。

只是尝试以上所有的上面没有成功添加另一个答案:我不得不重新启动MacBook,不仅closuresXCode,并为我工作。 最后,XCode在Localizable.strings中显示了一些它以前没有显示的错误。

希望有所帮助

我清除xcschemes中的项目模式中的所有空间,这解决了这个问题。 苹果(AppCode ROCKS!

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

UTI字符集统一types标识符是一个Unicodestring,通常包含ASCII字符集中的字符。 但是,只允许使用ASCII字符的一个子集。 您可以使用大写和小写(A-Z,a-z),数字0到9,点(“。”)和连字符(“ – ”)的罗马字母。 此限制基于RFC 1035中规定的DNS名称限制。

统一types标识符还可以包含任何大于U + 007F的Unicode字符。

重要:出现在UTIstring中的任何非法字符(例如,下划线(“_”),冒号(“:”)或空格(“”))将导致string作为无效的UTI被拒绝。 在API层,无效的UTI不会产生错误。

我对捆绑的名称没有问题,所以build议的解决scheme不适合我。 最后,我已经设置了不为代码签名,然后我closures了项目,然后在组织者中删除了configuration,然后下载了新的configuration并将其添加到组织者,然后将其设置为构build。 有效。

这不是一个技术性的答案,而是一个“用户错误”的答案,可能不适用于你的情况。 它发生在我身上,我的search引导我到这个问答没有用,直到我意识到我的错误。 我在Issue Navigator中设置了一个filter,它与任何被报告的问题都不匹配。 当我清除filter,问题被显示。

注意,症状与您所询问的相同,我不知道何时设置了filter(它必须从其他导航视图inheritance),因为我不需要短列表上的任何过滤。

我刚刚有一个类似的问题。 在任何地方都找不到错误。 删除了我的所有configuration文件并添加了新的configuration文件。

然后,我试着build立另一个testing应用程序到我的设备,我得到这个错误消息:

代码签名错误:证书身份“iPhone开发人员:xxxxxx”在钥匙串中出现多次。 codesign工具要求只有一个。

于是我进入了钥匙链,find了几个同名的过期证书,并删除了它们,这就是诀窍。

相当随意,但也许如果你尝试像我一样build设另一个应用程序的设备,你可能很幸运得到一个错误消息,就像我一样,以帮助诊断问题。

转到xcode中的组织者。 在“项目”选项卡中,删除该项目。 让xcode重新生成派生的数据再次修复我的问题。

我在XCode4.5面临类似的问题,并在我的应用程序工作时,XCode突然崩溃。

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

我从垃圾箱中恢复了该文件,问题得到解决。

我正在编程一个没有代码签名的Mac OS X应用程序。 当我在“授权”部分启用沙箱时,密码自动打开 ,我无法进行新的构build。