Xcode 运行 来自其他应用程序/命令行/Apple 脚本
Xcode Run from Other App / Command Line / Apple Script
是否可以在后台运行 Xcode 但通过脚本编译和 运行 当前项目?
我主要使用 AppCode 进行开发,但想通过热键从 Xcode 运行。 AppCode 没有正确显示编译进度条(Xcode 在第二个屏幕上可以),而且 AppCode 的调试能力不如 Xcode 先进。否则 AppCode 会更快更好。
可以从 AppleScript 中获取,这是一个示例脚本(在 Sierra 和 Xcode 版本 8.3.3 上测试) :
tell application "Xcode"
tell active workspace document to if exists then
repeat until (loaded) -- Whether the workspace document has finished loading after being opened
delay 1
end repeat
run -- Invoke the "run" scheme action
end if
end tell
到特定设备上的运行:我没有要测试的设备,但我使用模拟器,试试这个脚本:
tell application "Xcode"
tell active workspace document to if exists then
repeat until (loaded) -- Whether the workspace document has finished loading after being opened
delay 1
end repeat
--**** run on a specific device ****
set active run destination to run destination "iPad Pro (12.9 inch)" -- *** change it to the name of your device ***
set schAction to run -- Invoke the "run" scheme action
repeat while (get status of schAction) is in {not yet started, running} -- exit the loop when the status is (cancelled, failed, error occurred or succeeded), so I press the stop button in Xcode, or I delete the application in the simulator or I quit the simulator.
delay 3
end repeat
--**** run on another specific device ****
set active run destination to run destination "iPhone 7" -- *** change it to the name of your device ***
run
end if
end tell
是否可以在后台运行 Xcode 但通过脚本编译和 运行 当前项目?
我主要使用 AppCode 进行开发,但想通过热键从 Xcode 运行。 AppCode 没有正确显示编译进度条(Xcode 在第二个屏幕上可以),而且 AppCode 的调试能力不如 Xcode 先进。否则 AppCode 会更快更好。
可以从 AppleScript 中获取,这是一个示例脚本(在 Sierra 和 Xcode 版本 8.3.3 上测试) :
tell application "Xcode"
tell active workspace document to if exists then
repeat until (loaded) -- Whether the workspace document has finished loading after being opened
delay 1
end repeat
run -- Invoke the "run" scheme action
end if
end tell
到特定设备上的运行:我没有要测试的设备,但我使用模拟器,试试这个脚本:
tell application "Xcode"
tell active workspace document to if exists then
repeat until (loaded) -- Whether the workspace document has finished loading after being opened
delay 1
end repeat
--**** run on a specific device ****
set active run destination to run destination "iPad Pro (12.9 inch)" -- *** change it to the name of your device ***
set schAction to run -- Invoke the "run" scheme action
repeat while (get status of schAction) is in {not yet started, running} -- exit the loop when the status is (cancelled, failed, error occurred or succeeded), so I press the stop button in Xcode, or I delete the application in the simulator or I quit the simulator.
delay 3
end repeat
--**** run on another specific device ****
set active run destination to run destination "iPhone 7" -- *** change it to the name of your device ***
run
end if
end tell