Ответ 1
Сразу после публикации щедрости по этому вопросу я понял это. Подписание текущей версии фреймворка напрямую делает трюк:
codesign -f -v -s "Developer ID Application: My Dev ID" MyFramework.framework/Versions/Current
Я пытаюсь подписать код приложения на 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?
Спасибо, Питер
Сразу после публикации щедрости по этому вопросу я понял это. Подписание текущей версии фреймворка напрямую делает трюк:
codesign -f -v -s "Developer ID Application: My Dev ID" MyFramework.framework/Versions/Current
Ваш ответ не сработал у меня, поэтому я размещаю свой.
Если вы ранее скопировали фреймворки с помощью команды cp -r
, у вас возникнет эта проблема. С cp -a
эта проблема не появляется. Это происходит из-за различного способа разрешения символических ссылок в этих двух вариантах.
Я использовал электронный упаковщик и мне нужно было использовать флаг --no-deref-symlinks и bam работал на меня
Я столкнулся с той же проблемой. В моем случае проблема заключалась в том, что файл .app, который я пытался использовать codesign
, был помещен в папку Dropbox.
По-видимому, dropbox разрешает символические ссылки по умолчанию, то есть символические ссылки полностью заменяются данными, на которые они указывают. Читайте об этом здесь.
Команда codesign
не может распознать формат пакета после того, как Dropbox разрешит символические ссылки.
Решение состоит в том, чтобы не хранить пакет, который вы пытаетесь codesign
, в папке выпадающего списка.