В попытке построить проект iOS (в XCode) мне нужно импортировать общедоступные и закрытые ключи моего коллеги для идентификации подписи кода, но я не могу этого сделать, потому что я получаю сообщение об ошибке в Keychain Access, в котором говорится: Произошла ошибка. Не удалось импортировать элемент./Содержимое этого элемента невозможно получить "
ПОЛНЫЕ ДЕТАЛИ:
У меня есть два ключа от моего компьютера коллеги, вывез их из его Keychain в виде двух файлов:
Roomer Inc.p12 (закрытый ключ)
Roomer Inc.pem(открытый ключ)
Когда он экспортировал их, он оставил пароль пустым (хотя мы также пробовали с паролем "тест" и получили те же результаты).
Когда я дважды щелкните Roomer Inc.p12 (для закрытого ключа), он откроется в Keychain Access и предложит мне выбрать брелок (по умолчанию выбран "login" )
Я нажимаю "Добавить", а затем мне будет предложено ввести пароль в цепочку ключей (я оставляю пустой)
Далее я всегда вижу это сообщение в доступе к Keychain:
Однако, несмотря на появление этого сообщения, когда я нажимаю "ОК", я вижу новую личную запись для "Roomer Inc". Обратите внимание, что эта запись является закрытым ключом в цепочке ключей входа в систему, как и следовало ожидать, но не имеет срока действия (если она?)
Далее, для файла Roomer Inc.pem(открытый ключ) меня попросят выбрать keychain ( "login" ), и я нажимаю "Добавить"
Затем я также получаю сообщение "Произошла ошибка. Не удалось импортировать элемент./Содержимое этого элемента не может быть получено" для открытого ключа. Однако в этом случае (в отличие от частного ключа) я не вижу записи, соответствующей тому, что я только что добавил.
Итак, кажется, что запись в закрытом ключе может быть или не быть ОК (у меня нет возможности проверить), а запись открытого ключа для Roomer не может быть установлена в цепочке ключей без этого сообщения об ошибке. Обратите внимание, что я также попытался использовать команду импорта безопасности для импорта открытого ключа:
$security import Roomer\Inc.pem -f pkcs12 ~/Library/Keychains/login.keychain
1 импортированный ключ.
Когда я это делаю, хотя команда возвращает "1 ключ импортирован", я не вижу открытого ключа для "Roomer Inc" в окне "Доступ к Keychain" (я закрыл доступ к Keychain Access и снова открыл его).
В любом случае мы определили, что это наш блокатор. (Симптомом, конечно же, является то, что проект XCode не будет создан для профиля предоставления AdHoc, который будет использоваться с TestFlight). Я остановился на дополнительных шагах по установке XCode и настройке TestFlight, потому что мы считаем, что основная проблема связана с импортом ключей, как описано выше.