Xcode 4 + iOS 4.3: "Не существует Packager для типа архива"

Я только что обновился до Xcode 4 и пытаюсь создать временную сборку более раннего проекта. Всякий раз, когда я использую опцию "Архив", в окне "Органайзер" я либо не получаю никакого архива, либо есть архив, но нет возможности упаковать его как .ipa, потому что "для типа архива не существует Packager ".

Кто-нибудь получил сборки adhoc, работающие под Xcode 4 для проекта, который был перенесен из Xcode 3.2?

Ответ 1

у вас могут быть связанные проекты (например, librairies) внутри вашего основного проекта. Перейдите в настройки сборки этих проектов и установите для параметра "Пропустить установку" (категория развертывания) значение "Да", но оставьте "Пропустить установку" основного проекта "Нет". Создавайте, архивируйте, и вы должны иметь возможность выбрать пакет ipa.

Ответ 2

Спасибо, но мне потребовалось 3 шага, чтобы решить проблему с моей картой проекта:

  • установите для параметра Target Build Settings/ "Пропустить установку" значение "YES" для каждого проекта зависимостей

  • очистить свойства целевой установки "Каталог установки" для всех проектов

  • для каждого проекта, перемещайте все заголовки из раздела "Сборка фаз/Настройки сборки/Копировать заголовки" Публично/Частно для проекта

Ответ 3

Я обнаружил, что комбинация этих ответов решила проблему. Я потратил много времени на проверку того, было ли у Skip Install установлено значение Yes во всех связанных проектах, и оказалось, что это было только частью проблемы для меня. Если у вас возникла проблема с архивом, выполните следующие действия:

  • Найдите архив в организаторе, щелкните правой кнопкой мыши и выберите "Показать в Finder".
  • Щелкните правой кнопкой мыши файл .xcarchive в Finder и выберите "Показать содержимое пакета".
  • Найдите папку "Продукты" и посмотрите, что в ней. В папке "Продукты" должна быть папка "Приложения", а папка "Приложения" должна содержать только одно приложение iPhone (YourProject.app).

Если на шаге 3 вы найдете статическую библиотеку (< some-library > .a) либо непосредственно под Продуктами, либо в подпапке, перейдите в Xcode и выберите проект, который создал статическую библиотеку (вы должны быть способны чтобы определить, в каком проекте он основан на имени статической библиотеки). Перейдите в Настройки сборки и выберите цель, затем установите "Пропустить установку" в "Да".

Если на шаге 3 вы найдете файлы заголовков (< some-header > .h) либо непосредственно под Продуктами, либо в подпапке, перейдите в Xcode и выберите проект, содержащий эти заголовки. Вы должны найти проект на основе префикса, используемого в именах файлов заголовков. В этом проекте перейдите в раздел "Сборка фаз" и в разделе "Копирование заголовков" переместите все заголовки из раздела "Публичный" и "частный" в раздел "Проект".

Благодаря этому ответу и этот ответ и этот answer, чтобы помочь мне решить эту проблему.

Ответ 4

Здесь два других совета, которые мы нашли полезными с этой проблемой... не ответы, но они могут спасти кого-то еще, много времени возиться вокруг 8/

Если вы используете статические библиотеки, которые НЕ создаются с помощью xcode4, обходной путь "развертывание → пропустить" не будет работать для них. Работа для этого заключается в том, чтобы НЕ добавлять их в проект и следить за тем, чтобы их пути находились в пулах заголовков и/или библиотек в настройках сборки, а также записи -lblah добавлены в флаги компоновщика.

Кроме того, если у вас есть статическая lib, заданная как целевая зависимость (например, мы установили libjson.a как это, и я уверен, что правильная/логическая вещь, чтобы сделать), тогда вы просто не сможете сборка .ipa независимо от того, что. Мы провели больше, чем полный день, танцуя вокруг с этой глупой проблемой, и в конце концов это просто устранило это. Лично я думаю, что это должно действительно оставить сломанный проект... но он работает так meh.

Ответ 5

Чтобы выяснить, какой проект/library/компонент препятствует созданию Xcode из соответствующего архива, выполните следующие действия:

Найдите архив в Органайзер, щелкните правой кнопкой мыши и покажите в Finder. Это покажет файл .xcarchive. Щелкните правой кнопкой мыши и покажите содержимое пакета. Теперь загляните в папку "Продукты". Скорее всего, будет больше, чем просто папка приложения с одним приложением iPhone внутри.

В моем случае была создана папка usr/local/lib, содержащая libOAuthConsumer_iPhone.a, и когда я искал это в Xcode, я действительно нашел другой проект, где я не установил Skip Install на YES. Это может быть не так просто для всех, но просмотр внутри пакета должен хотя бы дать вам указатель на то, какой компонент испортил процесс архивации.

Ответ 6

Пропустить установку не удалось. Я решил эту проблему переместить все заголовки, обозначенные как общедоступные для проекта. Я сейчас работаю в рабочей области со статическим lib и ipad proj. Похоже, что есть ошибка или что-то с xcode всякий раз, когда вы хотите создать свой продукт с помощью связанного проекта, xcode строит оба, и Organizer не показывает вариант совместного использования ipa.

Ответ 7

Это шаги для решения вышеуказанной проблемы в xcode 4.2

1: "Пропустить, чтобы установить" в YES для всех добавленных библиотек третьей части. "Пропустить, чтобы установить" в НЕТ для вашего проекта. Вы можете получить доступ к "Пропустить для установки" из настроек сборки.

2: Выберите заголовки сторонних библиотек в левой панели навигатора.

2.1: Справа находится панель Utililtes.Показать и скрыть ее с помощью view → utilities- > show/hide utilities (command-Option-0) или с помощью третьей кнопки в сегментированном элементе просмотра на панели инструментов

2.2: выберите инспектор файлов (command-option-1)

2.3 выберите "Целевое членство" и "Изменить" в "Проект" из открытого или закрытого