Preparing Ad Hoc Distribution for my app

renesteg picture renesteg · Feb 18, 2012 · Viewed 13.3k times · Source

I have been reading several tutorials and watching some iTube videos to see how I best prepare my app for Ad Hoc distribution. However the information I got is not really consistent, it goes from the 5 step explanation from the Developer Center of Apple to a almost 3 minutes video, where I would have to set some Code Signing options in XCode, create and zip the Archive etc. My questions:

1. Is there a tutorial available, which explains everything required, but not too much? I somehow feel, for instance, that code signing is not really required.

2. After I tried to install the app using iTunes, the synch claimed that it was not able to install it. Is there some log available in iTunes, so I can check for further error details?

3. How about switching from Ad Hoc distribution mode to normal developer mode? After I followed the steps from the video and prepared my app for Ad Hoc distribution, I was not able to install it on my device anymore, I got the error

Build target Abiliator Check dependencies [BEROR]CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 5.0'

This is the video tutorial on iTube I followed: Demo of iPhone app Ad Hoc distribution

Thanks for your feedback and have a great weekend.

Answer

renesteg picture renesteg · Feb 19, 2012

OK, looked up the Error " the following job tried to hijack the service..." and saw that a reboot of the iPhone may solve the issue... and guess what, I was chasing a phantom all day long..... It works perfectly. So last hint for anyone, having a similar issue, after installing an app via Ad Hoc the first time: Reboot iPhone, otherwise the app may crash.

Cheers and now good nite :-)

PS: Just to round this thread up here the steps I did at the end (as mentioned, I am using XCode 4.2.1) :

  1. Added my device on the Provisioning Portal (this had been done long time ago, however it is an important step, as the beta testers device IDs also need to be registered here before you re-create and download the distribution profile)
  2. Created and downloaded an iOS Distribution Certificate in the Provisioning Portal
  3. Imported the certificate in my Keychain
  4. Created a Ad Hoc Provisioning File in the Provisioning Portal
  5. Downloaded that profile
  6. Double clicked the profile, which added it to the XCode Organizer Provisioning Profile Section)
  7. Added the options Any SDK and Any iOS SDK in for Ad Hoc Distribution Code Signing Identity in the Code Signing section of my project AND my target and set the values with my Ad Hoc Provisioning File I just created and imported
  8. Made sure the option in my app .plist file "Application requires iPhone environment" was set to true
  9. Ran a clean (Product / Clean) and then a build only (Product Build)
  10. Made sure the app was not installed on my iPhone (as I was testing before via XCode)
  11. Copied the target (group Products via Show in Finder) to iTunes via Drag and Drop (I dropped it into the Media section)
  12. Copied the Ad Hoc Provisioning File into iTunes via Drag and Drop (also to the Media section)
  13. Made sure the app was checked for the synch, synched iTunes with the iPhone
  14. Lastly rebooted my iPhone! However, I am pretty sure, that this might occur on the Developers device only. I assume that the reason for that was a process, still remaining on the iPhone, from my last test via XCode.

I did not use an entitlements file. I have actually to find out, what that file is really for, I have read that it might be required only, if using iCloud. And XCode 4.2 developers, there is nothing like File / New / Entitlement Template anymore in XCode. The file is created as soon as you check the option Entitlements and give the file your desired name in the Summary tab of your target.

You may also want to download the iPhone Configuration Utility from apple

I will also recommend this to my beta testers, as it allows you to see the console log of the iPhone, which of course might be very helpful in case of errors.

Hope this summary helps others, setting up their app for the first Ad Hoc distribution.

Cheers, René