Можно ли связать приватные ключи и сертификаты через цепочки для ключей?


3

Мне предоставили право собственности на различные приложения для iOS для создания и отправки в iTunes Connect, но я столкнулся с очень неприятной проблемой. Сертификаты распространения должны иметь уникальное имя, и по разным причинам у меня есть 2 сертификата с одним именем.

Если имеются дублированные именованные сертификаты, даже если они имеют уникальные идентификаторы, процесс сборки завершается с ошибкой Code Sign, в которой говорится, что сертификаты должны иметь уникальные имена. Это приводит меня к ситуации, когда я должен удалить подписанный сертификат (ы), загрузить тот, который я хочу, промыть, повторить.

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

Можно ли хранить открытые / закрытые ключи где-то «глобально», что будет доступно для любого запроса цепочки для ключей, и создать новую цепочку для ключей для хранения только одного подписанного сертификата, но позволить двум цепочкам ключей работать вместе для передачи кода подписания?


Несмотря на то, насколько я противоречив, по моему мнению, этот вопрос является актуальным для AD и основан на том факте, что он касается только функциональности утилиты Keychain Access. Единственное, что он имеет отношение к коду / программированию, это то, что он должен пройти подпись кода. Но основная процедура существует исключительно во встроенной цепочке для ключей.
Джейсон Салаз

Ответы:


2

Невозможно связать закрытые ключи и сертификаты через несколько цепочек для ключей. Должен быть третий скрытый элемент, называемый личностью, который связывает эти два элемента вместе. Идентификационные данные, сертификат и закрытый ключ должны находиться в одной цепочке для ключей.

Укажите брелок

Используя Keychain Access, создайте отдельный Keychain с сертификатом и закрытым ключом в каждом. В вашей ситуации это будет означать создание двух отдельных цепочек для ключей.

Скажите CodeSign, чтобы искать ваш конкретный брелок с помощью параметра командной строки --keychain; путь, предоставленный брелку, должен быть абсолютным.

Вы можете предоставить эту опцию и путь к codesignXcode через пользовательский интерфейс настроек сборки.


Вы случайно не знаете, будет ли использование идентификатора обходить ограничение «дубликат именованного сертификата»?
Джейсон Салаз,

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

Это потрясающе. Даже если я больше не в состоянии выполнить это действие, я постараюсь воспроизвести контрольный пример и проверить его, чтобы принять ваш ответ. Спасибо!
Джейсон Салаз

Следующий вопрос StackOverflow может быть полезен при настройке XCode и связки ключей: stackoverflow.com/questions/1355637/…
Грэм Милн
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.