通过SSH在Xcode 6下运行xcodebuild测试时超时

 用户24fbqhclmt 发布于 2022-12-27 11:41

我似乎遇到了将Xcode6与jenkins集成的问题,我目前有这个设置并使用Xcode 5.

随着xcode 6通过SSH远程运行模拟器超时,当我在本地运行时它成功.

命令

xcodebuild -workspace PROJECTNAME.xcworkspace -scheme BGO_Tests -destination'platform = iOS模拟器,名称= iPhone 5s'dedevedDataPath ./Build clean test

2014-08-19 10:46:36.591 xcodebuild [33966:381f] iPhoneSimulator:超时等待120秒>模拟器启动,当前状态为1.

测试失败:测试目标BGO_Tests遇到错误(超时等待120秒,模拟器启动,当前状态为1

测试了最近的Xcode 6 beta 6

2 个回答
  • 注:设备名称在Xcode 7改变,让你不再为他们指定使用iPhone 5 (9.1 Simulator),而是iPhone 5 (9.1).

    使用xcrun instruments -s来获得设备的当前列表,然后使用你可以预先启动它:

    xcrun instruments -w "iPhone 5 (9.1)" || echo "(Pre)Launched the simulator."
    

    预先启动

    我得到了一点,我在那里提出的建议不再适用了.除了进行此处提到的更改之外,还需要启动模拟器xcodebuild,期待运行xcodebuild 之前:

    # First get the UDID you need
    xcrun instruments -s
    
    # Then launch it
    open -a "iOS Simulator" --args -CurrentDeviceUDID <sim device UDID>
    
    # and wait some time....
    sleep 5
    
    # Then launch your unit tests
    xcodebuild [...] -destination 'platform=iOS Simulator,name=<device name matching the UDID>' 
    

    老帖子

    此错误在Xcode 6.3及更高版本中得到修复.如果您在较新的Xcode中遇到类似问题,则可能是另一个错误.

    关于Bug ID#18001199的Apple跟进:

    运行GUI应用程序不支持LaunchDaemons提供的上下文.SSH服务和Jenkins的默认设置都实现为LaunchDaemons.在Xcode 5的早期版本中,xcodebuild可以在此上下文中在iOS模拟器上运行测试,但这从来都不是受支持的配置,并且正如您已经注意到Xcode 6不再有效.

    与LaunchDaemons不同,LaunchAgents提供了一个上下文,您可以在其中运行GUI应用程序 - 如果用户当时使用窗口服务器/ Aqua会话登录.将Jenkins配置从LaunchDaemon转换为LaunchAgent将避免报告的问题.您还可以使用launchd从SSH会话在iOS模拟器上运行测试,方法是制作LaunchAgent并手动加载/启动它,或者使用"launchctl submit".

    好的,经过一些更多的围绕这里的评论(非常感谢Opal),我发现通过JNLP启动奴隶相反.

    正如许多人所提到的,目前无法通过SSH运行单元测试,因此您可能希望现在转向JNLP代理,直到Apple修复它.


    如果与JNLP连接仍无法解决问题,请尝试本评论中提到的解决方案.

    即:在命令行上运行这些:

    DevToolsSecurity -enable

    sudo dscl.-append/Groups/_developer GroupMembership"user-that-runs-the-sim"

    security authorizationdb write system.privilege.taskport is-developer

    请参阅此处和此处的参考资料.

    我最近发现,如果您安装新版本的Xcode并且不启动它.模拟器可能会再次开始超时.为了解决这个问题,我不得不手动启动Xcode,并安装它要求的其他工具.

    2022-12-27 11:43 回答
  • 我最后通过执行以下步骤在Xcode 5上解决了这个问题,基本上是运行:

    sudo security authorizationdb write system.privilege.taskport allow
    

    这将消除一类这些身份验证弹出窗口.你还需要运行:

    sudo DevToolsSecurity -enable
    

    但是,一旦我升级到Xcode 6,我现在在尝试通过SSH运行xcodebuild测试时会无限挂起.只要我登录到控制台并从键盘运行它们,它们就会继续运行.

    2022-12-27 11:43 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有