2016-10-03 2 views
5

Я занят работой над сборкой Jenkins, которая будет создавать приложения для iOS. Мне удалось создать архив успешно с этой командой:XCodeBuild -exportArchive не разрешает мне указывать имя файла

xcodebuild archive -archivePath build/app.xcarchive 

Теперь я пытаюсь экспортировать этот архив с указанием имени выходного файла, но не могу получить этот work.In примера ниже Я хочу, чтобы выходной файл с именем app.ipa, но все это я получаю папку с именем app.ipa с файлом ипа внутри имя .ipa

xcrun xcodebuild -exportArchive -exportPath build/app.ipa -archivePath build/app.xcarchive/ -exportOptionsPlist exportOptions.plist 

Outputs a file /build/app.ipa/<projectname>.ipa 

Яблоки документация XCodeBuild говорит, что вы можете указать путь вывода, включая файл наименование:

-exportPath путь к отправке Задает пункт назначения для экспортируемого продукта, включая имя экспортируемого файла.

https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html

Причина этого заключается в том, что я хотел бы, чтобы строить родовое так, что любой проект, который я отправить через него приведет к app.ipa без меня необходимости следить за названиями проектов и различные выходные файлы и т.д.

+0

Что такое 'xcrun xcodebuild'. Раньше я никогда такого не видел. – midori

+0

«xcrun предоставляет средства для поиска или вызова средств разработчика из командной строки, не требуя от пользователей модификации Make-файлов или принятия неудобных мер для поддержки нескольких цепей инструментов Xcode». https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/xcrun.1.html – Craigt

+1

Да, ранее без -exportOptionsPlist, эта же команда создала указанный файл, теперь после 8.3 , создавая папку и внутри этой папки .ipa. Есть ли какое-либо обходное решение, кроме использования mv? – karim

ответ

2

Если вы делаете xcodebuild --help он говорит:

-exportPath PATH specifies the destination for the product exported from an archive 

хммм.

Чтобы сделать обходной путь, вы можете переименовать свой файл впоследствии.

mv "oldname" "newname" 
+0

Привет, мне бы хотелось сделать это, не зная, что такое «старое имя». Я хочу перепрограммировать этот же скрипт сборки для нескольких проектов и не знаю, что такое имя выходного файла. – Craigt

+0

Значит, яблоко избавилось от возможности указать имя файла для файла .ipa? Кажется странным, что они позволяют вам указать его для .xcarchive, но не в результате .ipa. – Bungles

3

ArchiveAction тег в .xcscheme файл может иметь атрибут customArchiveName, который может быть установлен на все, что угодно.

<ArchiveAction 
     buildConfiguration = "AdHoc_Example" 
     customArchiveName = "app" 
     revealArchiveInOrganizer = "YES"> 
    </ArchiveAction> 
</Scheme> 

Это даст вам app.ipa всегда при экспорте архив через -exportOptionsPlist.

Смежные вопросы