Как я могу подписать дилиб, используя обычную учетную запись Apple ID? (Учетной записи разработчика еще нет)

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


person user962460    schedule 12.04.2020    source источник
comment
Да, похоже.   -  person trojanfoe    schedule 12.04.2020
comment
Любое руководство о том, как мне его подписать?   -  person user962460    schedule 12.04.2020


Ответы (1)


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

Создание в Xcode

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

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

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

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

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

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

security find-identity -v -p codesigning

В нем будут перечислены все действующие идентификаторы кодового обозначения.

Для подписания dylib нужно использовать команду codeign:

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

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

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

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

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

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

codesign -vvvv <path to dylib>
person gaige    schedule 12.04.2020