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 Relogin необходим для доступа к учетным записям после перезапуска XCode

Запрос пароля при использовании Keychain Access для некоторых операций Запрос пароля при использовании 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

Для этой ошибки я попытался следующие шаги, чтобы исправить проблему:

  1. Перезагрузите машину, разблокируйте брелок с помощью "securify unlock-keychain", снова заблокируйте брелок
  2. Удалите папку ~/Library/Developer/Xcode/DerivedData.
  3. Запустить загрузку карфагена --platform iOS
  4. Откройте исходный код, синхронизирующий рабочее пространство, запустите "xattr -rc". затем откройте файл.xcodeproject в xcode.
  5. Включена автоматическая подпись для каждой цели. Необходимо войти с действительными учетными данными.
  6. Нажмите на профиль обеспечения под подписью.
  7. снова разблокировать брелок
  8. Изменение устройства сборки на Общие устройства в разделе "Продукт" -> "Очистить", затем "Продукт" -> "Архив"
  9. Будет отображено разрешение доступа к брелку, нажмите "Всегда разрешать".
  10. Вы должны убедиться, что архив успешен, а затем снова запустить задание Jenkins.
Другие вопросы по тегам