Дублирование службы XPC прерывает приложение ID разработчика для Gatekeeper
Я работаю над распространением приложения Mac за пределами магазина приложений Mac с использованием подписи ID разработчика. Раньше все работало, но в нашей последней сборке что-то изменилось, что заставляет Gatekeeper отклонять приложение, когда оно открывается после загрузки с наших серверов.
Мы используем производственный сертификат "Application ID Application". Насколько я могу судить, мы следовали инструкциям в разделе " Распространение приложений за пределами Mac App Store".
Заблуждение состоит в том, что следующие команды, которые рекомендуются для проверки соответствия сторожевому устройству, все выполняются нормально и указывают, что в этом нет ничего неправильного Проверка в организаторе Xcode также проходит без жалоб.
$ spctl -a -t exec -vv MyApp.app/
MyApp.app/: accepted
source=Developer ID
origin=Developer ID Application: Company Name (248C748VF9)
$ codesign --verify --deep --verbose MyApp.app/
MyApp.app/: valid on disk
MyApp.app/: satisfies its Designated Requirement
$ /Volumes/Signature\ Check/check-signature MyApp.app/
(c) 2014 Apple Inc. All rights reserved.
YES
Одна вещь, которая изменилась со времени нашей последней сборки, состоит в том, что части нашего кода были преобразованы в новую среду.
Обновить:
Посредством бинарного поиска по истории коммитов и правильной дозы проб и ошибок я изолировал проблему в одном коммите, где в наше основное приложение был добавлен новый этап "Копирование файлов" для перемещения службы XPC в нужное место. Служба XPC уже копировалась в вспомогательное приложение элемента входа. Удаление фазы сборки в главном приложении решает проблему, но, к сожалению, основному приложению для правильной работы требуется служба XPC, поэтому простое удаление этой фазы не является жизнеспособным решением.