ios - iPad 在 Jenkins 中运行黑屏

标签 ios jenkins continuous-integration xcode5 kif

我以在我的帐户下启动的方式配置了 jenkins,但是当我使用 KIF 框架为我的单元测试构建项目时,Jenkins 启动黑屏的 iPad 模拟器但没有任何反应(jenkins 也没有提供任何有用的信息).

任何人都可以建议解决这个问题吗?

请注意,在命令行下一切正常。

最后,我找到了需要使用 iPad Retina 或 iPad Retina(64 位)的解决方案:

-destination OS=7.0,name=iPad Retina

因此,最后假设的建议也不起作用 - 需要另一个解决方案。

最佳答案

我自己刚遇到这个。跟进 user2738882 的 self 回答,我修复了他的解决方案存在的缺陷:

他是正确的,这是由于 Jenkins 作为启动守护进程运行而发生的。守护进程在启动时无需登录即可启动,但它们无意访问 UI。这就是导致问题的原因。

不幸的是,如果您通过存档 (.war) 安装,Jenkins 默认安装为启动守护进程。

我采用的解决方案是将其移至启动代理。为此,请按照下列步骤操作:

  1. sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
  2. sudo cp /Library/LaunchDaemons/org.jenkins-ci.plist /Users/<Path to Jenkins User>/Library/LaunchAgents/org.jenkins-ci.plist
  3. 右键单击 -> 获取有关 org.jenkins-ci.plist 文件的信息
  4. 更改所有用户的读写权限(底部)
  5. 修改 plist 文件以将 GroupName 键值从“daemon”更改为“agent”
  6. 右键单击 -> 再次获取信息
  7. 将文件访问权限重置为之前的状态
  8. sudo launchctl load /Users/<Path to Jenkins User>/Library/LaunchAgents/org.jenkins-ci.plist

这种方法的缺点是启动代理只有在与它们关联的用户登录后才会启动。为了解决这个问题,我将我的 Jenkins 用户配置为在服务器启动时登录。为此:

  1. 打开系统偏好设置
  2. 开放组和用户
  3. 登录选项
  4. 将您的 Jenkins 用户设置为自动登录:

这显然是一个安全问题,但这些机器应该只能在您的本地网络上访问,并且无论如何都位于安全位置。不管怎样,我都将机器设置为在登录后尽快显示屏幕保护程序。

关于ios - iPad 在 Jenkins 中运行黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20186557/

相关文章:

ios - 使用自定义 xcode 构建配置找不到“React/RCTBundleURLProvider.h”文件

java - 使用 gradlew 时如何安装缺少的 jenkins 插件?

java - 无法运行程序 "mvn"错误=2,没有这样的文件或目录

python - 如何使用 jenkins 从私有(private) github 存储库安装 python 包?

.net - 与 Mercurial、MSBuild、ASP.NET 持续集成

build - 在下游项目之前触发上游项目构建

ios - AVAssetWriter 写入黑屏视频

ios - TableView 单元格高度自动调整为屏幕大小

ios - 使用 Swift 在 iOS 中全局检测屏幕转换(切换)

ruby-on-rails - 持续集成中的子域 + 集成测试