【发布时间】:2020-02-07 04:32:27
【问题描述】:
我有一个 7 年以上的项目文件,该文件从 Xcode 4 开始,该文件已 移植到 Xcode 5、7、8 和 9.2。对于所有这些版本的 Xcode 都有 运行(播放)按钮和设置的一致方法和行为 在断点处停止。
这是一个企业应用程序,我一直拥有真正的 iPhone 的奢侈 和 iPad 进行测试(从不需要使用模拟器)。我们最近有 从 Xcode 9.2 跳转到 Xcode 11.1 以支持新购买的设备运行 iOS 13。我一直使用objective-c。
我的问题是 Xcode 11.1。运行按钮的行为不同,并且 断点不会导致程序停止。至于断点 停止时,与 我在 Stackoverflow 中研究过许多帐户以获取断点 被忽略。它以前一直对我有用。至于运行按钮, 我看到了不合理的行为。也许这两个问题是相关的 这就是我将它们配对在一起的原因。
在以前版本的 Xcode 中,按下运行按钮 结果如下:
1. The code was compiled and built when an editing change
had been made.
2. The newly built app was installed on the device whether
or not there was a previous version of the app already
residing there.
3. The app was then executed and breakpoints were halted
upon.
在 Xcode 11.1 中,运行按钮显示提供给 执行。如果我的应用在设备上尚不存在,它确实存在 没有出现在列表中。上面列出的步骤都不是 执行。
这就是我现在必须使用的设备上构建和运行应用程序的方式 Xcode 11.1 和 iOS 13.1.2
要构建应用程序,我进入 Product->Build For->Running。那 构建现在只是坐在那里的应用程序。真正得到 它安装在设备上我必须返回运行按钮 并选择我选择的可用应用程序之一 “图书”。在 Books 启动之前,我可以在状态中看到文本 指示我的应用程序正在设备上安装的窗口。图书 然后启动,我按下停止按钮将其杀死。然后我 再次按下运行按钮,在列表中查看我的应用程序。我能 然后选择运行它,我会看到调试窗口的输出。
但是,在我的应用开始运行后,没有任何断点 我已经设置好了。
如果您能获得任何帮助,我们将不胜感激。有没有办法 编译和构建和运行类似于旧方法的应用程序?和 您是否有理由认为为什么没有断点 服务好了吗?
谢谢。 迈克
【问题讨论】:
-
如果 Xcode 显示要运行的应用程序列表,通常意味着您选择了扩展程序而不是应用程序作为运行目标。如果您的项目包含扩展程序,请确保您已选择应用程序而不是扩展程序作为运行目标。
-
您好 Paulw11,感谢您的回复。我明白你在说什么。我从来没有故意将应用程序设置为扩展,所以我希望 Xcode 没有这样设置。但我仔细检查了构建设置。在包装段落中,“包装器扩展”设置为“应用程序。在构建选项段落中,仅需要应用程序扩展安全 API 设置为否。我假设扩展的分配仅在这些段落中,那些设置...... ..
-
....我很好奇你的最后一句话,你说确保选择应用程序而不是扩展程序作为运行目标。在“常规”设置中,可执行文件设置为 $(EXECUTABLE_NAME) 定义,而各种捆绑标识符的其他名称使用 (PRODUCT_NAME) 引用。如果您有更多想法,我将不胜感激。谢谢你。迈克
-
我什至不知道你的项目是否有扩展。扩展是一个额外的目标;今天的小部件、代码聚光灯扩展、SiriKit 扩展等。当你想要调试其中一个时,你看到的行为就是你得到的,这就是我建议它的原因。
标签: ios objective-c xcode breakpoints