Не можна відкривати додаток, оскільки це від невстановленого розробника


9

Питання:

Будь ласка, зауважте, перш ніж прочитати це, що: "Скажіть їм, щоб вони йшли System preferences > Security & privacyі allow 3rd party applications to runне є прийнятним рішенням цього питання.

Я створив програму .appThat підписана дійсним сертифікатом розробника Mac. Однак завантаження його з Інтернету та запущеної програми все ще підказує:

Неможливо відкрити додаток, оскільки він отримав від невстановленого розробника

Це 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

Я не розумію, чому це не проходить Гейткер? Щось бракує? Чи потребує Apple щось далі?


Оновлення 1:

@TheDarkKnight запропонував мені використовувати неправильний сертифікат для підписання.app . Схоже, вони є правильними, тому я пішов створити новий, Developer ID Application certificateале, мабуть, тому, що я не "Агент" у груповому обліковому записі, тому мені зараз доводиться чекати, поки "Агент" створить мене для мене - здається, назад? не інакше чекати, коли «Агент» зробить це для мене?

(у Xcode) Якщо перемикач "Ідентифікатор розробника" затьмарений, у вас, ймовірно, є груповий обліковий запис. Ці типи облікових записів дозволяють виконувати лише роль "Агента" для створення ідентифікаторів розробника. Якщо ви застрягли тут, зверніться до людини, яка створила ваш груповий обліковий запис розробника Apple.

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, чи потрібно це також підписувати? Я використовував в якості посилання успішне програмне забезпечення hostingsoftware.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 потрібно:

  1. Встановіть ідентифікатор підпису на ідентифікатор розробника
  2. Створіть свої сертифікати для ідентифікатора розробника
  3. Створіть архів програми
  4. Підтвердьте свою програму
  5. Експортуйте додаток, підписаний ідентифікатором розробника
  6. Підпишіть пакет встановлення (не застосовується у вашому випадку)
  7. Перевірте поведінку програми з увімкненою функцією Gatekeeper і знову з відключеною функцією Gatekeeper

Вирішення таких проблем, як це, може бути складним, оскільки легко робити припущення про те, наскільки знає ОП (у цьому випадку ви) тощо. Читаючи ваше запитання, я припускаю, що перші три кроки будуть виконані.

Отже, для початку почнемо ще раз перевірити, як ви перевіряєте додаток.

Підтвердьте свою програму

Щоб перевірити додаток, який підписав ідентифікатор розробника, виконайте наступні дії:

  1. У Xcode перейдіть до продукту> Архів
  2. З'явиться вікно організатора архівів
  3. Виберіть архів відповідного додатка
  4. Натисніть на Validate кнопку
  5. З'явиться діалогове вікно з проханням вибрати метод перевірки
  6. Виберіть Валідацію програми, підписаної ідентифікатором розробника опцію
  7. Натисніть на Next
  8. У наступному вікні виберіть команду зі спливаючого меню
  9. Натисніть на Choose
  10. Натисніть Validateкнопку

Це дозволить визначити будь-які проблеми з підтвердженням. Якщо такі виявляться, це буде вашою проблемою (або принаймні її частиною), тому вам потрібно буде вирішити цю проблему.

Якщо жодних проблем не знайдено, перейдіть нижче.

Експортуйте додаток, який підписав ідентифікатор розробника

  1. Все ж у вікні організатора «Архів» виберіть архів для відповідного додатка
  2. Натисніть наExport кнопку
  3. З'явиться діалогове вікно з проханням вибрати метод експорту
  4. Виберіть опцію Експортувати програму, підписану ідентифікатором розробника
  5. Натисніть на Next
  6. У наступному вікні виберіть команду зі спливаючого меню
  7. Натисніть на Choose
  8. Натисніть Exportкнопку

Після експорту вашої програми слід протестувати з увімкненою функцією Gatekeeper і знову з відключеною функцією Gatekeeper.


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