Xcode正确构建应用程序,但无法启动?

时间:2014-11-04 22:13:41

标签: swift xcode macos compilation

我用Xcode 6.1运行10.10。

我在找到上班的应用时遇到了麻烦。经过几个小时和几个小时后,我终于在意外弄乱了一些东西后正确地构建了它,但现在我收到错误我没有权限查看该文件(如果我直接在Xcode中打开)或者我是尝试从Finder打开它,它说应用程序已损坏或损坏,无法打开。如果它很重要,那就是用Swift写的。

我真的花了6个小时就完成了这件事(只是想把它建成)所以任何帮助都会非常感激!奥斯汀

如果有人需要查看,请访问Xcode工作区,项目,文件和构建:http://pattersoncode.ca/ServerChecker.zip

1 个答案:

答案 0 :(得分:0)

这里有几个问题。我无法帮助你们所有人,但至少可以让你走上正确的道路。

该应用无法启动,因为它未正确构建。具体来说,在构建的.app中没有任何实际的二进制可执行文件。您可以通过右键点击已构建的Server Checker.app并选择Show Package Contents来查看此内容。在那里有一个Contents文件夹;打开那个。里面应该是一个名为MacOS的文件夹,其中你的实际二进制可执行文件将是。但它不在那里。这根本不是一个应用程序。

原因是,你有一个swift文件的自定义构建规则,这使得它们根本不能编译。只需删除它,你就不需要它了。

在Xcode中,单击项目的顶级项目(它表示类似ServerChecker,1个目标,OS X SDK 10.10)。然后,在TARGETS下,选择ServerChecker。单击构建规则。 “我们不需要使用脚本的Swift源文件”。单击右上角的小X,然后在出现提示时单击“删除”。现在再试一次。

你会收到错误:

Undefined symbols for architecture x86_64:
  "_main", referenced from:
     implicit entry/start for main executable

由于您没有main.swift文件,因此您的应用程序没有主入口点。在Swift中,您必须提供NSApplicationMain函数(通常在main.swift中),或者您可以将您的app委托声明为NSApplicationMain,它具有使用您的委托类调用NSApplicationMain的效果。我推荐后者。

打开AppDelegate.swift,并将@NSApplicationMain添加到AppDelegate类。它应该看起来像:

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
...
}

现在你的应用应该再次构建。右键单击它并Show Package Contents以验证其中是否存在可执行二进制文件。

该应用仍然无法运行。看起来在启动时出现了无法加载库的错误。

希望无论如何都可以让你感动。我现在真的需要重新开始工作。 :)

相关问题