解決 LLDB 出現 “Couldn't IRGen expression” 的問題
大半個月前在用 Xcode 10 Debug 的時候,遇到了 LLDB 完全不工作的問題。當時因為是小問題,於是就以「不 DEBUG」的形式繞了過去。今天在寫程式碼的時候覺得不用 LLDB 不行了,於是花時間解決了一下。
這個問題是這樣的,在 LLDB 裡,無論 po 或者執行其他操作,均顯示這樣的錯誤:error: Couldn't IRGen expression, no additional error。
因為當時在另外一個專案沒有問題,加上以前 Swift 在 LLDB 下就是有各種奇怪的問題,我當時的直覺是 Xcode 10 依然很爛,於是先放一邊了。
今天決定再嘗試研究一下這個問題,於是終於在 StackOverflow 上搜到了這個問題的答案——非常巧的是,這個問題是昨天回答的,也就是說,如果我上週、上上週,都嘗試去找這個問題的答案的話,可能一直會找不著:sweat_smile:
這個問題主要是直接使用了 Carthage 從官方網站下載的二進位制 Framework 導致的,比如我使用了 RxSwift,我沒有使用自己編譯的 RxSwift,而是用 Carthage 預設的設定使用了官方下載的 RxSwift,於是就會有這個問題。
所以用 Carthage 的朋友們,一定要記得使用這個引數來更新,即不要使用現成的二進包:
carthage update --platform iOS --no-use-binaries
至於 RxSwift 的官方到底是用了啥編譯引數導致編譯出來的 Framework 不能 LLDB,這就需要研究 Swift + LLDB 了。
來源: ofollow,noindex" target="_blank">https://stackoverflow.com/a/52664610/750768