11

Недавно я обновил XCode 6.3 и начал иметь некоторые странные проблемы с подделкой кода. Иногда XCode начинает жаловаться на проблемы с подделкой кода. И либо будет иметь проблемы, как:XCode 6.3 Проблемы с подписями кода после обновления

invalid or unsupported format for signature ... Command /usr/bin/codesign failed with exit code 1 

или

... Command /usr/bin/codesign failed with exit code 11 

Не можете найти шаблон еще, но выглядит вопрос с XCode кодом знака, а иногда и после очистки и перезапуска XCode он будет работать.

Я не изменял никаких настроек, касающихся подписания кода. Структура проекта довольно сложная, она ссылается на проекты и контейнеры.

Любая помощь приветствуется.

** Обновление **

Это не помогло мне удалить полученные данные или перезапускать XCode. Но это действительно сработало, если я удалил проект и загрузил его из git. Это удаленные файлы XCode, которые не привязаны к git.

Снова после чистки он перестает работать. И в журналах консоли у меня есть что-то вроде этого:

codesign[4111]: Internal error unloading bundle CFBundle 0x7fb44a40adc0 <(null)> (framework, not loaded) 

** Другой Update **

Найдено на твиттере, кто имеет такой же вопрос. Похоже, что проблема вызвана опцией -deep при подписании кода.

https://github.com/atom/atom-shell/issues/1396

Решение это не код знака приложения и рамки внутри с --deep. Но, скорее, кодовое обозначение каждой рамки отдельно.

http://furbo.org/2013/10/17/code-signing-and-mavericks/

+0

возможно дубликат: HTTP: // stackoverflow.com/questions/1090288/usr-bin-codesign-failed-with-e xit-code-1 – gbuzogany

+0

У меня была эта же проблема, и в настройках -> Учетные записи -> Просмотр сведений, а затем нажатие кнопки обновления в левом нижнем углу исправило это для меня. – doctorBroctor

ответ

4

Просто было это случилось со мной, а после последнего обновления X-Code. Но X-Code советовал мне обновить настройки моего проекта на некоторое время, я просто не обходил его. Ссылка, которую вы предоставляете, хорошо объясняет это.

Это действительно проявляется как проблема в навигаторе, и X-Code предложит исправить его автоматически, когда вы выберете проблему. Вам просто нужно удалить параметр --deep из своих настроек сборки самостоятельно.

Это работало с моими 2 сторонними фреймами, Sparkle и Siphon.

+0

Я не могу легко удалить -deep. Поскольку я использую вспомогательное приложение, другой проект включается как фреймворк и виджет. Придется подписать их отдельно. Но хорошо знать, что причина - причина, и ее нужно удалить. – Krzysztof

2

Проблема была вызвана опцией и правами на использование кода.

Чтобы решить эту проблему, мне пришлось вручную закодировать рамки. Это потребовало добавления новой фазы сборки запуска сценария и запуска сценария, подобный этому:

IDENTITY="HEX_IDENTITY" 

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

FRAMEWORKS_LOCATION="${BUILT_PRODUCTS_DIR}"/"${FRAMEWORKS_FOLDER_PATH}" 
EXECUTABLES_LOCATION="${BUILT_PRODUCTS_DIR}"/"${EXECUTABLE_FOLDER_PATH}" 

codesign --verbose --force --deep --verify --sign "$IDENTITY" "$EXECUTABLES_LOCATION/MY_HELPER_APP.app" 
codesign --verbose --force --deep --verify --sign "$IDENTITY" "$FRAMEWORKS_LOCATION/MY_FRAMEWORK/Versions/A" 

HEX_IDENTITY можно получить с помощью команды оболочки:

security find-identity 

Это будет отображать список подписания идентичностей с их шестнадцатеричные числа.

После экспорта приложения, как приложение, которое я проверил подписи кода с помощью команды:

codesign --verify --verbose --deep MyApp.app 
spctl --verbose --assess --type execute MyApp.app 

Ссылки: