Xcode - 错误:无法打开可执行文件......如何修复?

11

我准备使用应用上传器提交我的第一个 iPhone 应用程序。我认为我需要在 Xcode 中选择 Product: Archive 来创建文件,但当我这样做时,我收到了以下错误信息:

错误:无法打开可执行文件 '/Users/Library/Developer/Xcode/DerivedData/test-euevazxsqeehnwantvxjhqwkytxr/ArchiveIntermediates/test/InstallationBuildProductsLocation/Applications/test.app/test'

该应用程序在我的手机和模拟器上构建和运行良好,所以请问如何解决此问题?谢谢。

8个回答

13

如果您在代码中的某个地方包含了 .m 文件而不是 .h 文件,也可能会出现此错误。


哇,非常准确。我还在想为什么Xcode没有对这种问题进行检查。至少应该有一个提示说“嘿,你正在包含一个.m文件而不是.h文件。这可能是错误的。” - Miro Markaravanes

9
“Product>Clean” 和 “Product>Clean Build Folder”(按住选项键才会出现)。(如果还是有问题),退出Xcode并重新打开,一切都应该没问题。如果仍然有问题,请进入组织器,选择项目,找到“Test”并删除其DerivedData文件夹(重要提示:不是快照)。

你确定在编译应用程序之前已经构建了你的iPhoneGapLib库吗?听起来好像你有两个目标 - 一个是库,一个是完成的应用程序。 - jrtc27
非常抱歉(并感到有点无助!),但我不确定你的意思是什么 - 我该如何确认? - StuartB
产品:管理方案显示一个名为“test”的方案。这是您需要的吗? - StuartB
2
我猜他晚上忙了起来。该死。 - Vinay W
这是相当久以前的事了... 如果你需要帮助,请自己发布一个问题。 - jrtc27
显示剩余3条评论

2

这个错误是由于在命名类并使用 @synthesize 生成其属性的 getter 和 setter 时出现了一些类级别的问题。它会生成包含 get 和 set 名称的方法,以及属性。可能您有一些包含这些名称的类。找出确切的方法是点击导航器框中的问题导航器。然后点击错误。阅读绿色区域。您将发现您遇到了什么问题。现在删除那个类或任何其他内容。使用不同的名称重新创建它。问题将得到解决。


2
如果您的类的 .m 文件未列在目标的“Build Phases”选项卡下的“Compile Sources”步骤中,则可能会出现此类型的错误。通常情况下,Xcode会为您完成此操作,但有时它会失去方向,您需要手动添加 .m 文件。
类似这样的问题

2
在我的情况下,这是由于一个无效的库引起的(具体来说是旧版的libz)。一旦我从我的框架文件夹中删除了它,并在目标设置的构建阶段中添加了正确的libz库,它就可以正常构建。

1
我曾经遇到过类似的问题,当我尝试更新库文件时不小心移动了它,所以请确保检查您的构建阶段选项卡! - Rembrandt Q. Einstein
1
+1 我也是。我在搞库路径的时候搞乱了 libGoogleAnalytics.a,把它删除然后再添加回去 - et voila! - capikaw

0
今天遇到了同样的问题。
Xcode构建路径可能有点混乱,并且失去了与我的libGoogleAdMobAds.a或我的libGoogleAnalyticsServices.a文件的连接。
删除它们,然后重新导入它们 - 解决了。
希望能帮到你。

0
我不得不在主项目(工作区)中处理所有链接器标志,并仅在依赖项中留下它们。

//:配置=调试 OTHER_LDFLAGS = -ObjC -M -all_load

//:配置=发布 OTHER_LDFLAGS = -ObjC -M -all_load

//:completeSettings = some OTHER_LDFLAGS


0
如果项目中有任何符号重复,您将会得到此错误。大多数链接器会发出“重复符号”错误,并告诉您符号的名称以及出现问题的文件,但这并不太符合苹果的风格。
当链接器无法打开文件时,谁知道他们会发出什么错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接