Неправильный или неподходящий формат файла объекта 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

Я уже пытался убрать цели. что может вызвать эту проблему и как ее решить?

17 ответов

Также может быть проблема с вашей установкой. Ссылка на последнюю версию codeSign_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

В Mountain Lion вы можете попытаться запустить это до кодового знака:

export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate"

Убедитесь, что запись "Имя исполняемого файла" (CFBundleExecutable) в info.plist вашей цели совпадает с "Имя продукта", указанным в настройках вашей цели.

У меня была эта проблема, когда я пытался ввести код из терминала. Я только что установил Xcode 4.4 после удаления Xcode 3.0. Взглянул на настройки загрузок в XCode и заметил, что инструменты командной строки не были установлены. Моя проблема была исправлена ​​после того, как я установил это. Я предполагаю, что проблема более сложна, учитывая решения здесь, но это может быть то, что будущие пользователи захотят проверить, прежде чем они начнут погружаться глубже.

Для меня это происходило после обновления до XCode 4.5.

Решением было просто перейти в "Настройки" / "Загрузки" и установить новейшие инструменты командной строки.

У меня была та же проблема, и я пробовал все виды настроек сборки GCC4.0, путей поиска и т. Д. И т. Д. В моем случае это не имело ничего общего с настройками сборки, проблема заключалась в том, что я поставил точку в имени цели, т.е. таргетинг v3.0 SDK, поэтому я назвал целевой Granade3.0.

Я запустил новый проект под названием "Grenade3zero", импортировал исходные файлы из оригинала, исправил имя приложения для соответствия названию проекта и т. Д., Собрал и запустил, и он впервые загрузился на устройство, и симулятор также был в порядке, когда я проверял его, Похоже, некоторые символы недопустимы в именах целей!

Думаю, я тоже добавлю свое решение к этой проблеме... Я пару недель боролся с этой проблемой... проверил ВСЕ решения выше и изменил больше.

Мое решение было в цели build settings,

Я поставил два варианта, armv6 а также armv7, Я изменил это обратно на одну запись normal и это построено!

настройки сборки

Ответ 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

Для Mountain Lion перед началом процесса подписания. Пожалуйста, запустите приведенную ниже команду в качестве первой команды.

Для Xcode 4.x: export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate"

Для XCode 5: export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate"

Я перепробовал все вышеперечисленное безрезультатно. Для меня было полезно добавить следующее в мой скрипт сборки:

export CODESIGN_ALLOCATE = "/ Applications / Xcode.app / Contents / Developer / usr / bin / codesign_allocate"

Я наткнулся на этот пост во время исследования моей проблемы: http://mobiledevelopertips.com/mac-osx/code-signing-error-object-file-format-unrecognized-invalid-or-unsuitable.html

  1. Перейти в "Настройки сборки"
  2. Перейдите на вкладку "Параметры сборки"
  3. Внутри вкладки параметров сборки найдите "Формат отладочной информации" и измените его значение с "DWARF" на "DWARF с файлом dSYM". Должно быть в выпадающем списке.

Это должно сработать для вас, ребята.

Столкнулся с аналогичной проблемой в Jenkins, работающем на Mountain Lion и Xcode 5.xx без каких-либо утилит командной строки. так как утилиты командной строки теперь связаны с Xcode 5.1.x

следующее сработало

sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate /usr/bin/

Лучше использовать xcrun, чтобы найти правильную версию codesign_allocate, так как она может отличаться в зависимости от того, является ли она бинарным OS X или iOS.

Это также позволяет Apple изменять местоположение различных инструментов, не нарушая сценарий.

Используйте что-то вроде:

export CODESIGN_ALLOCATE=$(xcrun --sdk iphoneos --find codesign_allocate)

Если ваше приложение содержит специальные символы в имени продукта в настройках целевой сборки, удалите их.

Например, переименуйте "Mat's app" в "Mats app", и оно будет создано. Конечно, вы можете иметь специальные символы в отображаемом имени.

Я получаю сообщение об ошибке при попытке подписать мое приложение OS/X (не iOS) цифровым сертификатом, который моя компания приобрела у корневого центра сертификации, отличного от Apple. Проблема возникнет, когда я скачаю сертификат через Safari. Загрузка сертификата с помощью Firefox помогла мне избавиться от ошибки.

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

Я думаю, что это было вызвано одним из Xcode DP(превью разработчиков). Это может изменить путь по умолчанию Xcode.app на Xcode DP.

Таким образом, вы можете проверить путь XCode по xcode-select --print-path

Если у вас есть неправильный каталог, то вы можете изменить путь на xcode-select --switch

проверьте эту тему. изменить путь разработчика xcrun

Другие вопросы по тегам