Неверный или непригодный формат файла iPhone Codesign
Я случайно удалил свою цель в xcode.
поэтому я создал новый с таким же именем. в целевых настройках я снова выбрал правильный идентификатор кода
но теперь я больше не могу скомпилировать устройство. как только я хочу построить, я получаю:
CodeSign build/Release-iphoneos/myApp.app
....somestuff....
/Volumes/XCodeProj/myApp/build/Release-iphoneos/myApp.app: object file format invalid or unsuitable
Connad /usr/bin/codesign failed with exit code 1
Я уже пытался очистить цели.
что может вызвать эту проблему и как ее решить?
Ответы
Ответ 1
Также может возникнуть проблема с вашей установкой. Symlinking к последним codeign_allocate прояснил проблему в моем случае:
sudo mv /usr/bin/codesign_allocate /usr/bin/codesign_allocate_old
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate /usr/bin
Ответ 2
В Mountain Lion вы можете попробовать запустить это до codeign:
export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate"
Ответ 3
Убедитесь, что запись "Исполняемое имя" (CFBundleExecutable) в целевом info.plist соответствует "Название продукта", указанному в ваших целевых настройках.
Ответ 4
У меня была эта проблема, когда я пытался скомпилировать код из терминала. Я только что установил Xcode 4.4 после удаления Xcode 3.0. Посмотрел настройки загрузки в Xcode и заметил, что средства командной строки не были установлены. Моя проблема была исправлена после того, как я установил это. Я предполагаю, что проблема является более сложной, учитывая решения здесь, но это может быть то, что будущие пользователи хотят проверить, прежде чем они начнут погружаться глубже.
Ответ 5
Для меня это произошло после обновления до XCode 4.5.
Решением было просто перейти в "Настройки/Загрузки" и установить последние средства командной строки.
Ответ 6
Я была такая же проблема и испробовали все настройки сборки GCC4.0, поиска путей и т.д. и т.п. Оказалось, не было ничего общего с настройками сборки в моем случае проблема была я поставил точку в имени цели т.е. я целился v3.0 SDK, так что я назвал цель Granade3.0.
Я начал новый проект под названием "Grenade3zero", импортированные источники из оригинала, фиксированного на AppDelegate имя совпадает с именем проекта и т.д. строить и идти, и он загружен в первый раз на устройстве, так и имитатор был также хорошо, когда Я проверил это. Похоже, некоторые символы являются незаконными в целевых именах!
Ответ 7
Думаю, я тоже добавлю свое решение к этой проблеме... Я боролся в течение пары недель с этой проблемой... проверив ВСЕ решения выше и изменив их.
Мое решение было в целевом build settings
.
У меня было два варианта: armv6
и armv7
. Я изменил это на одну запись normal
и построил ее!
![build settings]()
Ответ 8
Ответ emcmanus работал у меня, но поскольку Xcode 4.3 теперь установлен в папке Applications, и я удалил старую папку /Developer, мне пришлось изменить путь к codesign_allocate:
sudo mv /usr/bin/codesign_allocate /usr/bin/codesign_allocate_old
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate /usr/bin
Ответ 9
Я пробовал все это безрезультатно. Что для меня работало, так это добавить в мою сборку script следующее:
экспорт CODESIGN_ALLOCATE = "/Applications/Xcode.app/Содержание/Разработчик/USR/бен/codesign_allocate"
Я столкнулся с этим сообщением, исследуя мою проблему:
http://mobiledevelopertips.com/mac-osx/code-signing-error-object-file-format-unrecognized-invalid-or-unsuitable.html
Ответ 10
Для Горного Льва перед началом процесса подписания. В качестве первой команды выполните команду ниже.
Для Xcode 4.x:
export CODESIGN_ALLOCATE = "/Applications/Xcode.app/Содержание/Разработчик/usr/bin/codesign_allocate"
Для XCode 5:
export CODESIGN_ALLOCATE = "/Applications/Xcode.app/Содержание/Разработчик/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate"
Ответ 11
Столкнулась с аналогичной проблемой в Jenkins, работающей на Mountain Lion и Xcode 5.x.x без каких-либо утилит командной строки.
поскольку утилиты командной строки теперь связаны с Xcode 5.1.x
работали
sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate /usr/bin/
Ответ 12
- Перейдите в раздел "Настройки сборки"
- Перейдите на вкладку "Параметры сборки"
- Внутри вкладки "Параметры сборки" найдите "Отформатированный информационный формат" и измените его значение с "DWARF" на "DWARF с файлом dSYM". Должно быть в раскрывающемся списке.
Он должен работать для вас, ребята.
Ответ 13
Если ваше приложение имеет специальные символы в имени продукта в настройках целевой сборки, удалите их.
Например, переименуйте приложение "Мат" в приложение "Матс" и оно будет создано. Конечно, вы можете иметь специальные символы в отображаемом имени.
Ответ 14
У меня также была та же проблема, и причина в том, что моя целевая ссылка на приложение была связана со статической библиотекой и не предоставляла свои собственные исходные файлы (все источники были в библиотеке, а целевые приложения - только предоставленные ресурсы). После того, как я переместил один из источников из библиотеки в приложение, он исправил ошибку знака кода.
Ответ 15
Я думаю, что это было причиной одного из Xcode DP (предварительный просмотр разработчика).
Он может изменить путь по умолчанию Xcode.app к Xcode DP.
Итак, U может проверить путь Xcode на xcode-select --print-path
Если U получил неправильный каталог, то U может изменить путь на xcode-select --switch
проверить эту тему.
изменить путь разработчика xcrun
Ответ 16
Лучше использовать xcrun для поиска правильной версии codign_allocate, поскольку она может быть различной в зависимости от того, является ли она бинарным или iOS OS X.
Это также позволяет Apple менять местоположение различных инструментов, не разбивая ваш script.
Используйте что-то вроде:
export CODESIGN_ALLOCATE=$(xcrun --sdk iphoneos --find codesign_allocate)
Ответ 17
Я получаю ошибку при попытке подписать мое приложение OS/X (не iOS) с цифровым сертификатом, который моя компания приобрела у корневого центра сертификации, отличного от Apple. Проблема будет возникать всякий раз, когда я загружаю сертификат через Safari. Загрузка сертификата с помощью Firefox помогла мне избавиться от ошибки.