Я подписываю пакет приложений, используя сертификат 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.
Является ли лучшая стратегия вокруг этой ошибки просто повторять, пока она не будет работать снова? Это все, что я могу думать.