Xcode 4: создать файл IPA вместо .xcarchive

В Xcode 3.2.5 я использую "Build And Archive" для создания файла IPA. В Xcode 4 вы можете использовать "Продукт → Архив" для архивирования приложения в пакете .xcarchive.

Как создать файл .ipa с Xcode 4?

Ответ 1

Создание IPA выполняется так же, как создание .xcarchive: Product → Archive. После завершения операции Архивирования перейдите в Органайзер, выберите свой архив, выберите "Поделиться" и в поле "Выберите контент и параметры для совместного использования:" установите "Содержимое" в "Пакет хранилища приложений iOS (.ipa) и Identity to iPhone Distribution (который должен соответствовать профилю вашего рекламного объявления/магазина приложений для проекта).

Скорее всего, опция "Пакет приложений для магазина приложений iOS (.ipa)" может быть отключена. Это происходит, когда ваша сборка создает более одной цели: скажем, приложение и библиотеку. Все они попадают в папку с продуктами сборки, и Xcode наивно путается о том, как их упаковать в файл .ipa, поэтому он просто отключает эту опцию.

Способ решения этой проблемы заключается в следующем: выполните настройки сборки для каждой из целей, за исключением целевого объекта приложения, и установите флажок "Пропустить установку установки" в "ДА". Затем снова запустите Product → Archive tango и перейдите в Организатор, чтобы выбрать новый архив. Теперь, когда вы нажимаете кнопку "Поделиться", параметр .ipa должен быть включен.

Надеюсь, это поможет.

Ответ 2

Просто установка Skip Install для YES не сработала для меня. Надеюсь, это поможет кому-то.

Я пошел на зависимость моих целей проекта: Coreplot-CocoaTouch. Затем перешли на цели Coreplot-CocoaTouch. В своих целевых объектах открываются фазы сборки. Затем открыли Копировать заголовки. Там у меня были некоторые заголовки в Public, некоторые из Private и некоторые в Project. Перемещено ВСЕ из них в Project.

Конечно, в настройках сборки для целевых объектов Coreplot-CocoaTouch проверено, что для параметра Пропустить установку установлено значение "Да" в параметрах развертывания.

И на этот раз Архив создал архив, который можно было бы подписывать и .ipa.

Ответ 3

Для архивов Xcode 4.6 (и Xcode 5)

  • В организаторе щелкните правой кнопкой мыши архив, выберите "Показать в Finder"
  • В Finder щелкните правой кнопкой мыши архив, выберите "Показать содержимое пакета"
  • Откройте папку Продукты > Приложения
  • Приложение есть
  • Перетащите приложение в папку iTunes Apps

    enter image description here

  • Щелкните правой кнопкой мыши приложение в iTunes Apps, выберите "Показать в Finder"

  • .ipa есть!

Ответ 4

В организаторе вы можете нажать "Поделиться" и сохранить как пакет приложений App Store (.ipa). Вы также можете выбрать "Архив" в меню "Продукт", чтобы создать архив в Органайзер. Наконец, я думаю, что для этого нужно иметь правильно подписанную архивированную сборку.

Ответ 5

Предполагая, что вы сделали успешный Продукт > Архив, затем от Организатора (Shift Apple 2) щелкните Архивы.

Выберите свой Архив. Выберите "Поделиться". На панели "Выберите контент и параметры для совместного использования:" установите "Содержание" в папку "Магазин приложений для iOS" (.ipa) и "Identity to iPhone".

Нажмите "Далее", введите имя приложения и нажмите "Сохранить".

Подробные сведения о скриншотах приведены здесь: Xcode4UserGuide

Ответ 6

У меня была такая же проблема, используя старую версию библиотеки route-me. Я "пропустил" все библиотеки и библиотеки внутри библиотек (proj4), но у меня все еще была такая же проблема. Оказывается, что route-me и proj4 устанавливали общедоступные файлы заголовков, даже когда библиотеки пропускались, что было бесполезно! Поэтому я только что вошел в маршрут - я и proj4 цели вкладка "Построить фазы", ​​открыл "Копировать заголовки", открыл "Публикация" и перетащил эти заголовки из "Общественности" в "Проект". Теперь они не устанавливаются в $(BUILD)/usr/local/include, и я могу сделать ipa файл из архива!

Я надеюсь, что Apple решит эту ужасную проблему юзабилити с XCode. Он не дает абсолютно никакого указания на то, что неправильно, он просто не работает. Я ненавижу тусклые элементы управления, которые ничего не говорят о том, почему они затуманены. Как насчет того, чтобы игнорировать клики, отключенные элементы управления могли вывести сообщение о том, почему, черт возьми, они отключены, когда вы нажимаете на них в расстройстве?

Ответ 8

Тот, кто попробовал все другие ответы и не повезло, пожалуйста, установите этот флажок, надеюсь, что это поможет (сделал трюк для меня xcode 6.0.1)

enter image description here

Ответ 9

У меня была такая же проблема... Придется воссоздать проект с нуля.

Примечание. Мой проект был создан в XCode 3.1 и привязывался к статической библиотеке, которая строилась как подпроект (для общего назначения). Я изменил это, чтобы построить источник вместо этого, когда я воссоздал проект XCode в XCode 4.

Теперь, когда в Product/Archive/Share... появляется опция "iOS App Store Package (.ipa)" непосредственно над "Приложением" (которое теперь выделено серым цветом) и "Архив" (которое экспортирует .xcarchive).

Ответ 10

Такая же проблема. Я решил установить флаг "skip install" для YES для каждого внешнего проекта, оставив другие цели основного проекта без изменений.

Мне также пришлось перейти к "Редактировать схему...", выбрать панель "Архивирование" и установить правильную настройку сборки для моей специальной задачи.

Затем простой продукт → Архив → Поделиться сделал ожидаемую работу.

Ответ 11

Вам нужно будет создать и архивировать ваш проект. Вам может потребоваться проверить, какие настройки подписывания кода у вас есть в проекте и исполняемом файле.

Используйте Организатор, чтобы выбрать свою версию архива, а затем вы можете поделиться этой версией своего проекта. Вам нужно будет снова выбрать правильную подпись кода. Это позволит вам сохранить файл .ipa, где вы хотите.

Перетащите файл .ipa в iTunes и затем синхронизируйтесь с вашим iPhone.

Ответ 12

Если это игра (может быть, приложение также), и у вас есть некоторые статические библиотеки, такие как cocos2d или другая сторонняя библиотека... тогда вам просто нужно выбрать старую библиотеку * ТОЛЬКО * НЕ APP) и в настройках его сборки в разделе "Развертывание" установите флажок "Пропустить установку установки" на YES, и Archive it dats it...!!

Ответ 13

У меня возникла такая же проблема. Ни один из ответов выше не работал у меня, но я решил найти решение самостоятельно. Файл ipa не был создан из-за наличия файлов библиотеки (libXXX.a) в Target- > Build Phases → Copy Bundle с ресурсами

Надеюсь, это поможет кому-то:)