Приложение не может быть открыто, потому что оно от неизвестного разработчика


9

Вопрос:

Пожалуйста, обратите внимание, прежде чем читать это, что: «Скажите им, чтобы пойти System preferences > Security & privacyи allow 3rd party applications to run. Не является приемлемым решением для этой проблемы.

Я создал .appподпись с действующим сертификатом Mac Developer. Тем не менее, загрузка его из Интернета и запуск по-прежнему выдает запрос безопасности:

Приложение не может быть открыто, потому что оно от неизвестного разработчика

Это codesign -vvvдамп терминала для .app:

Executable=/Users/me/Desktop/ADRA.app/Contents/MacOS/ADRA
Identifier=unity.Company.ADRA NSW 2016
Format=app bundle with Mach-O thin (i386)
CodeDirectory v=20200 size=178145 flags=0x0(none) hashes=5561+3 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha1=79ecf88721d6387749c1f6b10355c3683ef20eb2
CandidateCDHash sha256=0799e968a18a663a0c08d26d3fb7826017ce5a3a
Hash choices=sha1,sha256
CDHash=0799e968a18a663a0c08d26d3fb7826017ce5a3a
Signature size=4739
Authority=3rd Party Mac Developer Application: Company Pty Ltd (NH73TNDB28)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=20 Apr 2017, 2:46:12 PM
Info.plist entries=14
TeamIdentifier=NH73TNDB28
Sealed Resources version=2 rules=12 files=138
Internal requirements count=1 size=224

Я не понимаю, почему это не проходит Gatekeeper? Чего-то не хватает? Требуется ли Apple что-то еще?


Обновление 1:

@TheDarkKnight предположил, что я использую неправильный сертификат для подписи .app. Выглядит так, как будто они правильные, поэтому я пошел создавать новую, Developer ID Application certificateно, видимо, потому, что я не являюсь «Агентом» в учетной записи группы, поэтому мне теперь нужно подождать, пока «Агент» создаст его для меня - кажется, задом наперед. нет ли другого способа ждать, пока «Агент» сделает это для меня?

(в Xcode) Если кнопка «ID разработчика» неактивна, возможно, у вас есть учетная запись группы. Эти типы учетных записей позволяют только роли «Агент» создавать идентификаторы разработчика. Свяжитесь с человеком, который создал вашу учетную запись Apple Developer группы, если вы застряли здесь.

https://developer.mozilla.org/en-US/docs/Mozilla/Signing_Mozilla_apps_for_Mac_OS_X


Обновление 2:

Так что я , наконец , получил свой новый сертификат сегодня, повторно подписал .app, скачал его из бегала сервера и еще есть сообщение об ошибке , . Авторитет, кажется, сейчас прав:

Executable=/Users/me/Downloads/ADRA.app/Contents/MacOS/ADRA
Identifier=com.company.adra
Format=app bundle with Mach-O thin (i386)
CodeDirectory v=20200 size=178133 flags=0x0(none) hashes=5561+3 location=embedded
Library validation warning=OS X SDK version before 10.9 does not support Library Validation
OSPlatform=36
OSSDKVersion=657408
OSVersionMin=656896
Hash type=sha256 size=32
CandidateCDHash sha1=90d2a54162d6d018bf4f7602d7707c8e8e522fc6
CandidateCDHash sha256=dadfe5203d1367ea776f9501025dbd4ce751ee30
Hash choices=sha1,sha256
Page size=4096
CDHash=dadfe5203d1367ea776f9501025dbd4ce751ee30
Signature size=8930
Authority=Developer ID Application: Company Pty Ltd (NH73TNDB28)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=10 May 2017, 3:36:51 pm
Info.plist entries=14
TeamIdentifier=NH73TNDB28
Sealed Resources version=2 rules=12 files=138
Internal requirements count=1 size=184

Я только подписываю .appчто-нибудь еще, что я должен сделать, чтобы сделать эту работу? Должен ли я ждать какое-то время, прежде чем это сработает?


Обновление 3:

Прошло почти 1 месяц с момента Обновления 2, этот вопрос все еще существует, и поэтому он получил награду.


1
Вставлено ли приложение в образ диска с подписью кода DMGпри загрузке? На какой версии macOS вы тестируете?
Грэм Милн

@GrahamMiln Я вернусь к вам с версией macOS. Я не подписывал .dmg, вы тоже должны это подписывать? Я использовал successfulsoftware.net/2012/08/30/... как ссылки , и они утверждают , что .dmgне требует дополнительного подписания , так что я не подписал его.
Zze


Попробуйте проверить подпись с:spctl -vvv -a -t open --context context:primary-signature <full path to app or dmg>
Грэм Милн

@GrahamMiln Спасибо за комментарии, я вернусь к вам утром!
Zze

Ответы:


7

Вообще говоря, при распространении приложений за пределами Mac App Store необходимо:

  1. Установите идентификатор подписи на ID разработчика
  2. Создайте сертификаты разработчика ID
  3. Создайте свое приложение Архив
  4. Подтвердите свое приложение
  5. Экспортировать подписанное приложение с идентификатором разработчика
  6. Подпишите пакет установщика (не применимо в вашем случае)
  7. Проверьте поведение приложения с включенным Gatekeeper и снова с отключенным Gatekeeper

Устранение неполадок, таких как это, может быть непростым делом, поскольку легко сделать предположения о том, как много знает ОП (в данном случае вы), и т. Д. Из прочтения вашего вопроса я предположу, что первые три шага выполнены.

Итак, давайте начнем с двойной проверки того, как вы проверяете свое приложение.

Подтвердите свое приложение

Чтобы проверить приложение с подписью разработчика, выполните следующие действия:

  1. В XCode перейдите в продукт> Архив
  2. Откроется окно организатора архивов
  3. Выберите архив для рассматриваемого приложения
  4. Нажмите на Validateкнопку
  5. Появится диалоговое окно с просьбой выбрать метод проверки
  6. Выберите параметр Проверка допустимости ID подписанных приложений Developer вариант
  7. Нажмите на Next
  8. В следующем окне выберите команду из всплывающего меню
  9. Нажмите на Choose
  10. Нажмите Validateкнопку

Это определит любые проблемы проверки. Если они будут найдены, это будет вашей проблемой (или, по крайней мере, ее частью), поэтому вам нужно будет ее решить.

Если проблем не обнаружено, перейдите ниже.

Экспортировать приложение с подписью разработчика

  1. По-прежнему в окне организатора Архива выберите архив для рассматриваемого приложения.
  2. Нажмите на Exportкнопку
  3. Появится диалоговое окно с просьбой выбрать метод экспорта
  4. Выберите вариант Экспорт в ID-подписанный Application Developer вариант
  5. Нажмите на Next
  6. В следующем окне выберите команду из всплывающего меню
  7. Нажмите на Choose
  8. Нажмите Exportкнопку

После того, как ваше приложение экспортировано, вы должны проверить с включенным Gatekeeper и снова с отключенным Gatekeeper.


Спасибо за ответ, я постараюсь сделать это как можно скорее.
Zze
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.