Codesign вернул неизвестную ошибку -1=ffffffffffffffff
Я пытался подписать код приложения iOS, вот шаги, которые я выполнил
security create-keychain -p password ${KEYCHAIN}
security set-keychain-settings -u -t 300 ${KEYCHAIN}
security list-keychains -d user -s login.keychain ${KEYCHAIN}
security import "$1" -k ${KEYCHAIN} -A -P "${PASSPHRASE}" -A >/dev/null
security unlock-keychain -p password ${KEYCHAIN}
/usr/bin/codesign -f -s $IDENTITY --keychain $KEYCHAIN --entitlements $ENTITLEMENTS Payload/Test.app
Это вернуло меня Codesign вернул неизвестную ошибку -1=ffffffffffffffff через ssh.
Если я непосредственно выполняю команду кодового знака на машине, она успешно подписывается.
Вопрос только в Mac OS Sierra.
8 ответов
Была такая же проблема некоторое время назад, добавляя
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k password ${KEYCHAIN}
решил это для меня.
Получил ту же проблему, но при архивировании непосредственно из Xcode. Поделиться решением на случай, если это поможет.
Иногда кажется, что брелок оказывается в поврежденном состоянии. Используя MacOS Sierra тоже.
Симптомы:
Relogin необходим для доступа к учетным записям после перезапуска XCode
Запрос пароля при использовании Keychain Access для некоторых операций
Доступ к цепочке для ключей - Ошибка при доступе к цепочке для ключей входа в систему через Изменение настроек для Связки ключей...
Для меня это исправляет блокировку и разблокировку (требуется пароль) задействованной цепочки для ключей, вход в мой случай.
Я собираюсь скинуться, так как мне пришлось попробовать еще несколько вещей, чем те, что упомянуты здесь: проблема заключалась в том, что связке ключей не нравятся сессии SSH. Я должен был выполнить это в моей сессии, чтобы исправить это:
security unlock-keychain -p MY_PASS ~/Library/Keychains/login.keychain
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k MY_PASS ~/Library/Keychains/login.keychain
security set-keychain-settings ~/Library/Keychains/login.keychain
Я также удалил свою текущую систему сертификатов / сертификаты учетной записи, удалив свою учетную запись из XCode (я использую fastlane для сборки), но я подозреваю, что это не должно было повлиять на это.
@madhu Я пытался исправить ту же проблему и обнаружил, что для Access Control для ключа, связанного с данным сертификатом, было установлено значение "Подтвердить перед разрешением доступа", что не сработало в Jenkins. Я изменил его (через Keychain Access GUI - Get Info, Access Control), чтобы "Разрешить всем приложениям доступ к этому элементу", и моя сборка прошла успешно.
Это происходит в автономной сборке, потому что запрос доступа к ключу не может быть показан или на него не ответили. Решение состоит в том, чтобы предотвратить отображение этого приглашения, предварительно предоставив доступ к ключу.
Откройте Keychain Access, найдите ключ для подписывающего сертификата (логин-> Сертификаты, затем разверните сертификат, чтобы раскрыть его ключ). Щелкните правой кнопкой мыши на ключе и выберите: "Информация" -> "Контроль доступа" и выберите "Разрешить всем приложениям доступ к этому элементу".
Возможно, вы экспортировали какой-то файл, такой как p12, из KeyChain, и когда ОС запросила ваш пароль root, и вы отказали ему, тогда Xcode будет кодировать ошибку знака с этой информацией.
Если это так, вам следует повторить вышеуказанное действие, ввести пароль и нажать "Разрешить", после чего все будет в порядке с кодом.
Я перепробовал почти все существующие предложения в Интернете, но ни одно из них не помогло...
Наконец, только заново создайте профиль обеспечения (для AdHoc), повторно загрузите его и поместите в ~/Library/MobileDevice/Provisioning Profiles/
перезапись существующего спасла мне жизнь.
Кстати, сборка AppStore все это время была успешной, поэтому проблема была определенно в самом профиле AdHoc (довольно странно, так как он выглядел хорошо во всех отношениях).
Несмотря на то, что мы установили правильные сертификаты в цепочке для ключей и правильный профиль обеспечения в ~/Library/MobileDevices/Provisioning Profiles.
Мы также можем увидеть
unknown error -1=ffffffffffffffff
Для этой ошибки я попытался следующие шаги, чтобы исправить проблему:
- Перезагрузите машину, разблокируйте брелок с помощью "securify unlock-keychain", снова заблокируйте брелок
- Удалите папку ~/Library/Developer/Xcode/DerivedData.
- Запустить загрузку карфагена --platform iOS
- Откройте исходный код, синхронизирующий рабочее пространство, запустите "xattr -rc". затем откройте файл.xcodeproject в xcode.
- Включена автоматическая подпись для каждой цели. Необходимо войти с действительными учетными данными.
- Нажмите на профиль обеспечения под подписью.
- снова разблокировать брелок
- Изменение устройства сборки на Общие устройства в разделе "Продукт" -> "Очистить", затем "Продукт" -> "Архив"
- Будет отображено разрешение доступа к брелку, нажмите "Всегда разрешать".
- Вы должны убедиться, что архив успешен, а затем снова запустить задание Jenkins.