Xcode 11:未更新到应用程序或断点的代码更改不起作用

Posted

技术标签:

【中文标题】Xcode 11:未更新到应用程序或断点的代码更改不起作用【英文标题】:Xcode 11: Changes in code not updated to app or breakpoint doesn't work 【发布时间】:2019-10-16 08:50:25 【问题描述】:

X 代码:11.1 操作系统:10.15 测试设备:iPhone 5s,ios:12.4.2

大家好, 我犯了一个愚蠢的错误,立即升级 Xcode 和 MacOS,而不是等待以后的稳定版本。

无论如何,如果我对代码进行了更改,例如添加 NSLog() 行,则此添加不会在我的测试设备中的应用程序上更新。为了让它工作,我必须从测试设备上卸载应用程序,然后通过运行 Xcode 中的代码重新安装它。 每次我对代码进行更改时都会发生这种情况。我必须删除设备上的应用程序并重新安装。

我在互联网上寻找解决方案,但没有找到任何解决方案。 我认为这是一个 Xcode 错误,但我也很好奇你是否有同样的问题。如果希望有人能快速解决。

更新 1 在模拟器上运行正常。

【问题讨论】:

我是否理解正确,在您重建应用程序后更改不应用? 您是否尝试过手动删除应用程序临时构建文件夹、DerivedData 和 Xcode 缓存? @Igor 还没有,因为我必须弄清楚在哪里删除它们,因为我不经常查看这些文件夹(在做证书时可能每年一次)。但我会试试的。 是的,你应该尝试一下,它可以帮助我解决最多的 Xcode 问题 【参考方案1】:

尝试将Build System 更改为Legacy

File > Project Settings > Build System

新的构建系统在应用缓存方面存在一些问题。

【讨论】:

Legacy build system 从来都不是解决方案,它只是一个过渡。迟早是行不通的,会给你留下很多未解决的问题 这不起作用,因为应用仍在缓存中。【参考方案2】:

这发生在我身上,即使更改像打印这样简单的东西也会导致断点停止工作。每次我进行更改以反映在应用程序中时,我都必须在测试设备上重新安装应用程序。在我重新启动测试手机、Xcode 并清理它为我工作的构建文件夹后。

尝试重启测试设备,然后再次运行应用。如果这不起作用:

导航到 ~/library/MobileDevice/Provisioning Profiles/

删除与您正在使用的应用程序对应的 .mobileprovision 文件。 (你必须点击文件才能看到它们是什么,否则它只是一个长字符串)

导航到 ~/library/Developer/Xcode/DerivedData/YOUR_APP_NAME

删除构建文件夹

关闭Xcode,卸载应用,重启手机,打开Xcode工程,清理build文件夹,运行应用

【讨论】:

该解决方案不会坚持下去,因为后续运行仍会被缓存。每次从设备上卸载应用程序更容易,但所有测试数据都会丢失。

以上是关于Xcode 11:未更新到应用程序或断点的代码更改不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 11 断点仅在 HEX 代码上停止

Cordova + Xcode 7.3 (html + Javascript) 在构建和模拟时未更改或更新

Xcode 10 - 构建和安装后未更新应用程序

Xcode 故事板更改未显示在设备或模拟器上

Xcode 未构建包含更改的应用程序

更新到 Xcode 6 后的神秘错误