【问题标题】:Is there a way to close the iOS Simulator from the command line?有没有办法从命令行关闭 iOS 模拟器?
【发布时间】:2011-12-25 05:37:00
【问题描述】:

有什么方法可以通过命令行脚本退出 iOS 模拟器?

背景:

我正在设置一个持续集成环境,以使 iOS 构建能够自动编译和测试。作为其中的一部分,我在 Instruments 中使用 Apple 的 UI 自动化工具运行脚本。

我已经设法通过从命令行运行 Instruments 来自动执行 iOS 模拟器上的脚本,但现在我想自动退出模拟器。

我尝试了一些类似于这篇文章的 Apple 脚本:How can I reset the iOS Simulator from the command line?,但收到错误“辅助设备的访问被禁用”。希望有更简单的方法吗?

【问题讨论】:

    标签: ios ios5 ios-simulator


    【解决方案1】:

    对于 Xcode 7+,命令是 killall Simulator

    【讨论】:

      【解决方案2】:

      试试这个:

      osascript -e 'tell app "iOS Simulator" to quit'
      

      【讨论】:

        【解决方案3】:

        终端中的killall "iOS Simulator" 将关闭它。

        此外,您可以使用 iphonesim 启动它,以便对其进行更多控制,包括根据您的需要修改源代码。

        【讨论】:

        • 非常感谢这个简单的解决方案。你能看到在没有更优雅的关闭的情况下杀死所有进程的任何问题吗?如果没有,我会选择这个:-)
        • 这取决于你想做什么,但我看不出有什么大问题。杀死进程,休眠几秒钟或监视它们已经消失,然后做任何你想做的事情。
        • 在 xcode 6.1 的小牛队上,我不得不做killall "iOS Simulator"。感谢您的起点:D
        【解决方案4】:

        为 XCode 6 整合一些命令:

        killall "iOS Simulator" 
        
        xcrun simctl list | grep Booted | awk -F "[()]" '{ for (i=2; i<NF; i+=2) print $i }' | grep '^[-A-Z0-9]*$' | xargs -I uuid xcrun simctl shutdown uuid
        
        xcrun simctl list | awk -F "[()]" '{ for (i=2; i<NF; i+=2) print $i }' | grep '^[-A-Z0-9]*$' | xargs -I uuid xcrun simctl erase uuid
        
        open /Applications/Xcode.app/Contents/Developer/Applications/iOS\ Simulator.app
        

        【讨论】:

        • 这节省了我的一天(也是晚上)...是否需要在最后一个命令中打开模拟器?在我的情况下,即使没有它也一切正常(xcodebuild 测试自动启动模拟器)。
        【解决方案5】:

        基于该脚本,您可以像这样创建它:

        tell application "iPhone Simulator"
            activate
        end tell
        
        tell application "System Events"
            tell process "iPhone Simulator"
                tell menu bar 1
                    tell menu bar item "iOS Simulator"
                        tell menu "iOS Simulator"
                            click menu item "Quit iOS Simulator"
                        end tell
                    end tell
                end tell
            end tell
        end tell
        

        辅助设备错误也会发生在此。要解决此问题,您需要转到系统设置、通用访问并选中“启用辅助设备访问”

        【讨论】:

        • 非常感谢这个脚本,只是想知道打开“启用辅助设备访问”是否会损害计算机的安全性?
        • 嗯,它似乎启用了各种 GUI 脚本方法以及应用程序捕获输入的可能性(例如键盘记录)。我想这取决于对机器上运行的应用程序的信任。禁用它可能会提供一些针对键盘记录器等的基本保护,但我想更复杂的恶意软件无论如何都有它的方法。
        猜你喜欢
        • 2023-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-15
        • 2015-03-12
        • 2012-03-27
        • 1970-01-01
        相关资源
        最近更新 更多