Scripting Xcode: выберите пункт меню в AppleScript без активации окна?

У меня есть простой скрипт для программного запуска проекта iOS через XCode:

on run project_loc tell application "Xcode" open project_loc activate end tell tell application "System Events" tell application process "Xcode" click menu item "Run" of menu 1 of menu bar item "Product" of menu bar 1 end tell end tell end run 

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

One Solution collect form web for “Scripting Xcode: выберите пункт меню в AppleScript без активации окна?”

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

 on run tell application "System Events" to set focusedAppID to bundle identifier of first application process whose frontmost is true <your code here> tell application id focusedAppID to activate end run 

Но … Xcode сам является скриптовым приложением. Если все, что вам нужно, это проект для сборки, почему бы не использовать

 tell application "Xcode" to build <target / project> 

который избавит вас от червей GUI Scripting – посмотрите на словарь Xcode AppleScript (не добавленный по умолчанию – просто перетащите Xcode.app в окно библиотеки в редакторе AppleScript).

  • Xcode: неверная ошибка symlink при попытке запуска приложения в iOS-симуляторе
  • Сортировка NSDictionary, спуск. Как отправить параметры с помощью опции `compare: options:` selector?
  • В контакте отсутствуют некоторые из требуемых дескрипторов ключей при отображении через CNContactViewController
  • Основные данные NSManagedObject не имеет действительного NSEntityDescription
  • запуск раскадровки экрана для нескольких устройств и различных ориентаций iOS
  • Удалить NSLog из выпусков сборки
  • Как найти элемент пользовательского интерфейса, связанный с определенным IBOutlet?
  • Как создать IBInspectable типа enum
  • Приложение не запускается в полноэкранном режиме при работе на iOS 7.1?
  • getFirstResponder работает в viewDidAppear, но не работает в viewDidLoad
  • Swift - «использование неразрешенного идентификатора»
  • Interesting Posts

    Как эффективно стереть хранилище Core Data, когда я просто храню данные в памяти (а не на диске)?

    как создать плеер RTSP в iphone

    табличный вид в popover не прокручивается

    iOS 7: UITableView отображается в строке состояния

    UICollectionView didDeselectItemAt не запускается

    ios затухает всплеск экрана (iphone 5)

    Нужен совет с UIBezierPath. Форма треугольника, такая как Instagram Sign Up View

    Получение AVPlayer для iOS 5 для отображения последнего кадра видео при завершении воспроизведения вместо черного экрана

    Вывод AVSpeechSynthesizer в аудиофайл

    Изменено имя проекта в Xcode, вызывающее ошибку именования

    com.apple.root.default-overcommit-priority – : сообщение отправлено на освобожденный экземпляр

    Xcode 9 застрял на миграции Swift 4

    XCode 4.2 Переименование цели

    Просмотр прокрутки iOS, Просмотр контейнера – автоматическая раскладка

    NSJSONSerialization в iOS 5, как c #, сериализует класс

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.