Нотариальное заверение MacOS в командной строке, возвращающее "неподдерживаемый URL" при получении статуса

Проблема в получении статуса нотариального заверения после загрузки запроса

Это похоже на то, что у меня есть более старое расширение ядра, с последним обновлением Mac, нотариально заверенным, что оно потребуется, и я пытаюсь сделать это автоматическим способом (командная строка).

Первое, что я хотел сделать, это посмотреть, смогу ли я получить что-нибудь для загрузки и вернуть какой-либо статус.

Итак, после создания kext в xcode я использовал то же самое для создания архива, который нужно отправить в Apple:

cd <builddir> && ditto -c -k --keepParent "MyApp.kext" "MyApp.kext.zip"

Как только это будет сделано, я загружаю его:

xcrun altool --notarize-app --primary-bundle-ip "com.myapp.." --username "[email protected]" --password "mypassword" -asc-provider "MyProvider" --file MyApp.kext.zip

Это возвращает идентификатор запроса, который мне нужен

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

xcrun altool --notarization-info <id> -u "[email protected]" -p "mypassword" -asc-provider "MyProvider"

OR

xcrun altool --notarization-history 0 -u "[email protected]" -p "mypassword" -asc-provider "MyProvider"

Обе команды дают мне:

*** Error: Connection failed! Error Message - unsupported URL
*** Error: Apple Services operation failed. unsupported URL

В Google мне не удалось найти ошибку с "неподдерживаемым URL"

У кого-нибудь есть опыт с этим?


person Nico    schedule 08.08.2019    source источник
comment
Я думаю, что видел эту ошибку раньше, но я забыл, что именно ее вызвало, но определенно это ошибка в способе отправки команды. В вашем случае похоже, что --notarization-info на самом деле не нуждается в опции --asc-provider. Попробуйте это оставить. Также обратите внимание, что это --asc-provider с двумя дефисами, а не -asc-provider. (Я не знаю, почему ваш --notarize-app работал, так как там тоже должно быть 2 дефиса.)   -  person pmdj    schedule 09.08.2019
comment
Я неправильно ввел команду здесь, нужен asc-provider, потому что я в более чем 1 команде, без него выдает ошибку   -  person Nico    schedule 09.08.2019
comment
Я хочу сказать, что если вы посмотрите на вывод xcrun altool --help, подкоманда --notarization-info не нуждается в --asc-provider. (UUID однозначный)   -  person pmdj    schedule 09.08.2019
comment
Вы правы и работает, не только это, я действительно сделал не только опечатку здесь, но и в командной строке (глупая ошибка), и теперь все работает. Спасибо, что заметили это   -  person Nico    schedule 09.08.2019


Ответы (1)


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

Имея это в виду, при внимательном рассмотрении ваших командных строк я заметил:

  • Это должно быть --asc-provider, а не -asc-provider. Два дефиса, а не один.
  • Подкоманда --notarization-info на самом деле не нуждается в опции --asc-provider, поскольку UUID однозначно идентифицирует транзакцию нотариального заверения, которую вы хотите.

Советы для тех, кто нашел этот ответ после поиска этого сообщения об ошибке в Интернете:

  • Сравните xcrun altool --help с вашей реальной командой. Проверьте количество дефисов и убедитесь, что выполняемая команда требует или поддерживает передаваемые вами аргументы.
  • Убедитесь, что все строки (имя пользователя, поставщик, идентификаторы пакетов, пароль (я настоятельно рекомендую поставщику связки ключей, а не вводить буквальный пароль в командной строке!) И т. Д.) Правильно экранированы и заключены в кавычки для удобства.
person pmdj    schedule 09.08.2019