Как я могу подписать dylib, используя обычную учетную запись Apple ID? (Нет учетной записи разработчика) - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть dylib, и для того, чтобы он мог работать на моей машине, мне пришлось отключить проверку библиотеки в настройках цели на xcode. Можно ли подписать его без платной учетной записи разработчика только для тестирования? Любые ссылки или учебники о том, как go сделать это, очень помогли бы.

1 Ответ

1 голос
/ 12 апреля 2020

Зависит от того, как вы получаете библиотеку.

Сборка в Xcode

При сборке в Xcode вы должны иметь возможность включить подпись и сообщить ей используйте Team None и Sign to Run Locally все на панели Signing and Capabilities проекта.

Подписание существующего dylib

Если вы не строите это в Xcode, и вы хотите подписать двоичный файл, который вы создали или получили каким-то другим способом, вам нужно будет использовать codesign, который может быть довольно сложным.

Теоретически вы можете запустить codeignign используя любой сертификат, который был авторизован для подписи кода, и вы можете создать его с помощью самозаверяющего сертификата, но это является серьезной болью в шее и не обязательно приведет к успеху.

Xcode должен автоматически создайте сертификат подписи кода «Ma c Developer», если вы вошли на портал разработчика и позволили Xcode управлять идентификацией подписи для вас.

Вы можете проверить, что у вас есть удостоверение кодовой подписи, используя:

security find-identity -v -p codesigning

В этом списке перечислены все действительные идентификаторы кодовой подписи.

Подписание dylib зависит от использования команды кодовой подписи:

codesign --force --timestamp --sign <name of certificate> <binary you want to sign>

Использование самозаверяющего сертификата для подписи кода

Примечание: это не рекомендуется, но оно работает для меня.

  1. Запуск доступа к цепочке ключей
  2. Выберите Доступ к Цепочке для ключей> Ассистент Сертификата> Создать сертификат ...
  3. Назовите свой сертификат простым для ввода
  4. Измените Тип сертификата на Кодовое обозначение
  5. Нажмите Создать
  6. Нажмите Продолжить после прочтения предупреждения
  7. Нажмите Готово после его завершения (и go обратно в Keychain Access)
  8. Найдите только что созданный сертификат в Keychain Access и дважды щелкните его, чтобы получить сведения
  9. Нажмите кнопку раскрывающий треугольник рядом с Доверие , чтобы раскрыть настройки доверия
  10. Установить Когда используется g этот сертификат - Always Trust

Теперь ваш самозаверяющий сертификат должен появиться при запуске вышеупомянутой команды security, чтобы вывести список сертификатов подписи кодов. Если это так, вы, скорее всего, не установили Always Trust или тип сертификата на Подпись кода .

На этом этапе вы готовы выполнить команда подписи кода, а затем вы можете проверить, используя:

codesign -vvvv <path to dylib>
...