Sparkle for iOS Beta Testing?

I’m not sure this would even work, but I wanted to post the idea incase anyone smarter than me (and with actual coding experience) wants to run with it.

After reading this post (by @iamamused via @chockenberry) yesterday, I was brainstorming ways to further streamline beta distribution.

Here’s the basic concept from Jeffrey’s post:

With the new iPhone iOS 4, you can distribute apps wirelessly without iTunes intervention. You still need to collect the appropriate devices id’s and create the appropriate provisioning profiles but if you already have those sending out files is easy.

Along with the generated .plist and the .ipa files, you’ll need the provisioning profile and a simple index file…

With these all uploaded to your server all you need to do is point people at the index file and they can select the links to install the provisioning profile and app directly from mobile safari on their iOS devices. A much nicer experience compared to installing through the iTunes sync process.

Using that workflow will make distributing beta’s much easier, but you still have to email beta testers every time there’s a new build and they have to follow the link on their device or bookmark the address and remember to check periodically.

What would be even better is if users were notified of an update via a push notification that would launch Safari (or Webkit within the app) and automatically initiate the download of the new version.

Seems as though Apple would be the perfect one to pull this off, but that’s a bit unlikely (enhancement request for Xcode 5?). UrbanAirship or another similar existing service would be the next best host (since they already have push notification servers and an API for setting up push notifications within an app) and could charge a nominal fee or even host it for free to promote their services to the iOS developer community. This could also be tackled by a group of developers and open sourced, but then each developer would have to set up their own server. A community server could be created, but that would involve a lot of trust and/or cost sharing.

There’s also the matter of security. It would be easiest to post the downloads to obfuscated URLs, but some projects might require something a bit more secure. A password could be set up for the initial download then some sort of app/server handshake for updates, but that seems like a lot more work. In practice, the only real risk is that a competitor or other random developer would download and re-sign the app.  They could then run it and even try to reverse engineer some great new feature, but they couldn’t submit it to the app store or anything like that. If a download URL was made public, random users wouldn’t be able to install the app since their UDID wouldn’t be in the provisioning profile.

There may be some huge caveats I’m missing, but I thought the idea was worth sharing. Beta testing iOS apps is definitely a hassle for both developer and testers. Anything that can be done to smooth the process would be time well spent.

I don’t have the time or expertise to head this up, but if anyone is interested let me know and I’ll update this post and tweet about it.

  1. drbarnard posted this
blog comments powered by Disqus