Recent Changes - Search:

Documentation

Development

edit SideBar

SystemProfiling

Thanks to the work of Tom Harrington, Sparkle now supports optionally sending anonymous information about the user's system with their update. Developers can use this information to better decide what platforms and hardware to support.

Collected data

  • Mac OS X version
  • CPU type/subtype (see mach/machine.h for decoder information on this data)
  • Mac model
  • Number of CPUs (or CPU cores, in the case of something like a Core Duo)
  • 32-bit vs. 64-bit
  • CPU speed
  • RAM size
  • Application name (as indicated by CFBundleName)
  • Application version (as indicated by CFBundleVersion)
  • User's preferred language
  • Anything else you'd like to send along (via a delegate method; see Customizing Sparkle)

This information will be provided via GET, so if your feed URL is http://you.org/app.xml, the request will be made to http://you.org/app.xml?cpusubtype=4&ncpu=2&appName=App.app&cpuFreqMHz=1830[...].

Note: In order to standardize the statistics across a userbase with varying update check intervals, Sparkle submits profiling information only once per week.

Making use of system profiling information

First, you've got to tell Sparkle you want this data to be sent. You can do this by adding a SUEnableSystemProfiling key to your app's Info.plist and setting its value to YES. Note for Sparkle 1.5b6: a string value of YES does not work in Tiger (OS X 10.4). To be compatible with Tiger, Leopard, and Snow Leopard, make SUEnableSystemProfiling a boolean value and mark it checked. (To make a boolean key in Xcode, first create the key -- it is created as a string by default -- then right-click it, select "Value Type", and select "Boolean".)

Next, you've got to put something up server-side to collate and display the submitted information in a useful way. Tom Harrington has written a PHP-based backend; you can download it here. Backends based on other server-side languages would be very welcome, though!

Finally, set the SUFeedURL to your server-side script (eg. profileInfo.php) instead of the appcast. The script in turn should be set to link to the appcast.

Edit - History - Print - Recent Changes - Search
Page last modified on December 18, 2009, at 05:53 AM EST