我已經編寫了一個基於玩具libtooling的工具,它可以對ObjectiveC代碼進行一些分析/源代碼重寫。我如何通過iOS Xcode項目運行它?在iOS Xcode項目上運行Clang LibTooling工具
我已看過compiling the application through commandline/clang,但我還沒有得到它的工作。有沒有可能用xcodebuild鏈接我的工具?或者有沒有更好的方式來通過Xcode項目運行該工具?
我已經編寫了一個基於玩具libtooling的工具,它可以對ObjectiveC代碼進行一些分析/源代碼重寫。我如何通過iOS Xcode項目運行它?在iOS Xcode項目上運行Clang LibTooling工具
我已看過compiling the application through commandline/clang,但我還沒有得到它的工作。有沒有可能用xcodebuild鏈接我的工具?或者有沒有更好的方式來通過Xcode項目運行該工具?
如果你想讓你的工具在代碼中產生錯誤和警告,它應該是一個鏗鏘插件,你可以改變你的項目clang標誌來加載插件。
就您的情況而言,您好像使用libtooling來更改源代碼,您可以在「編譯源」階段之前將腳本添加到項目構建過程中。
該工具需要爲代碼創建AST來啓用重構 - 我還沒有想出修復所有框架/頭部問題的魔力。不會使用運行腳本遇到相同類型的問題? 我在clang插件上使用libtooling,因爲它似乎libtooling更適合重構,這是最終目標 - 我沒有真正偏向任何方式。我會再看一遍,謝謝。 – Sorcerer13
什麼,我想你需要的是JSON-Compilation-Database。
您可以使用xctool生成一個JSON編譯DATABSE(xctool有記者產生這個東西,請參閱自述。)
JSON的編譯數據庫只是一個JSON文件,它包含了所有的編譯器選項(比如,標題搜索路徑,框架工作搜索路徑)需要傳遞給基於clang和libtooling的工具。
在代碼編譯之前,您是否需要此工具來運行?它需要什麼作爲輸入? – ekeren
它需要在編譯之前運行,我想在編譯之前重寫源代碼。該工具需要源文件,並且應該能夠爲應用程序構建AST - 這意味着修復所有框架鏈接問題,除非我採取了錯誤的方法。 – Sorcerer13