結論から書くとやることは3つだけです。
1 Hot ReloadingとInjectを追加
2 Other Linker Flagsに-Xlinker -interposableを追加
3 コードにおまじないを追加
※前提条件
InjectionIIIをダウンロードしてること
Hot ReloadingとInjectを追加
SPM(Swift Package Manager)のやり方です
HotReloadingの追加方法はこちらのReadMe見てください
Injectはそのまま追加すればいけると思います
Other Linker Flagsに-Xlinker -interposableを追加
ReleaseもDebugもやっちゃってますけど、使うのはDebugだけだと思うんで、DebugだけでOKです
ちなみにPROJECTとTARGETS両方に設定した場合動かなかったり、nozerocode発生して原因がわからなくなることあるので注意してください。
コードにおまじないを追加
2つあります
一個目
@ObservedObject private var iO = Inject.observer
二個目
VStack {
}
.enableInjection() //←これ
画面の部分(コピペOK)
import SwiftUI
import Inject
struct ContentView: View {
@ObservedObject private var iO = Inject.observer
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundColor(.accentColor)
Text("Hello hello")
}
.padding()
.enableInjection()
}
}
まとめ
SwiftUI HotReloadみたいな感じで調べて色んな記事を参考にやってみたけど、全然うまく行かなくて、
『できないやんけ!!!!!!!!!!!!!!!クソがぁぁぁぁぁ!!!!!!!!!!!!!!!!!!』
って思いながら、HotReloadなしで進めようか悩んだんですけど、FlutterではHotReloadが標準だったんでやっぱ毎回ビルドすんの無理!!!やだ!!!!!って思って頑張ってやったらできました
下記を参考にしながらやるのが一番いいかもです。
追記
もしかしたらHot Reloadingはいらないかもっす
その時は消してくださいまし
ここ最近で一番苦戦したかもです