2011-12-07 17 views
0

私はジェネリックXcodeのカスタムビヘイビアを作成しようとしています。これは呼び出されると、ideで開かれた現在のプロジェクトに関連するAppleDocドキュメントを生成するスクリプトを起動します。 Xcode 4: custom behavior does not execute my sh script?私が行方不明になったかを理解するのに役立った:AppleScriptを使用してXcode製品情報を取得するにはどうすればよいですか?

は、私が最初にこの質問をしたそれは外部スクリプトでXcode variablesを使用することはできません! 私の新しい質問は、AppleScriptを使って、必要な情報(プロジェクト名、会社、パスなど)を取得するにはどうすればいいですか? Xcodeのは非常に「スクリプト可能」であるので、私は、これが可能であることをかなり確信して、これまでのところ、私はXcodeのプロジェクトファイルの名前だけを取得することができました:

tell application "Xcode" 
    tell active project document 
     name 
    end tell 
end tell 

戻って上記のコード「MyProjectと。 xcodeproj "とする。 私はです.AppleScriptについては全く新しい初心者です.Xcode.sdefのリファレンスを理解するのは難しいです(階層はかなりシンプルですが、私は自分が望むものを取り出すための正しいスクリプトを作成できません) 。

AppleScript + Xcodeについてのヒントを教えてもらえますか?

(私はファインダーの例については何もなく、「Hello World」の見つけませんでした:Pを)

答えて

1

一番簡単な方法は、項目のプロパティを取得することです。たとえば、これを実行して最前面のプロジェクトのプロパティを取得します。

tell application "Xcode" 
    tell first project 
     return properties 
    end tell 
end tell 

プロパティは「レコード」であることがわかります。レコードの項目にアクセスするには、レコード名を取得します。たとえば、あなたがsdefファイルを見ると

tell application "Xcode" 
    tell first project 
     return real path 
    end tell 
end tell 

最後に、あなたがアップルスクリプトエディタアプリケーションを使用していることを行う...プロジェクトの「本当のパス」を取得することができます。ファイルメニューの下で "辞書を開く"を選択し、アプリケーションを選択します。辞書が開いたら、検索フィールドを使用すると便利です。たとえば、 "project"を検索し、 "class"に対応する結果を強調表示します。これにより、プロジェクトから得られるものが表示されます。

あなたはアプリケーションからどのような情報を得ることができるかを知る方法がいくつかあります。テストのいくつかの時間後

+0

:)。また、 'tell app" Xcode "... end tell"と 'first project's properties'または' first project's real path'のコードを縮約することもできます –

+0

Great !!!これは確かに良いアプローチです...今最後のステップとして、作成されたAppleScriptからshスクリプトを呼び出す方法を学ぶ必要があります:) – daveoncode

+0

シェルスクリプトを呼び出すには...シェルスクリプト "/ path/to/script"を実行します。必要に応じて、他のシェルコマンドのようなパラメータを渡すこともできます。 – regulus6633

1

は、私は、このように探していた情報を得た:

tell application "Xcode" 
    tell active workspace document 
     set firstProject to (get first project) 
     set projectID to (get id of firstProject) 
     set organizationName to (get organization name of firstProject) 
     set projectDirectory to (get project directory of firstProject) 
     set firstTarget to (get first target of firstProject) 
     set targetName to (get name of firstTarget) 
     ("id: " & projectID & "organizationName: " & organizationName & " directory: " & projectDirectory & " targetName: " & targetName) 

    end tell 
end tell 
0

あなたはまた、XCODEから情報を取得するAppleScriptではBASHスクリプトを使用することができます。例えば:

#get the product name from Xcode 
set {product_name} to words of (do shell script "printf \"%s\", $PRODUCT_NAME") 

で発見あらかじめ定義された単語を設定するビルドを使用してXcodeの環境変数で取得するためのハンディ:私はまったく同じことを書いていたのと同じように

https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

関連する問題