After reading numerous beta testing strategy guides for iOS I'm still confused about if it's permitted by Apple's Developer Program to distribute an app for external beta testing without getting it approved by them and using TestFlight. For example, is it allowed to create an AdHoc signed app and use a 3rd party tool (Crashlytics, HockeyApp, others) to beta distribute to external entities. External in this case meaning not within your organization. Within an organization, there are other means that can be used like Enterprise Distribution, which have no restrictions but are not allowed to be used externally. The question is: does Apple allow external beta testing for a non-Apple signed app? (non-Apple as opposed to TestFlight which would indeed sign it for external testing via iTunesConnect submission).
UPDATE: after looking into AdHoc and going to the Apple Developer page, it shows this (note the Pre-Release warning in that image) which seems to point to what I suspected - per Apple's rules, you cannot let external folks test your ad hoc app:
So if this is true, I don't see how there's any way around TestFlight for public external betas.
Yes, using Ad-Hoc distribution with external testers is perfectly fine and has been used like that by thousands of developers world wide for years. Quoting Apple's App Distribution Guide:
Testers don’t need to be team members or iTunes Connect users to run the app, but their devices need to be registered in your developer account.
HockeyApp do support app distribution by using an Ad Hoc profile.
You need to buy an apple dev program, then you need to create the profiles and use the profile in your projects, then you need to create a new app in your dashboard on HockeyApp(https://rink.hockeyapp.net/manage/dashboard) and integrate our SDK in your build, you could integrate the SDK by following steps in this KB: https://support.hockeyapp.net/kb/client-integration-ios-mac-os-x-tvos/hockeyapp-for-ios
After these you need to upload the build, profile, symbols to HockeyApp. We recommend use our interactive SDK integration wizard in HockeyApp for Mac(https://www.hockeyapp.net/releases/mac) which covers the steps of integration SDK and upload files to HockeyApp.
For more information about distribution please see here: https://support.hockeyapp.net/kb/app-management-2/how-to-organize-development-and-production-apps-for-distribution#hockeyapp-offers-four-pre-defined-release-types
According to the current Apple Developer Program agreement (bolding of text is mine):
7.3 Distribution on Registered Devices (Ad Hoc Distribution) Subject to the terms and conditions of this Agreement, You may also distribute Your Applications for iOS, watchOS and tvOS to individuals within Your company, organization, educational institution, group, or who are otherwise affiliated with You for use on a limited number of Registered Devices (as specified on the Program web portal)
See also section 7.3 parts A and B where they clearly allow external testing via TestFlight. Based on that it seems to comfirm that external testing is only allowed via TestFlight. Internal testing can use TestFlight, Enterprise Program-signed apps or Ad Hoc.
来源:https://stackoverflow.com/questions/37125241/ios-apps-external-beta-testing-apple-restrictions