0 / 0 / 0
Регистрация: 28.10.2023
Сообщений: 3
1

Сертификация и нотаризация

29.06.2024, 23:21. Показов 345. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, столкнулся с проблемой на работе...
Я учавствую в разработке плагинов и модификаций для одной программы, и мне поручили настроить установщик для MacOS.

Установщик настраивается прекрасно, но вот беда возникает с нотаризацией установщика (.pkg).

Вот как выглядит примерно процедура действий:

У меня есть один и тот же плагин, но разных версий, допустим plugin1.bundle и plugin2.bundle

Сперва я подписываю их используя следующую команду:
Bash
1
codesign --sign "Developer ID Application: <название компании> (<айди команды>)" --options runtime --timestamp=http://timestamp.apple.com/ts01 plugin1.bundle
и
Bash
1
codesign --sign "Developer ID Application: <название компании> (<айди команды>)" --options runtime --timestamp=http://timestamp.apple.com/ts01 plugin2.bundle
Далее я проверяю подпись используя такие команды:
Bash
1
2
3
4
codesign -dv -verbose=4 plugin1.bundle
codesign -dv -verbose=4 plugin2.bundle
spctl -a -vvv -t execute plugin1.bundle
spctl -a -vvv -t execute plugin2.bundle
которые выдают:

plugin1.bundle: edited signature app bundle with Mach-O universal (x86_64 arm64) [plugin1]
plugin2.bundle: edited signature app bundle with Mach-O universal (x86_64 arm64) [plugin2]
plugin1.bundle: accepted; source=Notarized Developer ID; origin=Developer ID Application: <название компании> (<айди команды>)
plugin2.bundle: accepted; source=Notarized Developer ID; origin=Developer ID Application: <название компании> (<айди команды>)


...соответственно.


далее я должен создать .pkg из них, чтобы потом объединить в один большой .pkg. Однако, я задался вопросом - нужно ли мне архивировать подписанные .bundle и отправить на сервера Apple для нотаризации. Я узнал, что нотаризация должна быть на последней стадии.

Чтобы создать .pkg, я использую следующую команду:
Bash
1
2
pkgbuild --root ./plugin1.bundle --identifier my.identifier1.myapp --version 1.0 --install-location ./plugin1.app ./plugin1.pkg
pkgbuild --root ./plugin2.bundle --identifier my.identifier2.myapp --version 1.0 --install-location ./plugin2.app ./plugin2.pkg
Далее я собираю 1 большой .pkg из них...

Bash
1
productbuild --distribution ./distribution.xml --package-path <путь к plugin1.pkg и plugin2.pkg> plugin.pkg

Далее я архивирую его в zip и отсылаю для нотаризации...
Bash
1
xcrun notarytool submit plugin.pkg.zip --apple-id <айди apple> --password <пароль> --team-id <айди команды>

Файл был загружен успешно; я получил UUID...

Далее использовал команду для проверки нотаризации...

Bash
1
xcrun notarytool log --apple-id <айди apple> --password <пароль> --team-id <айди команды> <UUID процесса нотаризации>
и в итоге я получаю такой вывод...

JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "logFormatVersion": 1,
  "jobId": "b5866e94-dd15-433a-8215-bc34c990ab4f",
  "status": "Invalid",
  "statusSummary": "Archive contains critical validation errors",
  "statusCode": 4000,
  "archiveFilename": "plugin.pkg.zip",
  "uploadDate": "2024-06-29T10:29:52.929Z",
  "sha256": "6adc31912662f096e192667eee7a6a2e50230ed44448a08e851afe5258478bfe",
  "ticketContents": null,
  "issues": [
    {
      "severity": "error",
      "code": null,
      "path": "plugin.pkg.zip/plugin.pkg",
      "message": "The binary is not signed with a valid Developer ID certificate.",
      "docUrl": "https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/resolving_common_notarization_issues#3087721",
      "architecture": null
    }
  ]
}

Я не понимаю что не так...


Я также пробовал подписывать самих plugin1.pkg и plugin2.pkg, а после, до нотаризации и plugin.pkg используя эту команду:
Bash
1
2
productsign --sign "3rd Party Mac Developer Installer: <название компании> (<айди команды>)" ./plugin1.pkg ./plugin1-signed.pkg
productsign --sign "3rd Party Mac Developer Installer: <название компании> (<айди команды>)" ./plugin2.pkg ./plugin2-signed.pkg
собирать их в plugin.pkg и также подписывать его:
Bash
1
productsign --sign "3rd Party Mac Developer Installer: <название компании> (<айди команды>)" ./plugin.pkg ./plugin-signed.pkg
и потом отправлял его на нотаризацию, но в конечном счете, все ровно получал такую-же ошибку.


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

Я также еще пробовал нотаризовывать каждую версию плагина, но когда я проверял статус нотаризации, оно также выдавало ошибку.

В общем, те кто часто разрабатывают на MacOS, мне нужна помощь разобраться как мне успешно нотаризовать .pkg.

Буду очень благодарен ответу, а пока пойду дальше задавать вопросы ChatGPT...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2024, 23:21
Ответы с готовыми решениями:

1С Сертификация
Что нужно знать, какие вопросы? Кто уже получил и что вы для этого сделали). 1С Франч предлагает...

Сертификация
Доброе время суток. Хочу узнать когда заканчивается сдача экзаменов MCTS 70-680 (Windows 7)....

Сертификация
Где можно пройти сертификацию...и если кто здавал расскажите плиз все и подробно....а еще если...

Сертификация 1С 8
Доброго времени суток) Подскажите пожалуйста, как лучше и выгоднее поступить. Знаком с 7-кой, в...

Сертификация
Добрый день. Есть группа продуктов, которую необходимо обязательно сертифицировать для продажи...

0
29.06.2024, 23:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2024, 23:21
Помогаю со студенческими работами здесь

Сертификация?
При поиске работы столкнулся с проблемой, подтверждения своих знаний. Сейчас я хочу получить...

Сертификация HP
Добрый день, где получить сертификат по ремонту принтеров HP?

Сертификация 1с
Доброе время суток, коллеги. Помогите пожалуйста по такому вопросу. Есть ли у кого ответы на...

Сертификация
возникло желание получить сертификаты oracle, qt, cisco (благо в вузе изучали все это), а наличие...

Сертификация Id
Посоветуйте как правильно организовать сертификацию id. Есть несколько серверов разных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru