I am in process of creating my first app and have some confusion over Ad Hoc provisioning profile and Development Provisioning profile. I understand that this question is asked
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
AdHoc distribution allows you to install the IPA on 100 devices which you can distribute for testing mainly. Also apart from those 100 devices, the IPA cannot be installed on any other device. Also, once a UDID has been added to the list of devices, it cannot be edited until the next renewal of the developer account.