【发布时间】:2019-09-08 14:17:39
【问题描述】:
我有一个 Mac 应用程序项目,它使用 Swift 4 在 XCode 10.2.1 中构建和运行。当我尝试将其转换为 Swift 5 时,该过程开始,然后在大约第 32 步(大约 158 个)处,机器锁定到它重新启动的地步,或者我必须强制它关闭。我应该寻找什么来阻止这种情况发生?
我所说的“锁定”是指一切都停止了。 XCode 中表示事情正在发生的旋转轮图形停止旋转。鼠标指针冻结。键盘没有反应。任何屏幕动画都会停止(例如,如果指针是 Spinning Pizza of Death - 停止旋转)如果我离开它足够长的时间,它可能会重新启动 - 两个铃声。
我已经尝试转换另一个项目,并且转换没有任何问题。所以我会假设我的项目存在一些特定的问题
我已经在两台机器上进行了尝试——我的 2012 Mac Mini 配备 16GB RAM,而 MBP 是几年前配备 8GB RAM 的。两者都有同样的问题。
我还尝试在项目中将 Swift 版本从 4.0 设置为 4.2。同样的事情也会发生 - 机器处理更改并在此过程中锁定。但是,这一次在锁定之前,我得到了强制退出对话框窗口,并显示一条消息告诉我所有可用的应用程序内存都已用完,我应该强制退出应用程序。此时,机器死机了,所以我不能这样做。
我已经尝试了一些关于该主题的搜索,但没有找到任何描述我的问题的内容。
我没有要显示的代码,因为我不知道是什么代码导致了这种情况(如果有的话——当然这可能是 XCode 中的一个错误)。它可能是 Xcode 项目文件中的设置。
期望的结果 - Xcode 将我的项目从 Swift 4 转换为 Swift 5。
实际结果 - Xcode 完全锁定了机器。我必须强制关闭我的 Mac 并重新启动。
所以问题是 - 我应该寻找什么来解决这个问题?有没有其他人有这个问题?我可以尝试什么来解决这个问题?死机重启有点吓人。
【问题讨论】:
-
尝试在 Swift 4 中打开文件的编译时间。它可能会提供线索。 irace.me/swift-profiling
-
今天发布的 Xcode 10.2.1 可能会有所帮助。提到了构建时间修复。
-
谢谢,两位,我会尝试计算堆时间。我在 10.2.1 中遇到了与 10.2 相同的问题(我在原始问题中确实提到了这个版本)。
-
如果可以在终端中触发到 Swift5 的转换,也许它会产生有关 XCode 使用的最后一个命令的信息。
-
好点@Kamil.S 您还可以在 Xcode 的 Report Navigator 中观看构建,但它会稍微隐藏在转换器模式下。
标签: swift xcode swift4 swift5 xcode10.2