Подтвердить что ты не робот

Как выполнить проверку приложений для iOS из командной строки

Можно ли выполнить локальную проверку для приложений iOS (которые можно увидеть в функции "Организатор в архивах" ) через командную строку?

UPDATE: просто для уточнения - цель состоит в том, чтобы в конечном итоге сделать эту валидацию частью процесса непрерывной интеграции для моих приложений iOS.

4b9b3361

Ответ 1

В прошлом я использовал эту команду:

xcrun -sdk iphoneos Validation /path/to/MyApp.app or /path/to/MyApp.ipa

Это проверит коды, размеры иконок и т.д. Я не уверен, что приложение Xcode Organizer или Application Loader выполняет другую проверку в дополнение к этому инструменту, а сам инструмент имеет нулевые флажки для справки или командной строки, которые я могу найти.

UPDATE

Этот вопрос побудил меня копать немного глубже. При запуске инструмента strings отображаются следующие переключатели:

-verbose
-upload
-warnings
-errors
-online

Параметр -online, по-видимому, будет проверять двоичный файл для первого доступного приложения в iTunes connect, но я не понял, как передать имя пользователя/пароль команде. Однако я предполагаю, что для непрерывной интеграции вы, вероятно, хотите только локальную проверку.

Ответ 2

Вы можете проверить из командной строки с помощью команды:

xcrun -sdk iphoneos Validation /path/to/App.{app or ipa}

Немного неясно, какие проверки он выполняет, но, по-видимому, он делает как минимум код подписи и размеры значков.

В дополнение к локальной проверке возможно выполнить онлайн-проверку (но только для пакетов IPA):

xcrun -sdk iphoneos Validation -verbose -online /path/to/App.ipa

Для этого вам необходимо иметь учетные данные iTunes Connect, хранящиеся в специальной записи на вашей цепочке ключей. Чтобы создать эту запись:

  • Откройте приложение Access Keychain Access;
  • Создайте новый элемент пароля (Файл > Новый элемент пароля...)
  • Брелок Имя элемента: Xcode:itunesconnect.apple.com
  • Имя учетной записи/пароль: ваши учетные данные для iTunes Connect

Онлайн-проверка кажется довольно грубой, но выполняет все проверки, которые в противном случае выполнялись бы с проверкой архива с помощью окна "Организатор" в Xcode. К сожалению, похоже, что при отказе не задан ненулевой код выхода, что означает, что выведение скрепок для обнаружения ошибок. Моя текущая эвристика для обнаружения отказа - это наличие любого выхода после строки Performing online validation....

Учитывая отсутствие документации, она почти наверняка не поддерживается.

Ответ 3

Если вы хотите только проверить подписанный файл ipa, есть инструмент для его выполнения altool

$ /Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool -h
Copyright (c) 2009-2015, Apple Inc.  Version 1.1

Usage: altool --validate-app -f file -t platform -u username [-p password]
       altool --upload-app -f file -t platform -u username -p password

 -f, --file                         Filename.
 -t, --type                         Type/Platform: osx, ios.
 -u, --username                     Username. Required to connect for validation and upload.
 -p, --password                     Password. Required if username specified.  Password is read from stdin if one is not supplied.
                                    May use @keychain: or @env: prefixes followed by the keychain or environment variable lookup name.
                                    e.g. -p @env:SECRET which would use the value in the SECRET environment variable.

 -v, --validate-app                 Validate an app archive. The username, password, and file path to app archive are required.
     --upload-app                   Uploads the given app archive.  The username, password, and file path to app archive are required.
     --output-format [xml | normal] 'xml' displays error output in a structured format; 'normal' outputs in an unstructured format (default)

 -h, --help                         Display this output.

Например,

 /Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool -v -f APP.ipa -u [email protected] -p password

Ответ 4

Вы можете проверить приложение с помощью команды altool, как показано ниже:

./altool --validate-app -f < 'ipaFile' >