Xcode 错误地声称 CFBundleExecutable 为 (null)
Posted
技术标签:
【中文标题】Xcode 错误地声称 CFBundleExecutable 为 (null)【英文标题】:Xcode falsely claims CFBundleExecutable to be (null) 【发布时间】:2009-11-12 17:53:33 【问题描述】:我正在尝试为 iPhone 应用程序创建一个临时版本以进行 beta 测试。
最后,他们看到如下错误:
“xxx处应用的info.plist指定了一个(null)的CFBundleExecutable,不存在”
这是实际 info.plist 的摘录:
<key>CFBundleExecutable</key>
<string>$EXECUTABLE_NAME</string>
而且它显然不为空。
我在这里做错了什么?
【问题讨论】:
【参考方案1】:工作解决方案是这个(并且只有这个):
在 Xcode 中,从项目层次结构中选择“可执行文件”。单击您的项目可执行文件,然后按 Command-I。选择“常规”选项卡并将工作目录设置为“构建产品目录”。
通过 BrainwashInc 找到,该公司归功于 MacHackShack。我认为这些有价值的信息太重要了,不能随意散布在博客上。
似乎有时 XCode 可能会翻转此设置,因为我突然开始遇到此问题,并且上面的修复程序修复了它。每次将其更改回“项目目录”都会为我重现该问题。
一旦此修复程序安装了应用程序,我还必须重新启动 XCode 以使调试器工作,这可能是无关的。
【讨论】:
这发生在我身上,在 xcode 没有创建“构建产品目录”的文件权限时尝试构建项目。显然,这至少是可以翻转此设置的一种方式。 你能澄清一下“可执行文件”指的是什么吗?它是 IDE 中某处的菜单项还是面板?我有 XCode 5.1.1,但似乎没有找到这个。 我认为它现在在“产品”下,而不是“可执行文件”下。【参考方案2】:我认为没有一个可行的解决方案。我发现了几个对我不起作用的解决方案。最后,我确实找到了一种解决方案。
通过删除我在 xCode 的“产品”文件夹中的所有内容,我设法让它工作。我正在使用 xCode 3.2.1。
注意:我也对上面的“构建产品目录”进行了更改,也许这两个解决方案都需要实现,由你来尝试。
至少可以说,这很烦人。作为初学者,如果没有 SDK 中的错误,事情就足够复杂了……
希望这会对那里的人有所帮助!
干杯
【讨论】:
同意,每当出现这种情况时,似乎有多种方法可以尝试。【参考方案3】:听起来您正在查看项目中的 info.plist 而不是构建的产品。
项目 info.plist 中的“$EXECUTABLE_NAME”只是构建脚本中变量的占位符。您需要查看构建产品中的 info.plist 以查看其中列出的内容。听起来出于某种原因,构建脚本没有按应有的方式填充该字段。
您实际上可能会检查应用程序包的内容是否确实具有可执行文件。我知道这听起来很奇怪,但几年前我和我的构建设置儿子一起搞砸了一个项目,最终得到了一个没有可执行文件的产品。其他一切,包、资源、字符串文件等都没有实际的程序。
【讨论】:
你说得对,我看错了 plist,但内置产品中的 plist 似乎具有正确的价值。它的值是“X”,我的应用程序的名称是“X.app”,这听起来对我来说是正确的 您的可执行文件名是否偶然包含任何奇怪的字符?【参考方案4】:这是 SDK 的一个已知问题:
从“Build Products directory”更改 iPhone Executable 的工作目录可能会导致应用程序无法正确安装,并显示错误消息“The Info.plist for application at (null) specified a CFBundleExecutable of (null), which does not exist 。”
如您所见: http://developer.apple.com/iphone/library/releasenotes/General/RN-iPhoneSDK-3/index.html
对我来说,它可以更改工作目录。 我创建了手动删除构建目录的问题。
【讨论】:
以上是关于Xcode 错误地声称 CFBundleExecutable 为 (null)的主要内容,如果未能解决你的问题,请参考以下文章
从声称 SDK 12.0 小于 SDK 11 的 xcode 提交 iOS 应用程序的问题