Mac OS Xでインストール済みアプリの一覧とログ情報を取得したい

Mac OS Xで、
1.インストール済みのアプリケーションの一覧
2.イベントログ情報
を取得して、ファイル出力するツールを作成しようとしています。
#Cocoaを使用する予定。
それらを効果的に取得するAPIやライブラリは公開されてないのでしょうか?


もしなければ、ダイレクトに/Applicationディレクトリ配下を参照する形になると思うのですが、
それらの格納位置はバージョンや環境で異なる可能性は無いでしょうか?
想定されている動作環境は10.4、及び10.5です。
また、Mac OS Xでの開発情報のサイト(日本語があればベター)があれば紹介をお願いします。

投稿日 2009/04/08 22:49

返信
返信: 8

2009/04/09 01:06 Yupa への返信

自己レスですが、


自分で調べていて、「システムプロファイラ」の情報にAppleScriptでアクセスして情報が取得できるという記事を見つけました。

http://oshiete1.goo.ne.jp/qa2510845.html


AppleScriptでApple System Profilerから情報を取得し、それをCocoaのアプリケーションに渡すようなつくり方は可能でしょうか?


多分動きとしてはCocoaアプリからAppleScriptを呼び出してデータを取得させるようになるのではないかと思いますが。


#実際に試して見れる環境が無いのが辛い。。。


詳しい方、類似の処理を作ったことがある方、回答をお願いします・・・。

2009/04/09 05:06 Yupa への返信

http://oshiete1.goo.ne.jp/qa2510845.html

ちょっとだけ読んでみましたが、ネットワーク越しならApple Remote Desktopの方が効果的では。



他にも、(ご存じとは思いますが)

/Applicationsに有るファイルを取得するだけらなら、lsコマンドで。

ログは、/private/var/logに記録されたものを読み出せば。

「.app」の拡張子をlocateで検索するとか。


10.4.xと10.5.xで違う可能性との事ですが、具体例は知りませんが「違うでしょ」と思います。



返答しておいて申し訳ありませんが、私はプログラムの作成には、詳しくありません。


このメッセージは次により編集されています: ni_ki

2009/04/09 21:28 Yupa への返信

AppleScriptでは確かに取得出来ますが、 CocoaからAppleScriptを呼び出す手段は標準では用意されていないようです。


AppleScriptから一時ファイルに書き出して、Cocoaで読み出すしかないようです。


http://homepage.mac.com/kenferry/software.html#KFAppleScript

を利用すれば、AppleScriptの中の関数を呼び出せるようですが。。。

2009/04/12 17:53 ni_ki への返信

ni_kiさん、


ご回答ありがとうございます。


今回の要件としては、

1)ネットワーク越しに常時監視するようなものではなく、調査の際にUSBなどで接続し、インストール作業をすることなく情報を取得するツール。

2)アプリケーションについては、最低限OS側でインストールされているものとして認識されているものがでること。

(Windowsであればレジストリという概念があるので、レジストリ登録されているもの、ということになります。)

3)環境によって動かないということがあると困るので、実行形式のもの


ということになります。


Apple Remote Desktopは1)の要件で違いますね。


lsコマンドは、通常インストールを行ったものが必ず/Applications配下に配置されるのであれば良いのですが、

こちらで調査した限り、別フォルダに配置される場合もあるようです。

どこに配置される可能性があるか、全てが網羅できれば選択肢になります。


「.app」の拡張子をlocateする方法は、速度との勝負でしょうかね。許容できる範囲の速度でレスが得られるのであれば、これも選択肢として残りそうです。


#ふるいLinux使ってた人間なんで、ファイル検索で最初にfindを思い出していたのですが、これだとかなり遅い。

locateはfindより高速とのことなんで、試す価値はあるかもしれません

2009/04/12 18:01 こういち への返信

こういちさん


ありがとうございます。


AppleScriptをCocoaから呼び出す標準の方法は無いのですね・・・。



KFAppleScript・・・

これ使えるかな、と思ったら別途導入が必要なんですね。

となると、動作させるMac側にこれを入れる必要がある、ということなんでしょうか?

それとも開発時にライブラリとして入れておきさえすれば、

動作時にはバイナリになるので不要?

2009/04/12 19:04 Yupa への返信

プログラミングは全くわかりませんが


Scripting & Automation Scripting Bridges Guides


Scripting & Automation Scripting Bridges Sample Code


はどうなのでしょう?


MacPeople 5月号 P.158 『30分で遊ぶ!COCOA』で Finder のラベルを設定するアプリケーションを作っています。

参考にならないでしょうか?

2009/04/13 08:03 COIL082 への返信

システムプロファイラ.appでアプリーケーションをPDFにでも出力するSaveする、Scriptを作成してはいかがでしょう。


NSAppleScriptでObjective-CからAppleScriptを呼び出せるとの情報が、ネットを探すと出てきます。ご参考にされてはどうでしょう。

それと、Objective-CとAppleScriptはXcodeの同一プロジェクトに共存できると言う話も聞いたことがありますが。


COIL082さんご提案のスクリプティングブリッジ(Scripting Bridge)もシステムプロファイラ.appをリモートするだけなら使えそうですよね。


このメッセージは次により編集されています: ni_ki システムプロファイラ.appにSaveが有るとは知りませんでした。訂正させていただきます。

2009/04/13 03:32 Yupa への返信

KFAppleScript・・・

これ使えるかな、と思ったら別途導入が必要なんですね。

となると、動作させるMac側にこれを入れる必要がある、ということなんでしょうか?

それとも開発時にライブラリとして入れておきさえすれば、

動作時にはバイナリになるので不要?


ライブラリでなくて関数のソースファイルです。

中身を見ていないのでわからないのですが、AppleScriptを呼び出して結果を得るAPIは存在するが手順が面倒くさいというところではないでしょうか。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

Mac OS Xでインストール済みアプリの一覧とログ情報を取得したい

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。