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

Ошибка: "Служба метки времени недоступна". при использовании кода в Mac OS X 10.8

Я подписываю пакет приложений, используя сертификат Apple Developer ID. Мне нужно подписать с помощью инструмента командной строки, так как наша сборка автоматизирована и выполняется из нашей инструментальной цепочки. 90% времени он отлично работает с этой командой:

ws5:bin nick$ codesign -fs "Developer ID Application: <my name here>" MyApp.app
ws5:bin nick$ spctl --assess MyApp.app
ws5:bin nick$ 

Примечание. MyApp.app не является моим настоящим именем приложения, а <my name here> не является фактическим значением.

Итак, возможно, 1 раз в 10 раз он прерывается с ошибкой:

MyApp.app: The timestamp service is not available.

Я проверил, что .app переходит через механизм карантина с помощью spctl --assess и, зашивая его и загружая подписанный файл, поэтому, пожалуйста, не говорите "вы делаете это неправильно, используйте Xcode". Я знаю, что Apple официально не рекомендует использовать codesign для сертификатов идентификатора разработчика (согласно видео WWDC), но нам нужно использовать это для автоматизации и потому, что наше приложение представляет собой странную комбинацию сборки gcc и Qt.

Является ли лучшая стратегия вокруг этой ошибки просто повторять, пока она не будет работать снова? Это все, что я могу думать.

4b9b3361

Ответ 1

Я не могу рекомендовать метод -timestamp = none. Если вы не ставите отметку о ваших подписях, ваши двоичные файлы становятся неподписанными/недействительными, когда срок действия сертификата истекает. По крайней мере, если вы отметьте метку вашей подписи, проверка будет проходить до тех пор, пока бинарный файл был подписан, пока сертификат все еще действителен. Это не обесценивает сертификат, который фактически отменяется, но должен содержать вас в том случае, если кто-то, возможно, вам понадобится использовать ваши архивные копии через некоторое время после истечения срока действия сертификата.

Если у вас нет Интернета для отметки времени вашей подписи, вы можете также полностью отключить подписку, пока ваше соединение не будет восстановлено.

РЕДАКТИРОВАТЬ: Или, предполагая, что ваше соединение завершено, но сервер отметки времени по умолчанию Apple пошатнулся, вы можете выбрать свой собственный действующий сервер отметки времени.

Ответ 2

Эта проблема, похоже, возникает из-за проблем с сетью/брандмауэром. Я постоянно получал эту ошибку, прежде чем использовать VPN, чтобы перейти в менее ограничительную сеть. Интересно, к какому серверу этот инструмент кодовонга пытается получить доступ.

Обходной путь, кажется, добавляет флаг --timestamp=none (к "Другие флаги подписи кода", если вы используете XCode).

Ответ 3

Это отслеживается Apple rdar://11785270, обходной путь, который работает для меня, - это очистить проект перед каждой сборкой.

Ответ 4

Я думаю, что это не имеет никакого отношения к тому, как вы подписываетесь. Я построил свой проект много раз этим днем, в Xcode, без такой проблемы. Но сегодня вечером, когда я ехал на автобусе без доступа в Интернет, я пытался три раза строить его и каждый раз получал такую ​​же ошибку. Поэтому я закрыл свой MacBook Air, и мы оба вздремнули. Когда я вернулся домой, с беспроводным доступом в Интернет, я смог снова построить.

Итак, по-видимому, Xcode не будет кодировать коды и, следовательно, не сможет создать приложение с кодовым назначением, если только он не сможет достичь временного сервера в Интернете или что-то в этом роде. Довольно раздражает, что сообщение об ошибке не объясняет это! Ваш интернет-доступ прерывистый?

Очевидно, что обходной путь для удаления фазы компоновки сборки, вероятно, исправит ее. Я также нашел упростить обходной путь, за исключением того, что я бы поставил напоминание, чтобы помнить, чтобы включить этот переключатель времени назад, прежде чем строить для отправки. В противном случае я предполагаю, что ваш продукт без отметки времени может привести к отказу в проверке Mac App Store или Gatekeeper.

Ответ 5

Очистите свой проект + убедитесь, что у вас есть активное подключение к Интернету. Это только помогло мне хотя бы.