EDIT
После вашего комментария, дальнейших исследований и из памяти есть два элемента / файла для подписи приложения:
- Связка ключей : Сертификат разработчика / распространения (созданный вами для запроса сертификата распространения у Apple)
- MobileProvision : профиль обеспечения (сертификат, предоставленный Apple, , который недействителен без предыдущего сертификата цепочки для ключей # 1 и используется Xcode для подписи приложения)
Эти два файла находятся в разных местах:
- Сертификат разработчика находится в связке ключей, в соответствии с wikipedia по умолчанию в
~/Library/Keychains
(сеанс) и /Library/Keychains
(система) , и После небольшой проверки с помощью утилиты «keychain», вы можете зарегистрировать / создать любой файл ".keychain"
по любому пути. Так что я думаю, что вы можете добавить свои сертификаты из внешнего файла .keychain
с помощью смарт-карты, не копируя их на ваш mac (чтобы проверить, было бы удивительно / странно, но, возможно, они клонируются в некоторый кеш или безотносительно) . Я не проверял это, но тогда имеет смысл, что XCode использует "Keychain services"
, что делает эти базовые .keychain
файлы прозрачными. Таким образом, Xcode должен просто найти «автоматически» сертификат из внешнего файла цепочки для ключей.
- MobileProvision :
~/Library/MobileDevice/Provisioning Profiles/SOME-UUID.mobileprovision
Боюсь, вы не можете сказать XCode искать другой путь.
В обоих случаях, я думаю, вы можете обмануть приложения (Xcode ..) / services (Keychain ...), используя символические ссылки ... (ln -s ...
)
Я надеюсь, что эта информация поможет вам сделать работу ... Удачи!
Не так уж не по теме, но мне было бы интересно узнать, какой сценарий делает этот вид безопасности законным. Еще раз, только «учетная запись администратора разработчика Apple» имеет «божественные полномочия» ... сертификаты в значительной степени бесполезны без этой учетной записи, если только вы не делаете специальное / корпоративное распространение ...
ENDOFEDIT
AFAIK, Apple генерирует все сертификаты = файлы.
Вы можете защитить эти файлы так, как вы хотите, но в любом случае, чтобы подписать приложение, вам нужно будет скопировать их на Mac во время подписания. (в определенном месте цепочка для ключей, где Xcode их получает)
Я сомневаюсь, что любая «смарт-карта» или подобное решение будет надежным ...
Что вы можете сделать, это посвятить один Mac подписи приложения и обеспечить его доступ (через смарт-карту, биометрические данные, просто логин / пароль ... или даже запертую дверь!)
Предполагается, что AppStore является вашей целью:
ИМХО, бояться украденных сертификатов на дистрибуцию немного параноично и бесполезно .
Чтобы отправить приложение в AppStore, вам все равно понадобится учетная запись администратора учетной записи iTunes , единственная, которая обладает такой мощностью. Другими словами, подписанный пакет не может быть отправлен в Apple без этой учетной записи.
Так что только то, что itunes подключает учетную запись администратора / пароль, должно быть действительно защищено .
(И в худшем случае я уверен, что Apple может заблокировать / восстановить украденный аккаунт)
И с этой учетной записью администратора вы можете отменить любую заявку на приложение, отозвать / восстановить все сертификаты ... (Приложение не проверено сразу, у вас есть ~ 10-дневный период одобрения для его отмены с уведомлением администратора по электронной почте)