5

XCode の異なるコピー (XCode3 および XCode4) を 1 つのシステムに保持するための標準的な方法はありません。私の Makefile またはその他のコマンドライン ベースのビルド プロセスでは、特定のバージョンの XCode のインストール パス ($DEVELOPER_DIR) を特定する方法、このパスを DEVELOPER_DIR としてエクスポートする方法、または xcode-select を使用してアクティブにする方法を探しています。

これまでのところ、system_profiler の xml 出力をクエリしようとしています。

他の(より便利な)オプションはありますか?

基本的に、インストール パスを知らなくても Xcode3 (または Xcode4) を使用するようにシステムに指示するスクリプトが必要です。

4

3 に答える 3

1

これが私がこれまでに思いついたものです:

DEVELOPER_DIR=`system_profiler SPDeveloperToolsDataType -xml |\
xpath "//*[text()='spdevtools_version']/following-sibling::string[starts-with(text(),'3')]/../*[text()='spdevtools_path']/following-sibling::string[1]/text()"`

これにより、DEVELOPER_DIRがXcode3のインストールパスに設定されます。Xcode4の場合は、「3」を「4」に置き換えるだけです。

XCode3の複数のバージョンがインストールされている場合、これは期待どおりに機能しません。

于 2011-05-08T09:07:44.670 に答える
0

コマンドを使用して Launch Services データベースを照会することにより、コマンド ラインからインストールされているすべての Xcode バージョンのインストール パスを確認できますlsregister

すべての Xcode3 インストール パスを見つけるには、次のコマンドを実行します。

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister  -dump | grep --before-context=2 "com.apple.Xcode" | grep --only-matching "/.*\.app"

すべての Xcode4 インストール パスを見つけるには、次のコマンドを実行します。

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister  -dump | grep --before-context=2 "com.apple.dt.Xcode" | grep --only-matching "/.*\.app"

この質問も参照してください。

于 2011-05-08T18:55:57.997 に答える