如何仅使用快捷键在调试或发布模式下切换正在运行的 Xcode 项目?

Posted

技术标签:

【中文标题】如何仅使用快捷键在调试或发布模式下切换正在运行的 Xcode 项目?【英文标题】:How to toggle running Xcode project in debug or release mode by using only shortcut keys? 【发布时间】:2014-02-20 03:51:58 【问题描述】:

默认情况下,要在发布模式下“运行”我的项目,我需要编辑方案的运行设置以使用“发布”而不是调试。

为了不必每次我想在调试模式和发布模式之间切换时都编辑方案,我创建了一个在发布模式下运行的新方案。但这还是比较繁琐,要切换需要点击相关方案。

有没有一种方法可以仅使用快捷键在调试/发布模式下自动(构建+运行)?

我不想配置文件!因为那会启动仪器等。

编辑:要清楚 - 我总是在设备上运行。

【问题讨论】:

我需要一种在调试和发布模式之间快速切换的方法,最好只使用快捷键。 这让我很困扰。我真的很喜欢 Visual Studio 用于选择要使用的构建配置的下拉菜单。如果我可以将“运行”的默认构建配置更改为“发布”,我的 Xcode 问题将得到解决。 【参考方案1】:

调试构建:“Product”菜单 =>“Build For”=>“Running”(shift-command-R)

发布构建:“产品”菜单 =>“构建”=>“分析”(shift-command-I)

无需构建即可运行(无论您刚刚构建了哪个):“产品”菜单 =>“执行操作”=>“无需构建即可运行”(control-command-R)

【讨论】:

那达不到我的目标。假设我刚刚使用 shift+cmd+r 在我的 ios 设备上运行并安装了二进制文件。然后执行 shift+cmd+i ,然后执行 ctrl+cmd+r,不会将我设备上的调试版本替换为发布版本。我误解你的答案了吗? 否;您从未提及“在我的 iOS 设备上安装二进制文件”。我回答了你提出的问题(关于 Xcode)。 使用“Build for Profiling”后跟“Run without building”在调试模式下运行(不是你构建的那个)。【参考方案2】:

在我的项目中使用它有一种方法。

在 Xcode 中,转到项目设置(项目,而不是目标)并将“beta”配置添加到列表中:

然后你需要创建一个新的方案,它将在“beta”配置中运行项目。要创建方案,请转到此处:

将此方案命名为您想要的任何名称。您应该编辑此方案的设置。为此,请点按此处:

选择存档选项卡,您可以在其中选择Build configuration

然后您需要在项目信息属性列表中添加一个值为$(CONFIGURATION) 的键Config,如下所示:

那么这就是您需要在代码中执行特定于 beta 构建的事情的问题:

let config = Bundle.main.object(forInfoDictionaryKey: "Config") as! String
if config == "Release" 
  // app running in release configuration

else if config == "Beta" 
  // app running in beta configuration

【讨论】:

【参考方案3】:

您在 XCode 中寻找的等价物是“方案”。

播放/停止按钮的右侧,有一个非常方便的方案选择器。您只需要创建一个用于调试的方案和另一个用于分发的方案。

为了制作一个用于调试或分发的方案,只需转到方案配置(选择“编辑方案...”或“新方案...”)并在“运行->”下选择正确的构建配置构建配置”:

注意:我有 XCode 9.1,我不知道这是否适用于旧版本。

【讨论】:

【参考方案4】:

在 XCode 7 中,您可以使用快捷方式在方案之间切换:control-command-right/left 括号(选择下一个方案,选择上一个方案)。所以我认为创建两个方案是你最好的选择。

顺便说一句,每个人都在问为什么要这样做 - 如果你正在编写一段高性能的代码,你会发现自己出于很多原因不断地在发布模式和调试模式之间切换。发布模式(尤其是在整个模块优化开启的 swift 中)需要永远构建和优化更改堆栈跟踪等。

【讨论】:

以上是关于如何仅使用快捷键在调试或发布模式下切换正在运行的 Xcode 项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何调试在开发模式下运行的 Quarkus 应用程序?

应用程序仅在调试模式下崩溃

程序仅在调试器外的发布模式下崩溃

仅使用一个 ViewController 从 XIB 切换

腾讯手游助手出现了游戏不支持系统在测试模式或调试模式下运行怎么办?

如何以编程方式更改发布类型?