Мой DMG с кодовой подписью отклонен GateKeeper - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь распространить приложение (само с кодовой подписью) внутри тома DMG с кодовой подписью, подписанного сертификатом с собственной подписью кода (сгенерированным с помощью Помощника сертификата цепочки для ключей).

I'mв MacOS Mojave и я создаю DMG, используя следующую процедуру:

  1. Создайте новую пустую папку testsrc
  2. Скопируйте комплект приложений с кодовой подписью в новую папку
  3. Выполнить

    hdiutil create -volname test -srcfolder testsrc -ov -format UDBZ test.dmg
    
  4. Кодовый знак DMG:

    codesign -s keyid test.dmg
    

Это успешно (сообщение об ошибке отсутствует,код возврата 0).Кроме того, попытка выполнить codesign снова приводит к сообщению «test.dmg: уже подписан».Я могу проверить подпись:

codesign -vvvv -d test.dmg
Executable=/path/to/test.dmg
Identifier=test
Format=disk image
CodeDirectory v=20100 size=291 flags=0x0(none) hashes=1+6 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha256=73…
Hash choices=sha256
Page size=none
CDHash=73… (same as above)
Signature size=1760
Authority=keyid
Signed Time=12 Dec 2018 at 18:26:31
Info.plist=not bound
TeamIdentifier=not set
Sealed Resources=none
Internal requirements count=1 size=96

Однако, когда я пытаюсь открыть помещенный в карантин (скачанный с локального хоста) DMG, я получаю обычное сообщение об ошибке Gatekeeper:

Gatekeeper:

Более того, spctl -v -a -t open --context context:primary-signature test.dmg говорит мне: «test.dmg: rejected».

Это только потому, что мой сертификат самозаверяющий, а не AppleСертификат разработчика ID приложения?Есть ли способ обойти это?


Я видел ответы в Как добавить кодовое обозначение в файл dmg в mac , но они предполагают, что вышеуказанная процедура должна работать.

1 Ответ

0 голосов
/ 17 декабря 2018

Это только потому, что мой сертификат самозаверяющий, а не сертификат приложения Apple Developer ID?

В двух словах: да.

После использованияключ из сертификата разработчика Apple, ошибка исчезла, и приложение прошло проверку Gatekeeper.

...