はじめに
- try! Swift 2018 in Tokyoの開発者ツールと経験への時間投資のセッションの中で取り上げられたjohnno1962/injectionforxcodeを試して見ました
injectionforxcodetとは
Runtime Code Injection for Objective-C & Swift
- アプリを実行中に動的にコードを追加できるツールです
環境
Apple Swift version 4.0.3 (swiftlang-900.0.74.1 clang-900.0.39.2)
Target: x86_64-apple-macosx10.9
Xcode Version 9.2 (9C40b)
導入方法
- johnholdsworth.com/injectionからXcode9に対応したものをダウンロードする
- ダウンロードしたzipを解凍し、インストールする
- システム環境設定→ キーボード → ショートカットで
inject Source
のショートカットキーを有効にする
実装
- runtime時に動的に追加したいUIViewControllerに
@objc func injected()
あるいはINJECTION_BUNDLE_NOTIFICATION
をnameにしたNotificationCenterを追加 - アプリを起動させる
- 追加したいコードを追加
- 変更したファイルを保存する
-
Control + =
のショートカットキーを押すと動的に追加したコードが実行される