Подписание расширения ядра сложнее, чем подписание исполняемого файла в пользовательском пространстве. Apple выдала мне сертификат подписи kext. Он работает, когда я создаю из графического интерфейса Xcode или с помощью xcodebuild.
Чтение «Прекрасного руководства» могло бы привести меня туда, где я хочу быть, но всякий раз, когда я пытаюсь подписать свой водитель, у меня кружится голова.
Я настраиваю ящик удаленной сборки для своего клиента. У меня есть все, кроме подписи кода, чтобы работать. Если я вхожу в графический интерфейс, а затем запускаю свой сценарий "build_all", codeign представляет графический интерфейс, который запрашивает мой пароль. Если я подключусь по ssh, codeign не удастся.
Я думаю, что мне нужно сделать:
$ security unlock-keychain ...
$ codesign ...
$ security lock-keychain ...
Я могу понять, как заблокировать и разблокировать свой брелок; меня смущает командная строка кода.
Вот что делает xcodebuild:
/usr/bin/codesign --force --sign 84208E9C30B70E303186BAF330554E82E1891492 --requirements =designated\ =>\ anchor\ apple\ generic\ \ and\ identifier\ \"$self.identifier\"\ and\ ((cert\ leaf[field.1.2.840.113635.100.6.1.9]\ exists)\ or\ (\ certificate\ 1[field.1.2.840.113635.100.6.2.6]\ exists\ and\ certificate\ leaf[field.1.2.840.113635.100.6.1.13]\ exists\ \ and\ certificate\ leaf[subject.OU]\ =\ \"444JK52Q93\"\ )) --timestamp=none /Users/build/BuildBox/FL2000/trunk/IOProxyVideoFamily/Release/IOProxyFramebuffer.kext
Я попытался скопировать указанную выше командную строку, а затем вставить ее в Терминал, но из-за большого количества скобок команда завершилась ошибкой:
Command-C
Command-V
-bash: syntax error near unexpected token `('
Возможно, все, что мне нужно, это добавить кавычки или обратную косую черту в командную строку codeign.