Архив xcodebuild генерирует неверный xcarchive при добавлении пользовательских настроек сборки

Я пытаюсь создать xcarchive с помощью xcodebuild, который позже могу экспортировать как .ipa, используя новую функциональность, добавленную с Xcode 5.

Это отлично работает:

xcodebuild -workspace 'MyWorkspace.xcworkspace' -scheme 'MyScheme' -configuration 'Release' -archivePath tmp.xcarchive archive
xcodebuild -exportArchive -exportFormat IPA -archivePath tmp.xcarchive -exportPath app.ipa -exportWithOriginalSigningIdentity

Но как только я добавлю настройки пользовательской сборки в команду архива:

-derivedDataPath build SYMROOT=build/build.sym DSTROOT=build/build.dst OBJROOT=build/build.obj SHARED_PRECOMPS_DIR=build/build.pch

Созданный .xcarchive пуст, но ошибки нет.

Любые идеи?

Ответ 1

Для меня это связано с Installation Directory установкой сборки развертывания в Xcode: CMake каким-то образом устанавливает это значение в "", то есть пустую строку, когда она должна была быть "/Applications", по умолчанию для Xcode. Для меня установка его на что-либо еще, кроме "/Applications", привела к тому, что полученный архив был пустым и, следовательно, "искажен".

Так что, возможно, у вашего проекта как-то не было Installation Directory установлено значение "/Applications", либо из-за CMake, либо что-то еще.

Чтобы установить это с помощью CMake, добавьте его в целевые свойства:

set_target_properties(${MODULE} PROPERTIES
     ...
     XCODE_ATTRIBUTE_INSTALL_PATH "/Applications"
     ...
)

Ответ 2

Для меня эта ошибка произошла, когда у меня не осталось места на диске, где я пытался создать архив. Но я не мог сказать, что из ошибок в консоли он

Ответ 3

В моем случае каталог/путь к файлу archivepath был неправильно установлен на предыдущих шагах, и он просматривал каталог, в котором не было файла .xcarchive. Стоит проверить вручную пути и если файл архива существует в каталоге

Ответ 4

В моем случае я пропустил расширение .xcarchive в конце моего пути.

xcodebuild -exportArchive -archivePath /<path_to_archive>/file.xcarchive ...