私はASTを使ってSwiftプロジェクトを分析する作業をしていましたが、Xcodeを使ってSwiftプロジェクトを構築する際に何らかの形で生成できるかどうかを知りたいと思います。Xcodeプロジェクトを構築中にASTをダンプすることはできますか?
今のところ、単一ファイルと単純なプロジェクトに対してswiftc -dump-ast
コマンドを実行すると、端末でASTを印刷できます。しかし、より複雑なプロジェクトに使用すると難しくなります。
このため、xcodeを使用したいと思います。私はすでにビルド設定>スウィフトコンパイラ - カスタムフラグ>その他のスウィフトフラグでコンパイラに-dump-ast
フラグを渡そうとしました。フラグは実際にコンパイラに渡されました(ビルド時に出力は-dump-astフラグを指定してswiftcを呼び出すとレポートします)。私はxcodeとxcodebuild
コマンドの両方でプロジェクトを構築しようとしましたが、どちらもastを投げませんでした。
xcodebuild -target 'CompilingTest.xcodeproj' -scheme 'CompilingTest' -
configuration "Debug" -sdk iphoneos -arch "armv7"
CONFIGURATION_BUILD_DIR="TestBuild" ONLY_ACTIVE_ARCH=NO
は今、私はどちらかのXcodeのビルド・プロセスは、いくつかのファイルにswiftcの出力をリダイレクトすることを推論しています、またはそれは何とかそれを封じます。何かご意見は?
ご協力いただければ幸いです。
こんにちはキース、あなたの答えに感謝します。私は自分のツールチェーンをコンパイルすることでASTをダンプすることができました。なぜなら、常にダンプを出力ファイルに出力したからです。それは私を良く奉仕した。しかし、あなたのソリューションははるかにシンプルで、シンプルなプロジェクトのために働いています(結果を見るために1つのテストを行いました)、より安定しています(私は速やかなバージョン変更によってツールチェーンを更新しなければなりませんでした)。助けてくれてありがとう! –