I am currently running a private beta of an app.  I use a combination of 
private license codes requiring server activation and expiration dates to force 
users to stay up-to-date.  If a user is not okay with that, then he's probably 
not going to be okay with the usual problems beta releases have.

If I need to investigate a problem from an earlier build reported near an 
expiration date or need more time with an old version I simply use source 
control to rebuild the old version and disable the expiration check for my own 
use.

You probably do not want to do your expiration check later than 
<NSApplicationDelegate>'s -applicationWillFinishLaunching:.  From there you can 
simply run an NSRunAlertPanel() with an expiration message or if you use 
Sparkle (or another autoupdater) force an autoupdate to occur.  I wrap such 
code around an IS_BETA #define to make it easy to turn off for an actual 
release and App Store builds.  You also probably want to have separate 
autoupdate tracks for beta releases and actual releases.

Beyond expiration dates, I suggest using a built-in crash reporter and other 
tools like something to read console messages your app may output.  Make it 
easy for testers to report problems with 1-click rather than telling them how 
to use Console.  These tools will remain useful post-beta.

- Nick Buratovich
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to