2009-08-31 10 views

ответ

8

После долгого исследования я пришел к выводу, что это невозможно.

+1

Я подал rdar: // 9273506 по этому вопросу. – amrox

+0

Согласен, я потратил на это несколько дней ... единственный способ установить временную цепочку ключей по умолчанию:/ – kubbing

6

в настройке под Кодовое Подписание Строить -> Другие код подписи Флаги, создать флаг «--keychain брелка-name.keychain»

3

While неудобно, вы можете временно изменить «по умолчанию брелок» в зависимости от того, брелка имеет свой сертификат/ключи. Затем XCode будет искать эту брелок во время подписи кода. Вы можете сделать это с помощью Keychain Access.app или утилиты командной строки безопасности (1). Однако вы несете ответственность за разблокировку упомянутого брелка.

+1

Кроме того, вы можете создать временную брелок на лету из командной строки, импортировать свои сертификаты/ключи, установить ее как значение по умолчанию во время компиляции и подписи кода, а затем удалить его, восстановив предыдущую цепочку ключей по умолчанию. – Shade

7

Инструмент codesign требует абсолютного пути к брелка.

Используйте дополнительную «фазу сборки сценария запуска», чтобы вызвать инструмент «Кодировка» с пользовательской цепочкой ключей. Встроенный скрипт должен выглядеть следующим образом:

codesign -s 'your-identity' --keychain "${SRCROOT}/path/to/keychain" "${TARGET_BUILD_DIR}/${WRAPPER_NAME}" 

enter image description here

+0

Полный путь необходим только в том случае, если брелок не находится в стандартном пути ~/Library/Keychains – lkraider