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

182

В Xcode 3.2.5 я использую «Build And Archive» для создания файла IPA. В Xcode 4 вы можете использовать «Product -> Archive» для архивирования приложения в пакете .xcarchive.

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

Манни
источник
Попробуйте этот ответ на другой похожий вопрос: /programming/5271496/xcode4-ios-4-3-no-packager-exists-for-the-type-of-archive/5322743#5322743
pkananen
3
Каждый раз, когда я создаю новую версию adhoc, мой поиск в Google приводит меня сюда. Я видел эту страницу много раз за последние несколько месяцев. Хороший вопрос, хорошее решение
coneybeare
Вот плагин Xcode для экспорта IPA github.com/rajeshbeats/Xcode-Plugin-Export-IPA
Радж

Ответы:

391

Создание IPA выполняется так же, как и создание .xcarchive: Product -> Archive. После завершения операции архивирования перейдите в органайзер, выберите свой архив, выберите «Поделиться» и на панели «Выбор содержимого и параметров для совместного использования:» установите для «Содержимое» значение «Пакет App Store для iOS (.ipa)» и «Распределение удостоверений для iPhone» (которое должен соответствовать вашему профилю предоставления специального магазина / приложения для проекта).

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

Чтобы решить эту проблему, выполните следующие действия: пройдите настройки сборки для каждой цели, кроме цели приложения, и установите для флага «Пропустить установку» значение YES. Затем снова выполните Product -> Archive tango и перейдите к Организатору, чтобы выбрать новый архив. Теперь при нажатии на кнопку «Поделиться» должна быть включена опция .ipa.

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

eploko
источник
2
Это исправило мою проблему, спасибо! В моем случае проблема была на самом деле в одном из дочерних проектов (для меня ProtocolBuffers), у которого было несколько целей, которые нужно было установить без установки.
JosephH
Возможно, вам понадобится Product -> Очистить и открыть / закрыть рабочее пространство, прежде чем появится опция Product -> Archive.
Марк Чакериан,
У меня была проблема с несколькими целями. Установка общей библиотеки для Пропустить Установить ДА и приложение Пропустить Установка НЕТ исправили это. Это не было проблемой для меня в Xcode 3.2, только 4.1.
logancautrell
44
«Поделиться» теперь является «Распределить ...», а затем выберите «Сохранить для предприятия оперативного развертывания»
Рембрандт В. Эйнштейн,
«Пропустить установку» недостаточно - у меня есть эта ошибка с Xcode 4.5, и она отказывается когда-либо правильно распространять, с тех пор, как я добавил библиотеку с пакетом.
Адам
44

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

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

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

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

Борис Гафуров
источник
1
После перемещения заголовков в Project отлично работает вместе с вышеуказанными шагами. Спасибо
iOSAppDev
Как прохладный ветерок! Любой, кто отправит github.com/sprhawk/ytoolkit.git для OAuth в свой проект, потребует этого. Спасибо.
vmanjz
2
Почему в Xcode все еще полно таких серьезных ошибок? 18 месяцев спустя, чем этот комментарий, и ошибка все еще там! Спасибо за помощь.
Бен Клейтон
Ты не представляешь, как сильно я тебя люблю сейчас ... хотя бы одна из моих проблем решена! Спасибо!
Дмитрий
15

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

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

    введите описание изображения здесь

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

  • Там .ipaесть!
ohho
источник
Это то, что мне действительно нужно для моего xcode 4.6.3. Все вышеперечисленное для меня просто бессмысленно, только эта работа. Большой !
Форрест
осторожно, создаст ipa, но может не установить должным образом, после синхронизации он показывает значок на телефоне, но говорит, что установка выполняется снизу и никогда не заканчивается. во всяком случае, это мой опыт до сих пор после этого, Xcode 5.1.1.
Колин Ламарр
4

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

Джошуа Смит
источник
3
Было легко понять, как создать архив из проекта. Проблема в том, что при совместном использовании опция «Пакет» недоступна. Возможно, вы правы, что архив должен быть подписан правильно, чтобы эта опция была включена. Я использую ключ для распространения Ad-Hoc, а также имею права, указанные для распространения Ad-Hoc. Не могли бы вы поделиться, как сделать возможным создание файла IPA?
Красник
4

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

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

Дон хопкинс
источник
Ага! Все заголовочные файлы, помеченные как публичные, решают проблему. Установка их в качестве проекта устранила проблему!
ЯкубКнейзлик
3

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

Выберите свой архив. Выберите Поделиться. На панели «Выберите содержимое и параметры для совместного использования:» установите для «Содержимое» значение «Пакет iOS App Store (.ipa)» и «Идентификация для iPhone».

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

Полная информация о скриншотах здесь: Xcode4UserGuide

Snowcrash
источник
2

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

введите описание изображения здесь

Индер Кумар Раторе
источник
0

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

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

Теперь, выполняя Product / Archive / Share ..., вы получаете опцию «Пакет App Store для iOS (.ipa)» прямо над «Application» (который теперь неактивен) и «Archive» (который экспортирует .xcarchive).

Грэм Викстед
источник
0

Та же проблема. Я решил установить флаг «Пропустить установку» на ДА для каждого внешнего проекта, оставив другие цели основного проекта без изменений.

Я также должен был перейти к «Редактировать схему…», выбрать панель «Архивация» и установить правильные настройки сборки для своих специальных целей.

Тогда простой Product -> Archive -> Share сделал ожидаемую работу.

nebillo
источник
0

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

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

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

Сурджит Джоши
источник
0

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

Вивек
источник
0

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

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

Shrolox
источник