即时 运行 或 Xcode 的热重载

Instant Run or Hot Reloading for Xcode

我是一名 Android 开发人员,最近开始学习 Swift。 Android studio 中有一个很酷的功能,叫做 Instant Run,可以显着减少编码期间增量代码更改的构建和部署时间。

Introduced in Android Studio 2.0, Instant Run is a behavior for the Run and Debug commands that significantly reduces the time between updates to your app. Although your first build may take longer to complete, Instant Run pushes subsequent updates to your app without building a new APK, so changes are visible much more quickly.

如果您在 Android Studio 上启用 Instant 运行,则无需从头开始构建和 运行 应用程序,特别是当您在 View Controller 中处理一些细节时应用程序的中间部分(故事板)。

我很想知道 XCode 中是否有此功能或类似功能,或者每次我想测试应用程序时都必须 运行 从头开始​​应用程序?

您可以从故事板或以编程方式为您的项目select 初始 - viewController;到视图,您只需要在测试时加载它。

但是,您实际上不需要担心从头开始编译您的代码。这是 xCode 的一种自动化行为,因为它只编译您已更改的代码。您可能会在文件层次结构中注意到这一点,如下所示:-

The 'M' & 'A' at the side of files refers to; 'Modified files' & 'Added files'

未经修改的文件;构建后,构建时间不会那么长。

有办法!

我不久前发现了这个问题,并得出结论,没有任何方法可以在 iOS 中获得真正的瞬间 运行。

但是 ! 我最近发现了一个很棒的库,它允许您将这个很棒的功能带入 iOS。我在这里分享它是因为它对我来说很重要,我很想在我第一次来这里时找到它。它叫做 Injection for Xcode,它采用插件的形式。由于新的 Xcode 限制,安装时间有点长。您必须修补 Xcode 才能在其中安装 运行 插件。您可以在自述文件或 "Issues" 中找到所有这些信息。最多可能需要 30 分钟,但是 这个插件可以真正节省时间 !

安装后,运行 您的应用会像往常一样使用 Xcode (CMD + R)。然后,更改控制器中某处的代码。现在,单击 CTRL + = 以使用注入插件。您不会在模拟器中看到任何重新加载,但如果您尝试,您会看到您的代码更改已被执行(几秒钟后!)。

例如你有这一行:

self.view.backgroundColor = [UIColor blackColor];

在您的应用 运行 CMD + R 之后,将行更改为:

self.view.backgroundColor = [UIColor whiteColor];

CTRL + =,尽情享受吧!

希望这对某人有所帮助!如果大家有什么问题(安装或者其他),欢迎评论问我。

如果您使用 SwiftUI,请在连接设备时使用下一个选项!!!

and press: cmd + s