Does Apple offer TestFlight beta testing for OS X?

Duncan C picture Duncan C · Aug 14, 2015 · Viewed 13.1k times · Source

TestFlight is a welcome change for iOS. It makes distributing beta versions painless for both the developer and the testers.

Does Apple support TestFlight for Mac OS as well? I've done quite a bit of searching and haven't found anything conclusive one way or the other.

We have an OS X app store app that turns out to have an install problem with Yosemite. We failed to do a first install test against Yosemite, so we missed the problem.

I developed a fix and would love to have some new users try it out. It's petty complex, difficult and disruptive to have current users delete the entire "container" directory and kill the preferences process in order to simulate a fresh install.

I also don't like the idea of distributing an unlocked version of our app. If that gets out, it could damage sales of the app store app.

I've done things like added an expiration date to a test app (weak protection) or created developer ID builds that will only run on machines from a specific list of MAC addresses. The last approach works, but it's tedious and painful to maintain, and requires that the tester give up uniquely identifiable information about their machines.

I'd really like the ability to create apps that will only run on beta tester's machines, like TestFlight does for iOS.

This is a developer question more than a code question. It isn't a great fit for SO, but I can't think of a better Stack Exchange site to post it. If anybody has a suggestion of a better site to post the question I'm happy to move it there.

Answer

mojuba picture mojuba · Aug 30, 2015

This document at Apple Developer explains it.

It says you should register the testers' devices and generate a provisioning profile that includes them. Which means, theoretically, the app won't run on any device not in the list.

Here is the strange thing about it however: I have two Mac computers and I didn't register either of them with my provisioning profile (in fact the list of registered devices is empty right now), but I can run the exported app image on both easily. The app is sandboxed and signed, ready for App Store distribution, but nevertheless it runs on unregistered computers. It might be that with an empty device list it allows to run on any, or it might be that I'm doing something wrong with code signing.

I will update the answer once I figure this out.