Xcode 10 Crashlytics 安装

Posted

技术标签:

【中文标题】Xcode 10 Crashlytics 安装【英文标题】:Xcode 10 Crashlytics Installation 【发布时间】:2019-03-04 10:44:24 【问题描述】:

我很难理解在我的应用中安装 firebase Crashlytics 的这一步:

仅限 Xcode 10:将您应用的构建 Info.plist 位置添加到构建阶段的输入文件字段: $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

这是我目前所拥有的(请看图片),但是,我没有收到任何关于 Crashlytics 的崩溃报告。我把代码放错地方了吗?我应该把它放在哪里?

【问题讨论】:

来自 Fabric 的 Mike。请确保您使用的是最新的 SDK 版本 - Fabric 的 1.7.11 和 3.10.8 应该会改善此行为。 @droidBomb,关于您的编辑,大写很好,但最好更正拼写。 有谁知道为什么用括号代替花括号? 【参考方案1】:

使用

$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

而不是

$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

【讨论】:

您知道是否有任何方法可以导航到此目录并知道我的计算机上的每个变量是什么,以便我验证文件是否存在? (我问是因为 firebase 仍然没有找到我的 Crashlytics 已安装) 不记得今天在哪里看到的,但是有人用echo找到了infoplist_path 如果我们不需要 $(SRCROOT) ,为什么在 xcode 甚至在 firebase 文档中都预置了 $(SRCROOT) ?【参考方案2】:

进入目标的构建设置。找到“调试信息格式”。在调试和发布中将其从“DWARF”设置为“DWARF with dSYM File”

【讨论】:

这是缺少的步骤。谢谢!【参考方案3】:

请在此处查看步骤https://fabric.io/kits/ios/crashlytics/manual-install

检查您是否遵循所有步骤。 https://fabric.io/kits/ios/crashlytics/install

https://support.crashlytics.com/knowledgebase/articles/121064-why-don-t-i-see-data-from-my-first-crash-in-the-da

【讨论】:

【参考方案4】:

请按照以下步骤在项目中实施 firebase crashlytics

1) 设置 Firebase 帐户并创建您的项目。

https://firebase.google.com/docs/crashlytics/?authuser=1

必须要求此文件:GoogleService-Info.plist

您可以从 Firebase 生成此文件

2) 使用 Podfile 安装 Firebase 和 Crashlytics。

3) 转到项目 -> 构建阶段 -> 点击“+”号

如下图添加运行脚本

4) 在 AppDelegate 文件中导入 Firebase 框架。

import Firebase

FirebaseApp.configure()
Fabric.sharedSDK().debug = true

// Put this method in your viewController
@IBAction func btnCrashClick(_ sender: Any) 
    Crashlytics.sharedInstance().crash()

【讨论】:

如果我们不需要 $(SRCROOT) ,为什么在 xcode 甚至在 firebase 文档中都预置了 $(SRCROOT) ? @isJulian00 当我阅读 Crashlytics 的文档时,他们提到定义预填充 $(SRCROOT)。【参考方案5】:

用大括号替换圆括号

$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH

在脚本阶段调用echo $(BUILT_PRODUCTS_DIR)可以检查路径是否真实存在。使用圆括号在 Xcode 构建控制台中为我提供了以下信息“BUILT_PRODUCTS_DIR: command not found”。

用大括号替换圆括号将打印实际路径,因此脚本最终对我有用。

【讨论】:

如果我们不需要 $(SRCROOT),为什么在 xcode 甚至在 firebase 文档中都预置了 $(SRCROOT) ?【参考方案6】:

仅限xcode 10或以上,

    首先添加新的运行脚本阶段,添加

    $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

下面的示例截图,

2.在Project Navigator中,右键“Info.plist”,“Open as”→“Source Code”,添加如下代码

<key>Fabric</key>
        <dict>
            <key>APIKey</key>
            <string><FABRIC-API-KEY></string>
            <key>Kits</key>
            <array>
                <dict>
                    <key>KitInfo</key>
                    <dict/>
                    <key>KitName</key>
                    <string>Crashlytics</string>
                </dict>
            </array>
        </dict>

最后运行你的 xcode 10 或更高版本,它工作正常。希望对你有帮助

【讨论】:

如果我们不需要 $(SRCROOT),为什么在 xcode 甚至在 firebase 文档中都预置了 $(SRCROOT) ?

以上是关于Xcode 10 Crashlytics 安装的主要内容,如果未能解决你的问题,请参考以下文章

Fabric Crashlytics 不起作用。 iOS 14 应用程序/XCode 12

Xcode 7.1 中 ios 的 Crashlytics,在 xcode 7 中添加框架后抛出多个错误

Crashlytics 线程仅在使用 Xcode 11 构建的 iOS 13 上崩溃

如何在使用 Xcode 自动代码签名的同时使用 Fastlane 和 Crashlytics 进行构建?

ld:找不到框架 Crashlytics Xcode7.2.1

与 Xcode 6.2 兼容的 Crashlytics