Кодовый знак показывает.app пучок в порядке, но привратник жалуется

У меня проблемы с получением .app связка, чтобы красиво играть с привратником. Запуск проверки с помощью `codeign` выглядит так, как будто это работает:

$ codesign -dvvvv --deep Juno.app
Executable=/Applications/Juno.app/Contents/MacOS/Atom
Identifier=com.junolab.juno-lt
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=203 flags=0x0(none) hashes=3+3 location=embedded
Hash type=sha1 size=20
CDHash=ec3531899318562f7460000d9bbc218606026369
Signature size=8536
Authority=Developer ID Application: Julia Computing LLC (A427R7F42H)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Jul 19, 2015, 2:34:57 PM
Info.plist entries=17
TeamIdentifier=A427R7F42H
Sealed Resources version=2 rules=12 files=20822
Nested=Frameworks/ReactiveCocoa.framework
Nested=Frameworks/Atom Framework.framework
Nested=Frameworks/Mantle.framework
Nested=Frameworks/Atom Helper EH.app
Nested=Frameworks/Squirrel.framework
Nested=Frameworks/Atom Helper.app
Nested=Frameworks/Atom Helper NP.app
Internal requirements count=1 size=180

Но когда я пытаюсь открыть его с помощью Finder, привратник не проходит проверку (Примечание: это происходит в OSX 10.11, но на OSX 10.11 все работает отлично, см. Изменения ниже), заявляя, что "личность разработчика не может быть подтверждена". Нажав на "?" Кнопка во всплывающем окне Gatekeeper выводит меня на страницу справки под названием "Приложение было изменено или повреждено", но я подумал codesign должен был сказать мне об этом, когда попросил подтвердить заявку. Juno.app общедоступен, так что вы, ребята, можете взглянуть на него, если хотите, однако у нас есть приложение меньшего размера, подписанное на том же компьютере, с тем же сертификатом, которое прекрасно работает и выдает очень похожие результаты:

$ codesign -dvvvv --deep Julia-0.4.2.app
Executable=/Applications/Julia-0.4.2.app/Contents/MacOS/Julia
Identifier=org.julialang
Format=bundle with Mach-O universal (i386 x86_64)
CodeDirectory v=20200 size=537 flags=0x0(none) hashes=20+3 location=embedded
Hash type=sha1 size=20
CDHash=44a98280c062d9e1f2277e457dbdf8b67e1d4ffc
Signature size=8536
Authority=Developer ID Application: Julia Computing LLC (A427R7F42H)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Dec 6, 2015, 6:20:37 PM
Info.plist entries=15
TeamIdentifier=A427R7F42H
Sealed Resources version=2 rules=12 files=983
Internal requirements count=1 size=176

Этот второй комплект, Julia-0.4.2.app также доступна для скачивания. Есть ли способ, которым я могу понять, что происходит в Juno.app так, чтобы я мог изменить свою практику подписания?

РЕДАКТИРОВАТЬ: Чтобы ответить на вопрос l'L'l ниже, процесс подписания для Juno.app выполняется этим скриптом, ключевой строкой является строка 28:

codesign -f -s "AFB379C0B4CBD9DB9A762797FC2AB5460A2B0DBE" --deep /Volumes/Juno/Juno.app

.App содержит другие ресурсы, которые, возможно, уже были подписаны (например, содержимое Julia-0.4.2.app, поскольку Juno - это дистрибутив Julia, содержащий встроенную среду IDE), поэтому мы добавляем -f флаг для codesign,

РЕДАКТИРОВАТЬ 2: я предложил использовать spctl углубиться в проблему, которая привела к следующему:

$ spctl -a Juno.app -vvvvv && echo yes
Juno.app: rejected
source=obsolete resource envelope
origin=Developer ID Application: Julia Computing LLC (A427R7F42H)

Это привело меня к мысли, что, возможно, либо Juno.app или одна из его встроенных платформ может все еще иметь старый запечатанный конверт ресурса версии 1, но проверка каждого вложенного ресурса в отдельности показывает, что у всего есть конверт версии 2.

Более интересно то, что этот.app работает на OSX 10.10, но не на OSX 10.11.

0 ответов

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