Я пытаюсь установить защитный вспомогательный инструмент с SMJobBless. Когда он терпит неудачу и перед вызовом SMJobBless, я вызываю SMJobRemove, потому что мне нужно удалить более старую версию инструмента, и это удастся. SMJobBless возвращает код ошибки 4098. Объект NSError сообщает мне, что «операция не может быть выполнена. В подсистеме CodeSigning произошла ошибка».Ошибка возврата SMJobBless 4098
Если я перезапущу свой код, функция SMJobBless будет работать. Я бы предположил, что это потому, что он был удален ранее, но почему он не работал в первый раз? Затем я могу связаться с инструментом, и все работает нормально. Наблюдая за тем, что все работает нормально, я уверен, что могу быть уверен, что я отвечаю пяти требованиям для SMJobBless, как описано в документации.
Если я увеличиваю версию своего инструмента и попробуйте еще раз, SMJobRemove будет работать, но, опять же, SMJobBless с кодом ошибки 4098.
Если это имеет значение, я использую OS X 10.7.3.
Этот код пропускает дескриптор файла в вспомогательный инструмент. 'codeRef' должен быть' CFRelease() 'd при возврате. Я попытался отредактировать сообщение сам, но он был отклонен как «слишком незначительный» вопрос. – LCC
Спасибо @LCC, я только что обновил код. – Philipp
Ничего себе! Это была именно та проблема, с которой я столкнулся, и это прекрасно зафиксировало ее. Спасибо за указатель и, тем не менее, реальный рабочий код! Я только хочу, чтобы документация Apple для SMJobBless и друзей была лучше. –