iOS Developer Builds vs Distribution Builds
Asked Answered
Q

1

9

I've been under the impression for some time that for iOS, signing a build with a developer provisioning profile allows the app to run (and get debugged) on an authorized device (listed in the development provisioning profile) through an XCode build, whereas signing with a distribution profile allows the app to be run (but not debugged) on other iOS devices that have been specifically added to the distribution provisioning file for the purposes of QA/beta testing/etc (and installed via iTunes sync or OTA distribution), without the need for those QA/beta-testers to even know what an XCode is.

Seems to match several of Apple's own docs:

"When you’re ready to share your app for user testing [...], you need to create an archive of the app using a distribution provisioning profile and send it to app testers" (source)

and

Code Signing with a development profile allows your app to run on device through Xcode, and signing with a distribution profile allows you to create distribution builds.

The certificate named "iPhone Developer" allows you to run/debug your app on iOS devices through Xcode, and the certificate named "iPhone Distribution" allows testing your submission build with Ad Hoc distribution (source)

This seems to imply that using a distribution profile is necessary to do app sharing outside of the App Store, and for years I've always assumed this to be true. Recently however, I've been shown a use case from another colleague where they've been able to share builds with many other people using only a development provisioning file. Another user has described a similar discovery here: Why not use development provisioning instead of ad hoc?

I'm worried I might be missing something here, I'm now suspicious that there are cases where as long as another user has access to a relevant developer provisioning profile that includes their device's UUID, and installs it on their device (drag into iTunes, config utility, etc), that they would be able to sync Developer builds through iTunes as well, without the need for making separate Distribution builds.

This has led me to question some of the assumptions I've had about the nature of the differences between developer and distribution builds in general. I'm starting to think that it's more about debug support and general ease of installation, rather than the nature of how it's installed (XCode vs iTunes/OTA explicitly).

In short, if a device has it's UUID included in a developer provisioning profile, do I really need to make separate distribution builds, or can I simply share a Release Development build and assume that will work with an iTunes sync as well? Does the "Use for Development" button in organizer have any real relevance to this?

More broadly: what are the fundamental differences between Developer and AdHoc builds in terms of how they can be shared among other people within an organization in the development/testing phase before being submitted to the App Store?

Quake answered 6/3, 2013 at 7:37 Comment(1)
Ad-hoc builds are intended for distribution within the organization.Lex
T
3

Check this SO Post for the differences listed out between developer and distribution builds. From a developer perspective, there is not much difference whether you want to distribute your app either by signing it with a developer profile or distribution profile, provided you are not testing push notifications.

Theriot answered 6/3, 2013 at 8:16 Comment(8)
Can you please elaborate on the differences with regards to testing push notifications?Lex
The device tokens that are generated are different for development and distribution. If you want to test your push messages before you roll out to the appstore, then the only option available is to create an Ad-hoc distribution builds.Theriot
NO, it is possible to test push notification using a developer build. I have been doing so for almost 3 years now in my current project.Lex
Also the device token is the same for developer builds and production builds.Lex
What I meant was to test push using dev APN service (port 2195) and production APN service (port 2196)Theriot
"If you want to test your push messages before you roll out to the appstore, then the only option available is to create an Ad-hoc distribution builds." This implies that it is not possible to test push notifications on developer builds. The answer does not really contain any information on what the differences are with regards to push notifications.Lex
Do you happen to know if it's necessary to hit the "Use for Development" button first in organizer? All the devices I have access to right now already have that enabled, so it's hard for me to know if that's actually needed for deployment, or if it's mainly just for accessing logs/console/etc.Quake
This is an old post, but you can actually test push with a Development profile. You need to create a separate Push certificate for your backend and connect to gateway.sandbox.push.apple.com.Trochal

© 2022 - 2024 — McMap. All rights reserved.