Distributing Beta App to Remote Users It seems like there is no simple solution to providing my beta iOS app to people outside of physical contact.  The ways that I have found to do this WITHOUT using the App Store (which Apple explicitly says is not for Beta testing) are:


Use Developer Enterprise Program; Expensive and Excessive
Use TestFlight; Only up to a measly 25 "Internal" Testers allowed before extreme Guidelines put in place for more people (Why not just put it on App Store at this point...?)
Give them my whole Xcode project and have the user build it in their own Xcode environment; Impossible to ask of non-tech-savvy people + I do not want to give my project to people outside my company
Ad-Hoc Development; Make everyone give me their UDIDs...Huge hassle for others/ People might not want to do it outside my company


The app I am developing is going to be used by people in the scientific community to control a specific device that my company is making.  There's a chance that it might never be up to Apple's standards for apps on the App Store, but could be used by more than 100 people in the near-distant future.  I guess the real question I am asking is: How do I get my "sub-par" beta app to a large group of people?
You could use TestFlight for external beta testers. This will allow you to test with up to 2,500 external testers. You do not need to know their UDIDs, only their email addresses.

However, I assume you think your app won't be able to pass even the less restrictive beta app review.

In that case, you could distribute your app in a "half-baked" form. Instead of giving out the Xcode-project including sources, which you state you do not want, you could distribute your app as compiled, but not yet signed, binaries.

In order to make it easy for your customers, you would have to build or get built a simple tool that the user can run that codesigns the binaries with the user's AppleID. They wouldn't need to be registered Apple Developers.

The tool would need to alter the bundle name in Info.plist and use the "codesign" tool to sign the app:

To make the bundle name unique, just add any random identifiers to the bundle name in the plist file.

The codesign tool can be used with a command like this:

codesign --force --sign "my identity"  &lt;path for .app file&gt;


where "my identity" is the identity (apple-id) of the end-user.