【发布时间】:2019-06-30 22:43:54
【问题描述】:
我正在 Mojave 10.14.5 下的 Xcode 10.1.1 中开发 macOS 应用程序。
当我在 Xcode 调试器中运行我的应用程序时,它可以工作。但是,当我从 Xcode 中拖动应用程序并尝试单独运行它时,它无法正确启动。
问题:Xcode 中的哪些设置会导致独立应用程序与 Xcode 中运行的版本不同地编译或运行?
更多细节:
我的 Swift 编码技能在这一点上非常好,但我仍然是 Xcode 方案、构建设置等方面的初学者。所以自从我上次尝试独立运行(去年 11 月)以来,我可能随机更改了一个重要设置。
我尝试将应用程序从 Xcode 的文件导航“产品”选项卡拖到应用程序文件夹。我还尝试运行 Products > Archive 将文件复制到文件夹,然后将该版本拖到 Applications 文件夹。
两者产生相同的结果:当应用程序运行时,它只显示一个空白窗口。它不会启动我的初始视图控制器。 “关于”菜单等,工作,所以我不认为应用程序挂起......
更多详情: 1) 11 月,我使用 High Sierra 成功地将应用程序从 Xcode 中复制出来以独立运行。这是我第一次尝试在 Mojave 中提取此应用程序。
2) 上周我能够在 Mojave 中将不同(新)应用程序从 Xcode 中拖出而没有问题。
3) 我知道的唯一非默认编译设置将 Swift 语言强制为 4.2 版,因为这个应用程序使用 SwiftSoup Cocoa Pods。
4) 正如我所提到的,该应用在 Xcode 中运行良好。
如果您对如何检查我的环境或如何解决或调试此问题有任何建议,请告诉我。
更新: 当我尝试产品 > 存档时,我注意到我的存档方案设置为发布。我尝试了存档的“发布”和“调试”方案。结果一样。
这个应用程序仅供我个人使用,所以我很乐意在 Xcode 之外运行“调试”可执行文件,如果这比“发布”版本更容易的话。
【问题讨论】:
-
我编辑了我的方案以强制“存档”创建应用程序的“调试”版本,而不是“发布”版本。结果相同,所以我认为这与 Scheme 无关。
-
“当我从 Xcode 中拖动应用程序时”是什么意思?
-
Archive下的方案应该有一个release配置。您应该存档您的项目并将其导出。不要试图将您的应用程序拖到任何地方,它不会工作。尝试阅读有关应用分发的信息。 -
@#l Tomato - 我更新了标题并添加了一张图片来说明这一点。在其他项目中,我可以将应用程序直接拖出 Xcode 的 File Navigator 面板的 Product 部分,以获得“调试”可执行文件。这不适用于某个特定项目。
-
@Tai Cohen - 我同意存档应该导出“发布”版本。我将我的方案更改为“调试”以确定某些编译设置差异(调试编译与发布编译)是否是问题的一部分。我很高兴运行 Debug 可执行文件,因为这个应用程序仅供我个人使用。
标签: swift xcode macos wkwebview