Xcode 4 + iOS 4.3: "No Packager exists for the type of archive"

I just upgraded to Xcode 4 and am trying to create an adhoc build of an earlier project. Whenever I use the "Archive" option I either end up with no archive at all in the Organizer window OR there is an archive, but there is no option to package it as an .ipa, because "No Packager exists for the type of archive".

Has anyone gotten adhoc builds working under Xcode 4 for project that have been migrated from Xcode 3.2?


Solution 1:

you may have some linked projects (like librairies) inside your main project. Go to the Build settings of those projects and set the setting "Skip install" (Deployement category) to "Yes", but leave the "Skip install" of the main project to "No". Build, archive, and you should be able to select the ipa package.

Solution 2:

Thanks but I needed 3 steps to entierly solve the problem with my project framework:

  1. set the Target Build Settings/"Skip Installation" property to "YES" for every dependency project

  2. clear the Target Build Settings "Installation Directory" property for every projects

  3. for every projects, move every headers from section "Build Phases/Build Settings/Copy Headers" Public/Private to Project

Solution 3:

I found that a combination of these answers solved the problem. I spent a lot of time verifying whether Skip Install was set to Yes on all linked projects and it turned out that was only part of the issue for me. If you're experiencing this issue with Archive, here are the steps to take:

  1. Find the archive in the Organizer, right-click and select Show in Finder.
  2. Right-click the .xcarchive file in Finder and select Show Package Contents.
  3. Find the Products folder and see what's in it. There should only be an Applications folder in the Products folder, and the Applications folder should contain only one iPhone app (YourProject.app).

If, in step 3, you find a static library (<some-library>.a) either directly under Products or in a subfolder, go to Xcode and select the project that produced the static library (you should be able to tell which project it is based on the name of the static library). Go to the Build Settings and select the target, then set "Skip Install" to "Yes".

If, in step 3, you find header files (<some-header>.h) either directly under Products or in a subfolder, go to Xcode and select the project that contains those headers. You should be able to find the project based on the prefix used in the header file names. In that project, go to the Build Phases, and in the Copy Headers section, move all headers from the Public and Private sections to the Project section.

Thanks to this answer and this answer and this answer for helping me to resolve this.