Проблема с установкой приложения на iPhone во время задания Jenkins с использованием devicectlIOS

Программируем под IOS
Ответить
Anonymous
 Проблема с установкой приложения на iPhone во время задания Jenkins с использованием devicectl

Сообщение Anonymous »

  • Xcode 16.0
  • MacOS Sonoma 14.5
  • iPhone 12 (iOS 18.0.1) – подключен через USB, отображается в Xcode и Finder, режим разработчика включен.
Наличие задания Jenkins, которое запускает сборку приложения, удаляет предыдущую сборку приложения с iPhone и устанавливает только что созданное приложение, а затем запускает набор автоматических тестов.
В Jenkinsfile процесс удаления/установки выглядит так:

Код: Выделить всё

stage ('Install XXX') {
options {
timeout(20)
}
steps {
s3CopyArtifact buildSelector: lastSuccessful(), excludeFilter: '', filter: '', flatten: true, optional: false, projectName: 'build-XXX-ios', target: 'utility'
sh """
cd utility;
unzip -o "*.zip"
xcrun devicectl device uninstall app --device ${env.PHONE} ${APP}
xcrun devicectl device install app --device ${env.PHONE} \"XXX.app\"
xcrun devicectl device process launch --device ${env.PHONE} --start-stopped ${APP}
"""
}
}
При удалении возникает ошибка:

Код: Выделить всё

+ xcrun devicectl device uninstall app --device XXXXXXX-XXXXXXXXXXX com.XXX.XXXXXX
xcrun: error: sh -c '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -find devicectl 2> /dev/null' failed with exit code 17664: (null) (errno=Invalid argument)
xcrun: error: unable to find utility "devicectl", not a developer tool or in PATH
PATH агента Jenkins выглядят следующим образом:

Код: Выделить всё

export ANDROID_HOME=~/Library/Android/sdk
export PATH=$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$ANDROID_HOME/build_tools
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-18.0.2.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:/usr/local/lib:/bin:/usr/local/bin:$PATH
Пытался установить инструменты командной строки Xcode, повторно подключить iPhone, подключить iPhone к другому разъему USB.
Команда xcrun devicectl list devices работает правильно, и iPhone там виден.< /п>

Подробнее здесь: https://stackoverflow.com/questions/793 ... -devicectl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»