Подтвердить что ты не робот

Почему внезапно все мои приложения начали сбой с помощью EXC_CRASH (Code Signature Invalid) после совместного использования одного из них через облачную службу?

Вчера я работал над новой сборкой своего приложения. Чтобы проверить его на другом компьютере, , я перетащил его в папку, которая используется совместно с несколькими компьютерами Mac, которыми я владею через облачную службу. Я думал, что это может быть ускоренный способ распространения приложения на быть протестирован на другом компьютере, на котором установлена ​​более старая версия macOS (10.11).

Первое, что я заметил, это то, что я не смог запустить последнюю версию на тестовом компьютере. Я исследовал и обнаружил, открыв папку .app, в которой все исполняемые файлы были отключены (они выглядели как файлы обычного документа вместо того, чтобы иметь значок, похожий на Terminal). Хорошо, подумал я, поэтому, видимо, вы не можете делиться такими приложениями. Вы должны всегда распространять их с помощью образа диска или zip файла, желательно с помощью образа подписанного диска, если вы не делаете этого через Mac App Store.

Я не очень много думал об этом. Поскольку у меня был установлен Xcode на тестовом компьютере, который находится в другом месте, я перестроил приложение и все работало так, как я ожидал.

Однако, когда я вернулся домой и снова попытался работать над своим приложением, я заметил, что один из его помощников начал сбой при запуске с исключением EXC_CRASH (Code Signature Invalid). Затем я попытался запустить основное приложение, и это случилось. Я попытался удалить приложение с помощью деинсталлятора, и это произошло.

Итак, мой вопрос: как это могло быть? Почему все мои приложения начинают разбиваться, когда за несколько минут до того, как все мои приложения работали нормально?

4b9b3361

Ответ 1

По сути, я выяснил причину, по которой это происходит, потому что, если вы попытаетесь распространить свои приложения напрямую через папку, к которой предоставлен общий доступ через облачную службу, вы можете получить сертификат Mac Developer, отозванный Apple. Я определил это, выполнив следующую команду в моих приложениях:

spctl -a -v path/to/my/app

И вот, я получил такой результат:

path/to/my/app: CSSMERR_TP_CERT_REVOKED

Мое решение состояло в том, чтобы перейти к моей учетной записи разработчика и нажать кнопку "Отменить", чтобы удалить этот черный список сертификата, а затем создать новый, как указано на сайте.

К счастью, старые версии моего приложения не были затронуты, потому что они были подписаны более ранним сертификатом. Тем не менее, будьте готовы получать множество жалоб и сообщать пользователям о необходимости повторно загрузить отказанное приложение, если приложения, которые уже были распространены среди ваших клиентов, были подписаны отозванным сертификатом. Они будут убиты при запуске с этим исключением EXC_CRASH. Просто скажите вашим коллегам, чтобы у вас не было "блестящей" идеи быстрого распространения приложений через облачный сервис. Вы можете в конечном итоге отозвать свой сертификат разработчика Mac.