views:

96

answers:

3

I'm planning on developing an Apple Mac application which will collect hardware information from the host Mac and also installed software info. The hardware and software info will be collected in an encrypted XML file and then posted back to a website. The application should run as a "service" or background process on the Mac and can be configured to collect the data on a frequent basis defined by another encrypted XML config file.

I've done plenty of Windows based software development but never on the Mac. Can anybody point me in the direction of any useful info on how to develop on the Mac, collect hardware and software info, export to an XML file, file encryption and packaging a compiled app to run as a service? Is either Objective C, Cocoa or Ruby a possible option?

Many thanks for your help in advance!

+4  A: 

Can anybody point me in the direction of any useful info on how to develop on the Mac...

Start with Xcode.

...collect hardware and software info...

Learn about what Cocoa can do for you.

...export to an XML file...

See the NSXMLDocument class documentation.

...file encryption...

See the CommonCrypto framework documentation. Related question: http://stackoverflow.com/questions/2039940/any-cocoa-source-code-for-aes-encryption-decryption

Is either Objective C, Cocoa or Ruby a possible option?

Yes, you can even use Ruby; refer to the Cocoa link above for more info.

Dolph
richsage
+2  A: 

You can probably do this by just calling the Apple system_profiler command line tool. It even has a -xml flag to generate XML output for you. From C/C++/Objective-C you can run this via the stdlib system() call.

man system_profiler

man system

Paul R
A: 

It might be worth mentioning that there are various lists of the hardware specifications of all Macintosh systems, so getting the Mac model might be more to the point. The main variables are disk and RAM size.

Also, "installed software" doesn't mean the same thing on Macs as it does on other platforms. Many (most?) Mac applications are installed by copying the Application to a folder somewhere, not running an "installer" as you do on Windows, or using some package manager on other unix systems.

Seth