Как преобразовать .xcarchive в .ipa, чтобы клиент мог отправить приложение в магазин приложений с помощью загрузчика приложений

Мы создали подпись кода файла .xcarchive с помощью сертификата и профиля распределения нашего клиента, но нам нужно отправить файл .ipa нашему клиенту, чтобы они могли загрузить приложение в магазин приложений с помощью загрузчика приложений.

Единственный способ создать файл .ipa в Xcode 4.5 - это нажать «Распространить» -> «Сохранить для предприятия» или «Специальное развертывание», под описанием которого указано «Подписать и упаковать приложение для распространения за пределами iOS App Store».

Если мы сохраним файл .ipa таким образом, возникнут ли проблемы с отправкой в ​​магазин приложений? Или есть правильный способ конвертировать .xcarchive в .ipa?

Заранее спасибо!


person aobs    schedule 18.02.2013    source источник


Ответы (7)


Я также наблюдал ту же проблему в одном из моих проектов.

Я решил это, изменив настройки в target. Для основного проекта и зависимости.

 skip Install  NO

После этого изменения перейдите к Xcode-> Product-> Archive-> Save for Enterprise или Ad-Hoc Deployment.

Мы последовали тому же процессу и загрузили через Application Loader, и Apple одобрила приложение.

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

person Guru    schedule 18.02.2013
comment
Для параметра "Пропустить установку" изначально задано значение "НЕТ". Означает ли это, что мы можем безопасно отправить файл .ipa нашему клиенту после сохранения для предприятия или специального развертывания? - person aobs; 18.02.2013
comment
да, я делал то же самое во многих проектах, и теперь приложение доступно в магазине приложений. Убедитесь, что вы использовали профиль обеспечения распространения. - person Guru; 18.02.2013
comment
В разделе - ›Архив в XCode 8.2 нет подменю, поэтому эти направления больше не работают. - person Logicsaurus Rex; 17.01.2017
comment
@LogicsaurusRex в старом Xcode также не имеет подменю. После того, как вы нажмете «Архив», откроется новое окно. Там выберите Сохранить для предприятия ... - person Guru; 17.01.2017
comment
Архив не имеет подменю в разделе «Архив» в Xcode 12.5. Это выводит .xcarchive файл, а не .ipa - person Pigpocket; 02.07.2021

  1. Создайте файл Xarchieve с помощью Xcode, щелкните продукт-> архив
  2. сначала щелкните правой кнопкой мыши файл xarchive-> показать в поисковике
  3. снова щелкните правой кнопкой мыши файл xarchive-> показать содержимое пакета
  4. Затем откройте папку products-> applications, здесь вы получите файл вашего приложения.
  5. Теперь перетащите его в каталог приложений магазина itunes (найдите раскрывающееся меню приложений в правом верхнем углу магазина itunes). Это автоматически преобразует архивный файл в файл ipa. (Здесь вы также можете сделать это -> перетащите файл .app в любое место в itunestore, как только он будет обработан, найдите его обратно из окна поиска).

  6. затем снова щелкните его правой кнопкой мыши и -> показать в поисковике, это покажет ваш файл ipa. Теперь вы можете передать это любому пользователю

person Mehul Thakkar    schedule 24.09.2013
comment
При использовании iTunes 11.4 под OS X Mavericks это решение, похоже, не сработало для меня. Что действительно помогло, так это перетаскивание файла приложения (шаг №4 сверху) в раздел Library iTunes, расположенный в верхнем левом углу (где перечислены Music, Movies, TV Shows и т. Д.). Оттуда он создал файл .ipa и, поскольку это было первое приложение, которое я добавил в iTunes таким образом, также создал раздел Apps в моей медиатеке iTunes. Оттуда вы можете щелкнуть приложение правой кнопкой мыши и выбрать Show in Finder, чтобы напрямую перейти к нему. - person Evan R; 08.10.2014
comment
он работает над itunes 11.4 и mavericks, я попробовал сегодня сам, после вашего комментария и его работы нормально - person Mehul Thakkar; 10.10.2014
comment
Работаем над Йосемити, Эван Р. прокомментировал заключительные шаги. - person aramusss; 17.01.2015
comment
Почему не может быть проще? Apple, похоже, с удовольствием заставляет разработчиков страдать! - person Eduardo; 04.10.2016
comment
Не могли бы вы уточнить шаг 5? Вы имеете в виду перетаскивание MyProject.app на настоящий экран приложения iTunes или что? Если нет, то где находится каталог приложений iTunes Store? я смущен - person Artem Zaytsev; 13.05.2017
comment
вы можете увидеть опцию «Приложения» в меню в верхнем левом углу itunes. - person Mehul Thakkar; 15.05.2017

Обновлено для Xcode 7 и 8

Вот сценарий для создания архива и генерации .ipa - настройки по мере необходимости:

PROJECT=xxx
ARCHIVE_PATH=/tmp/${PROJECT}.xcarchive
EXPORT_PATH=/tmp/${PROJECT} # DIRECTORY
mkdir -p $ARCHIVE_PATH
xcodebuild -project ./${PROJECT}.xcodeproj -scheme ${SCHEME} archive -archivePath $ARCHIVE_PATH -verbose

PLIST='{"compileBitcode":false,"method":"enterprise"}' # edit as needed

EXPORT_PLIST=/tmp/${PROJECT}.plist
echo $PLIST | plutil -convert xml1 -o $EXPORT_PLIST -

xcodebuild -exportArchive -archivePath $ARCHIVE_PATH -exportPath $EXPORT_PATH -exportOptionsPlist $EXPORT_PLIST
person Jason Moore    schedule 10.10.2014
comment
Xcode 6 продолжает выдавать эту ошибку, и эта команда работала как шарм - person Daniel Galasko; 05.05.2015
comment
просто совет, вы также можете указать профиль подготовки, добавив -exportProvisioningProfile "{PROVISION_PROFILE_NAME}" - person Daniel Galasko; 08.05.2015
comment
этот метод устарел в новых выпусках XCode, теперь следует использовать exportOptionsPlist. - person Ohad Schneider; 14.12.2015

Сначала продукт> Архив, затем щелкните правой кнопкой мыши созданный файл xcodearchive, выберите Show package content и перейдите в папку Products -> Applications. Создайте новую папку с именем Payload и перетащите файл .app в эту папку. Сожмите папку Payload и переименуйте ее, как хотите, и измените расширение на .ipa.

Если размер вашего приложения слишком велик, вы можете отключить битовый код в настройках сборки, чтобы уменьшить его на 50–70%.

person Vahid Amiri    schedule 25.03.2018

Вы можете создать IPA из XCArchive.

  1. Щелкните правой кнопкой мыши ProjectName [Date Time] .xcarchive.
  2. Выберите Показать содержимое пакета.

Шаг 1

Шаг 2

Он состоит из трех вещей:

а. dSYM: файлы dSYM хранят символы отладки для вашего приложения.

б. Info.plist: список свойств, содержащий такие сведения, как ApplicationProperties, ArchiveVersion, CreationDate, Name, Scheme.

c. Продукты: содержит файл приложения для вашего проекта.

  1. Выберите Продукты -> Приложения. Он содержит файл приложения.

  2. Теперь перетащите файл приложения в iTunes (вкладка MyApps).

  3. Выберите свой проект.

  4. Щелкните правой кнопкой мыши и выберите «Показать в поисковике». Это позволит найти вновь созданный файл IPA.

Шаг 4

Шаг 5

person Jayprakash Dubey    schedule 13.01.2015
comment
когда я пытаюсь загрузить этот IPA на diawi.com, он говорит, что идентификатор пакета и info.plist не найдены! Любая идея? - person Prajeet Shrestha; 13.04.2017

XCode > Project > Archive
XCode > Organizer > Distribute > Enterprise/add Hoc > Save As
Saves as YOURAPP.ipa.
Make sure Save for Enterprise Deploy remains UNCHECKED.
Download latest Application Loader.
tap 'Deliver Your App'
make sure new version in itunes connect in WAITING FOR UPLOAD state
Click on Activity... button 

СОВЕТ: откройте Console.app, чтобы увидеть ошибки проверки XCode.

Click on ALL MESSAGE on list of logs on right.
Then in search enter 'XCode' or 'Application Loader' 
to monitor any errors with your upload.

Примечание:

Я проделал все это, но все равно получил письмо по поводу отсутствия значков размером 120x120 пикселей.

Забыл обновить их в Build Target> General Tab List новых требований к значкам для iOS7 http://www.icenium.com/resources/forums/icenium-general-discussion/missing-recommended-icon-file

person brian.clear    schedule 24.09.2013
comment
Это должен быть принятый ответ, так как никто не хочет возиться с iTunes, не говоря уже о том, что в какой-то версии он просто не показывает вкладку приложений в интерфейсе ... + Это гораздо больше отношение разработчиков. - person Dominik Bucher; 09.11.2017

Если вам это нужно из командной строки, вы можете найти все подробности здесь: http://encyclopediaofdaniel.com/blog/xcarchive-to-ipa. Суммируя:

xcodebuild 
   -exportArchive -archivePath <path to archive> -exportPath <path to output> 
   -exportOptionsPlist <path to export options plist>

Список минимальных опций выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>method</key>
    <string>app-store</string>
</dict>
</plist>

Конечно, метод будет меняться в соответствии с типом профиля обеспечения, который вы использовали (app-store предназначен для профилей распространения). Запустите xcodebuild --help, чтобы увидеть список доступных опций.

person Ohad Schneider    schedule 14.12.2015
comment
Где, черт возьми, ты нашел этот пример plist? P.S .: Спасибо за решение! Отлично работает - person Artem Zaytsev; 13.05.2017
comment
@ArtemZaytsev рад, что смог помочь! Как я уже упоминал в своем ответе, запуск xcodebuild --help покажет вам действительные значения plist. - person Ohad Schneider; 14.05.2017