ios - 新的 Fabric Crashlytics 设置具有多种 iOS 配置,无 dSYM

标签 ios configuration swift4 crashlytics google-fabric

我有一个目标和两种配置(Lite 和 Standard)。两个配置都有单独的 bundle ID 和应用程序 ID。在 Fabric 仪表板中,创建了一个包含两个 iOS 应用程序的项目 - 每个应用程序一个配置(也尝试了具有相同结果的单独项目)

根据 Fabric 文档,使用这些行进行设置:

    let fileName:String
    if AppData.isLiteVersion
    {
        fileName = "GoogleService-Info-Lite"
    } else {
        fileName = "GoogleService-Info"
    }

    let filePath = Bundle.main.path(forResource: fileName, ofType: "plist")


    guard let fileopts = FirebaseOptions(contentsOfFile: filePath!)
        else { assert(false, "Couldn't load config file"); return}

    FirebaseApp.configure(options: fileopts)

Lite 配置在控制台中收到大量警告,例如

Analytics requires Google App ID from GoogleService-Info.plist. Your data may be lost. Google App ID has been changed. Original, new ID:

看起来崩溃正在发送到服务器,但 Lite 配置未接收符号 (dSYM)。 Lite 配置是从 Standard 复制的,因此除了捆绑 ID 和显示名称之外,所有build设置都是相同的

这个人在 Fabric Crashlytics multiple environments for iOS app似乎已经找到了解决方案,但它仅适用于旧 Fabric,因为它提到了新 Fabric 中不存在的 info.plist 条目。有什么想法如何在新的 Fabric 中解决这个问题吗?

此外,./Fabric.framework/run <your_api_key_here>说不通

error: Fabric: Configuration Issue

Fabric API key not valid. Your Fabric run script build phase should  contain your API key:
./Fabric.framework/run INSERT_YOUR_API_KEY INSERT_YOUR_BUILD_SECRET

但我不知道从哪里可以从新的 Fabric 中获取这个 secret

使用(来自 Cocoapods):Fabric (1.9.0)、Crashlytics (3.12.0)、Firebase (5.15.0)

最佳答案

终于找到解决办法了。问题是,默认 dSYM 上传程序使用找不到的 GoogleService-Info.plist 文件,因此显示无法在应用程序包中找到 GoogleService-Info.plist,dSYM 将不会上传。 在构建控制台中。

所以刚刚在构建阶段添加了新的运行脚本

"${PODS_ROOT}/Fabric/upload-symbols" -gsp "${PROJECT_DIR}/{SUBFOLDERS}/{SPECIFIC_GOOGLE_SERVICE_INFO_FILE}.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"

引用https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?authuser=0

关于ios - 新的 Fabric Crashlytics 设置具有多种 iOS 配置,无 dSYM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54138927/

相关文章:

ios - 类型 'ImageSlideshow?' 的值没有成员 'pageControlBottomPadding'

swift - 如果无法加载 URL,则取消加载 View Controller - Swift 4

ios - PerformSelector 延迟为 0?

ios - 显示键盘时如何决定滚动哪个 UIScrollView

java - Hibernate:必须声明元素类型 "hibernate-configuration"。无迁移

linux - Linux 关闭时终止进程前 SIGTERM 处理程序超时的配置位置

ios - 使用枚举和自定义字符串可转换设置文本字段并返回

ios - IOS 会增加推送通知角标(Badge)编号吗?

ios - 使用 Xcode 6.0-beta 添加手机间隙平台时出错

authentication - Tomcat 6.x JDBC 领域,驱动程序问题的类路径