Я начал получать ошибку кода после истечения срока действия сертификата. У меня есть обновленный сертификат, и истек срок его действия был удален. Но почему-то Xcode устанавливает EXPANDED_CODE_SIGN_IDENTITY с SHA-1 сертификата с истекшим сроком действия. Где он получает эту ценность? Я предполагаю, что он должен быть кэширован где-то, потому что в цепочке ключей нет сертификата с SHA-1, который он пытается использовать для подписи кода. Я искал файл pbxproj и не нашел его, и рекурсивный grep, начиная с корня проекта, не дал никаких результатов.Как установить Xcode EXPANDED_CODE_SIGN_IDENTITY?
Вот некоторые подробности о моей конфигурации:
- Там нет учетной записи устанавливается в Xcode
- Вместо учетной записи разработчика, я использую экспортированный сертификат из команды агент
- Xcode версии является 6.1.1
- OSX версии 10.10.2
идентичность проект создан в Xcode, как это :
Когда я просматриваю связку ключей, он находит правильную идентичность:
$ security find-identity -p code signing
Policy: Code Signing
Matching identities
1) F1326572E0B71C3C8442805230CB4B33B708A2E2 "iPhone Developer: XXX XXX (C395QGL4DK)"
В выходе сборки я вижу переменная окружения установлена неправильно:
export EXPANDED_CODE_SIGN_IDENTITY=9F5616A53464FC5C003847ED620357A7BC72ABB1
Я попытался исправить это:
- Удалить сертификат из Keychain Access и повторно добавить его
- Установите Контроль доступа частного ключа Разрешить все приложения
- Удалить все профили инициализации и повторно добавить один я использую
- Удалить все под ~/Library/Developer/Xcode/DerivedData
- Удалить все под ~/Library/кэши/com.apple.dt.Xcode
- Restart Xcode
- Перезагрузите Mac
я сейчас запустить НУ Идеи для вещей, чтобы попытаться. Есть два других разработчика, с которыми я работаю, и оба они сначала столкнулись с одной и той же проблемой. Тем не менее, они снова работают после выполнения тех же шагов, которые я пробовал. Мы все используем один и тот же сертификат, тот же файл обеспечения и те же настройки проекта. Это должна быть настройка или затяжной кеш, который находится в моей системе, но я не смог его найти.
Если бы я мог узнать, где Xcode устанавливает эту переменную среды, я могу ее очистить, и все должно быть хорошо.
В отсутствие чего-либо документированного, что я могу найти, я считаю, что вы правы. Я открыл профиль подготовки в текстовом редакторе и нашел две ссылки на сертификаты разработчика. Я скопировал текст для каждого, база 64 расшифровала их, а затем отправила их как вход в openssl. У одного был тот же SHA-1, что и «плохой» сертификат, а другой соответствовал «хорошему» сертификату. Я не уверен, почему Xcode выбирает плохой, но на исходный вопрос был дан ответ. –