如何在 CI 构建服务器上禁用 Fabric.app 的自动下载+打开?

How to disable auto download+open of Fabric.app on CI build server?

我们无法通过 teamcity CI 让我们的 Fabric+Crashlytics 工作。问题是我们没有在 fabric 仪表板中获得崩溃报告。到目前为止,我已经尝试了所有可能的解决方案,但仍然没有任何帮助。唯一剩下要尝试的是确保 Xcode 已关闭并且 Fabric.app 未安装在构建机器上。但是,一旦开始创建构建,构建机器就会自动下载并打开 Fabric.app(我什至在构建过程中多次尝试关闭它,但如果应用程序未打开,它仍然会弹出并且构建会卡住)。想知道是什么导致了这个自动下载以及为什么构建仍然需要它。这是我们的 pods 文件的样子:

pod 'Fabric', '~> 1.2' #also tried with pod 'Fabric/Core', '~> 1.2'
pod 'Fabric/Crashlytics', '~> 1.2'

如果我通过 xcode 在设备上安装应用程序,则会在结构仪表板中看到崩溃。但是当我们从 hockeyapp(或任何其他分发提供商)创建 CI 构建、部署和下载应用程序时,应用程序不会发送崩溃报告。 Dsyms 没有丢失(没有警告,隐藏的 dsym 上传 link 没有抱怨缺少 dsyms)。 CI 构建日志不包含任何错误。每次我们的 teamcity 构建后,都会在 fabric 仪表板上创建一个新的应用程序版本(这意味着 post 脚本能够发送 dsym 并告诉 fabric 有关新版本的信息)。我在 plist 文件和 post 脚本中三次检查了我的密钥和秘密。这就是我的 post 脚本的样子:

./Pods/Fabric/Fabric.framework/run <API_key> <Secret>

这就是我们在 AppDelegate 的最后一行启动 fabric 的方式

[Fabric with:@[CrashlyticsKit]];

有什么想法吗?我 运行 没有想法,可能会尝试通过 Xcode(而不是通过应用程序加载器)直接将应用程序提交到应用程序商店,并且可能会为下一个版本寻找其他崩溃报告工具。

感谢来自 Fabric 的@MikeB,我终于能够解决崩溃问题。我不确定为什么 fabric.app 被下载和打开,但问题是在重新启动我们的构建服务器后默认情况下它不会下载和打开 :)

所以看起来问题出在构建服务器上安装并打开 fabric.app。现在,在它被完全删除后,我们可以得到崩溃。