Xcode 4 + iOS 4.3: «Не существует Packager для типа архива» - PullRequest
76 голосов
/ 11 марта 2011

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

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

Ответы [ 7 ]

134 голосов
/ 16 марта 2011

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

25 голосов
/ 19 мая 2011

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

  1. установите для свойства Target Build Settings / «Skip Installation» значение «YES» для каждого проекта зависимостей

  2. очистить свойство «Каталог установки» параметров целевой сборки для каждого проекта

  3. для каждого проекта переместите все заголовки из раздела «Фазы сборки / Настройки сборки / Копировать заголовки» Public / Private в Project

9 голосов
/ 29 декабря 2011

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

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

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

Если на шаге 3 вы найдете файлы заголовков ( .h) либо непосредственно в разделе «Продукты», либо в подпапке, перейдите в Xcode и выберите проект, содержащий эти заголовки. Вы должны быть в состоянии найти проект на основе префикса, используемого в именах заголовочных файлов. В этом проекте перейдите к этапам сборки и в разделе «Копировать заголовки» переместите все заголовки из открытых и закрытых разделов в раздел «Проект».

Спасибо за этот ответ и за этот ответ и за этот ответ за помощь в разрешении этой проблемы.

5 голосов
/ 29 марта 2011

Вот еще два совета, которые мы сочли полезными с этой проблемой ... не ответы, но они могут сэкономить кому-то еще МНОГО времени бездельничать 8 /

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

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

3 голосов
/ 06 декабря 2011

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

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

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

1 голос
/ 13 апреля 2013

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

1: «Перейти к установке» в YES для всех добавляемых библиотек третьей части.«Пропустить для установки» для NO для вашего проекта. Вы можете получить доступ к «Пропустить для установки» в настройках Build.

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

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

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

2.3 выберите Целевое членство и измените опцию «Проект» с публичного или частного

1 голос
/ 24 ноября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...