Osx 10.9.5 подписание кода V2 - подписание рамки с: формат пакета неоднозначен

Я пытаюсь подписать код приложения на osx mavericks 10.9.5 с форматом v2. При предыдущем тестировании подписание 10.9.5 (13F12) все шло хорошо, все фреймворки могли быть подписаны без ошибок. Теперь, на 13F34, рамки не могут быть подписаны. Когда я пытаюсь подписать первую структуру с помощью:

codesign -f -v -s "Developer ID Application: MY AG" "My.app/Contents/Frameworks/4DJavaScript.framework"  

то возникает ошибка:

My.app/Contents/Frameworks/4DJavaScript.framework: bundle format is ambiguous (could be app or framework)  

Когда я пытаюсь подписать код единственной версии (A) фреймворка, подписание успешно завершается, но при подписании основного приложения снова появляется ошибка в структуре. При поиске в файле info.plist структуры есть (в моем смысле) правильная запись для набора типов:

Bundle OS Type code FMWK  

Любые предложения о том, как правильно подписать фреймворк на 10.9.5-13F34?
Спасибо, Питер

Ответ 1

Сразу после публикации щедрости по этому вопросу я понял это. Подписание текущей версии фреймворка напрямую делает трюк:

codesign -f -v -s "Developer ID Application: My Dev ID" MyFramework.framework/Versions/Current

Ответ 2

Ваш ответ не сработал у меня, поэтому я размещаю свой.

Если вы ранее скопировали фреймворки с помощью команды cp -r, у вас возникнет эта проблема. С cp -a эта проблема не появляется. Это происходит из-за различного способа разрешения символических ссылок в этих двух вариантах.

Ответ 3

Я использовал электронный упаковщик и мне нужно было использовать флаг --no-deref-symlinks и bam работал на меня

Ответ 4

Я столкнулся с той же проблемой. В моем случае проблема заключалась в том, что файл .app, который я пытался использовать codesign, был помещен в папку Dropbox.

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

Команда codesign не может распознать формат пакета после того, как Dropbox разрешит символические ссылки.

Решение состоит в том, чтобы не хранить пакет, который вы пытаетесь codesign, в папке выпадающего списка.