截屏

简介

Quite simply, InjectionIII adds "Hot Reloading" capability to your iOS, tvOS and macOS projects written in Swift or Objective-C. This allows you to change the implementations of methods, functions and SwiftUI body properties without having to restart your app for rapid iteration over minor code changes and design.

To get up and running, install the app to /Applications and run it and it will appear on the menu bar.
Then, download the example project http://johnholdsworth.com/GettingStarted.zip, build and run it in Xcode. You’ll be promoted to select the directory containing the project file and sources to give InjectionIII access to which files have changed. Once injection has connected, when you save a file, it will be recompiled and injected into the running app, the new implementations taking place of the old. In the GettingStarted iOS app, if you edit the file DetailViewController.swift to change the string appended after the detail.description in function configureView() then save the file, you can see it take effect straight away.

InjectionIII requires a version of Xcode more recent than 10.2, installed at the standard location /Applications/Xcode.app. For a project to be injectable, you must also add "-Xlinker -interposable" to the Debug target of its "Other Linker Flags" build setting. Then, add one of the following to your app’s startup to connect to InjectionIII:

Xcode 10.2 and later:

#if DEBUG
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle")?.load()
//for tvOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/tvOSInjection.bundle")?.load()
//Or for macOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/macOSInjection.bundle")?.load()
#endif

InjectionIII is able to inject SwiftUI but requires minor code changes to "body" properties to ensure views are redrawn on injection. The easiest way to do this is using the "Prepare Project" menu item after you have selected a project and it will make the necessary changes.

If your project is organised across multiple directories, after you have selected the main project, you can add directories to be watched for file changes using the "Add Directory" menu item. This list resets when you select a new project. You'll need to turn sandboxing off to be able to use injection on a macOS application. Consult the project README on the support page for more information.

新内容

版本 2.5.2

Minor update to add tracing of arguments of type 'Any' and minor
changes in response to edge cases encountered in GitHub issues.

评分及评论

4.8(满分 5 分)
80 个评分

80 个评分

君子爱成人之美

每次评价都得起个名字

还好之前免费的时候买的,现在好像要收钱了?

开发人员回复

Don't really know what that means but it must be good! :)
We really appreciate the 5-star review, thanks!
/C

淮师男儿

必须赞一个

效率大大提高,节省了很多时间,感谢~

快去写bug

太好用了,太棒了

感谢作者贡献这么优秀的工具,太方便了

App 隐私

开发者“Christoffer Winterkvist”表示,此 App 的隐私规范可能包含以下处理数据的方式。 有关更多信息,请参阅开发者隐私政策

未收集数据

开发者不会从此 App 中收集任何数据。

隐私措施可因您使用的功能或您的年龄等因素而异。了解更多

支持

  • 家人共享

    启用“家人共享”后,此 App 最多可供 6 名家庭成员使用。