Подтвердить что ты не робот

Как сгенерировать файл .ipa из командной строки с помощью приложения watchkit

У меня есть экземпляр jenkins, который создает сборку с использованием xcodebuild. Затем у меня есть script (на Jenkins), чтобы создать файл .ipa с помощью xcrun. это работало отлично для нас до сих пор. Теперь у нас есть приложение watchkit, а файл .ipa, созданный из этого процесса, не совпадает с тем, который создается, если вы создаете архив и экспортируете его из Xcode.

Экспортированный .ipa из Xcode имеет папку "Полезная нагрузка", папку "Символы" (возможно, необязательно) и папку "WatchKitSupport". Ipa, сгенерированный из xcrun, не имеет папки "Символы" или "WatchKitSupport". Подробнее о структуре можно узнать здесь: qaru.site/info/264174/...

Я видел это сообщение на SO: qaru.site/info/18946/..., у которого есть команды для архивирования и экспорта .ipa-сборки (аналогично процессу Xcode), но даже это didn ' t создайте новые папки, о которых идет речь.

Кто-нибудь знает, есть ли способ использовать инструменты командной строки для создания файла .ipa, эквивалентного файлу, созданному Xcode? Я не нашел официальной документации по этому

4b9b3361

Ответ 1

Точная проблема

xcodebuild -exportArchive не может сделать правильный IPA с расширением Watch, это ошибка Apple (http://openradar.appspot.com/20898925).

Официальное решение (Xcode 7)

Apple решила эту проблему в Xcode 7 с флагом -exportOptionsPlist команды xcodebuild -exportArchive. Вы можете найти более подробную информацию об этом в этой статье.

Неофициальные (Xcode 6) решения

Обходные пути для решения проблемы. Если это срочно, вы можете поиграть с ними, но я не смог найти обходной путь, который работал для всех (основываясь на обсуждениях на форуме).

  • Добавление папок WatchKitSupport и Symbols. Подробнее здесь и здесь. Это не работало для меня.
  • Отказ от всего приложения. Подробнее здесь. Он взломан, но работает лучше, чем ранее упомянутое решение.

Ответ 2

Я тоже столкнулся с той же проблемой. Инструмент командной строки exportArchive пропускает необходимые папки поддержки Watchkit при экспорте архива в ipa. Я попытался разобраться с использованием следующей оболочки script.

https://gist.github.com/phatblat/6eb8895e2202f796960e

Вы можете вызывать вышеупомянутый shellscript из своего сценария Jenkins, как показано ниже.

<exec executable="/bin/bash" failonerror="true">
            <arg value="${root.dir}/buildscripts/package-ida.sh" />
            <arg value="${build.dir}/APP_NAME.xcarchive" />
            <arg value="${build.dir}/APP_NAME.ipa" />
        </exec>

Теперь вы сможете увидеть папку поддержки WatchKit в своей полезной нагрузке ipa, и ваша проверка приложения appstore также будет выполнена с использованием сгенерированной сборки Jenkins.