Code signing your app assures users that it is from a known source and the app hasn’t been modified since it was last signed. Before your app can integrate app services, be installed on a device, or be submitted to the App Store, it must be signed with a certificate issued by Apple. At TestGrid we use real devices, so we must use the signed version.
Signing your app
Joining the Apple Developer Program is the first step to sign an app that you distribute outside the Mac App Store with Developer ID. As a member, you have access to the resources you need to configure app services and to submit new apps and updates. To request distribution certificates you must also be the Team Agent or an admin on your development team. In most cases, Xcode is the preferred method to request and install digital certificates for iOS. However, to request other more specific certificates you must first request and download them from Certificates, Identifiers & Profiles in your account on the developer website.
Ad Hoc Provisioning Profile
You can also create a distribution provisioning profile that allows your app to be installed on designated devices and allows you to use app services without the assistance of Xcode. This is called ad hoc provisioning and is one of the two types of distribution provisioning profiles that you can create for apps. An ad hoc provisioning profile ensures that test versions of your app aren’t copied and distributed without your knowledge.
Whereas that sounds great, ad hoc doesn’t allow you to take advantage of all the fun testing tools like XCTest frameworks that integrate seamlessly with Xcode’s testing workflow. Xcode automatically creates certificates, identifiers, and profiles for you as you need them and you use your developer account to manage them. It is easier to test and debug your app using the Developer Profile and fits better with most development lifecycles.
Since we use real devices (as Apple suggests) for all of our testing, we need the signed .ipa to install your app. Bottom line, the development profile is perfect for testing and debugging your app (via TestGrid) and the distribution profile is perfect for distributing your finished and ready-to-use app.