Ad-hoc Deployment
If you don't want to use testflight, here is another over-the-air solution:
In your xcode project go to
Product > Archive
Click
Distribute
in the xcode organizer window that appears when the operation is completeClick
Save for Enterprise or Ad Hoc Deployment
and choose nextChoose your ad hoc provisioning profile (created in the member center at developer.apple.com. Make sure it has all 20 device uuids included on the profile.
Click
Export
Save it. Make sure to click on the
Save for enterprise distribution
checkbox and fill out the required info. Application URL will be the URL starting with http:// or https:// that will go to your files (see next step)This will save two files
yourFilename.ipa
andyourFileName.plist
. Copy these files to your webserver.Now for the magic. You need to make a link somewhere with the URL
itms-services://?action=download-manifest&url=http://yourwebserver.com/path/to/yourFileName.plist
Assuming all your links work and your provisioning profiles are correct, the app should start installing on any registered device that clicks on that link.
If you don't want over the air downloads, you can distribute that .ipa file that was generated in step 6 to your 20 people (their devices must be registered on the provisioning profile still). They can open that file in iTunes and then sync your app with their devices.
Installation of an application over the air or by syncing with iTunes will not wipe the content of any devices.
Difference: Ad Hoc distribution and Developmental distribution
Expanding on your comments
Ad Hoc builds can be distributed and installed though iTunes, the X Code organizer or though the web. One service for managing adhoc builds and testing is Testflight (https://testflightapp.com/) check them out they have lots of resources regarding provision profiles,
Normally your distribution builds are optimized with debugging information stripped, so yes you can not debug adhoc & distribution builds in the debugger.
Your App ID is linked to APNS, so the certificate you generate is linked to your application. Device tokens on Sandbox and production are different.
To answer your questions
for your iOS developer profile you're limited to 100 devices across the entire account. These are shared between applications. 100 devices means that you are allowed to register 100 devices per developer account per year. At the end of the year when you renew your account you can edit this list and reset your device quota.
Both ad hoc builds and developer builds require your UDIDs. What happens is that the provision profile (development or adhoc) must match the provision profile that the app was signed against. Under development it's usually easiest to use a wildcard App ID (such as *) but when you are releasing (under ad hoc or app store distribution) you should use the full App ID name such as com.company.appname this is to identify your app under services such as In app purchases or Push notification services
How should I understand Save for Development Deployment in Xcode for iOS app?
1) As apple integrated testflight in itunes connect so when you select "Save for Ad Hoc Deployment" then you can distribute your app to users with designated devices. The app will be code signed with the distribution certificate. i.e it will use distribution certificate which we used to submit app on appstore. Previously when you use "Save for Ad Hoc Deployment" then you can create an ipa from development profile also. but now on it requires distribution certificate for "Save for Ad Hoc Deployment".
2) When you select "Save for Development Deployment" then you can distribute your app using development profile. it just like previously we did with "Save for Ad Hoc Deployment". i.e you can create your ipa file using development certificate also and you can distribute this ipa to your client and testers who's device id is present in your provisioning profile.
Ad Hoc iOS App Distribution to several hundred devices
iOS AdHoc deployment is limited to 100 Devices per app.
You can read more about it here https://developer.apple.com/library/archive/documentation/ToolsLanguages/Conceptual/DevPortalGuide/DistributinganApp/DistributinganApp.html
If you are planning to deploy the app to a larger number of devices, as you wrote, I think your only option is to deploy it on the AppStore and allow access only to selected devices.
For instance, you can ask your clients for their devices UUID and check if a device opening the app is associated with one of these UUIDs.
Or you could protect the app with a login (username-password) or even a serial code that you give to your clients privately.
What is the difference between ad hoc distribution and app store distribution in ios
Ad-Hoc Distribution:
Distribution builds of an app, which can be installed on 100 devices designated by the developer on his provisioning portal. The distribution mechanism can be websites, mails or OTA. These type of builds are generally for beta testing or demos.
App-store Distribution:
Distribution builds that are intended for general public(for sale). The distribution mechanism is App store only.
Related Topics
Maximum Height of iOS 8 Today Extension
Add a Button on Right View of Uitextfield in Such Way That, Text Should Not Overlap the Button
How to Send Post Parameters in Swift
Change Lock Screen Background Audio Controls Text
Html5 Video Autoplay on Iphone
iPhone 6 and 6 Plus Responsive Breakpoints
Mobile Safari Position:Fixed Z-Index Glitch When Scrolling
CSS Gradient Not Working on iOS
Div Scrolling Freezes Sometimes If I Use -Webkit-Overflow-Scrolling
Input Field iOS Safari Bug - Can't Type in Any Text
CSS Styled Scrollbars Support for Safari Mobile on iOS 6 Disappeared
Swift - Apply Local CSS to Web View
Z-Index Issue on iOS Safari & Chrome
How to Limit an iOS App Only to 4 Inch Screen Devices
Launching Viber App via Url Scheme on iOS
Rotating a View in Layoutsubviews