【问题标题】:Crashlytics does not work with Swift Package Manager iOS 14.6Crashlytics 不适用于 Swift 包管理器 iOS 14.6
【发布时间】:2021-07-19 12:44:49
【问题描述】:

使用 XCode10.5.1、iOS 14.6、Swift5.4.2,

使用 Swift Package Manger (SPM) 将 Firebase 依赖项添加到我的项目中 - 我尝试在我的 iOS 设备上使用 Google Crashlytics。

我在几篇帖子(例如this one)中看到,为了让 Crashlytics 通过 SPM 工作,您需要在 Xcode 中添加一个构建运行脚本,如下所示:

${BUILD_DIR%Build/*}SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run

现在,由于我确实有两个不同的配置定义(DEV 和 PROD),我需要让这个运行脚本知道这一点。

我的脚本如下所示:

if ["${CONFIGURATION}" == "Release"] || ["${CONFIGURATION}" == "Debug"]; then
    ${BUILD_DIR%Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run
elif ["${CONFIGURATION}" == "ReleaseDev"] || ["${CONFIGURATION}" == "DebugDev"]; then
  ${BUILD_DIR%Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run -gsp ${PROJECT_DIR}/iOS/SupportFiles/GoogleService-InfoDev.plist
fi

但 Crashlytics 仍然不起作用!

问题 NR1:Crashlytics 与 SPM 一起使用的运行脚本是什么样的?

问题 NR2:特别是,我如何改进我的运行脚本以明确区分 DEV 和 PROD 环境。 (到目前为止,我需要使用CONFIGURATION 解决此问题)。

【问题讨论】:

    标签: swift xcode crashlytics swift-package-manager


    【解决方案1】:

    这是一个在 Xcode 中通过 Swift 包管理器(即不通过 Cocoapod)使用 Crashlytics 的工作示例:

    我找到了解决方案 - 运行脚本的语法错误。

    这是正确的:

    echo "Configuration = $CONFIGURATION";
    if [ $CONFIGURATION == 'Debug' ] || [ $CONFIGURATION == 'Release' ]; then
      echo "PROD";
      ${BUILD_DIR%Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run -gsp ${PROJECT_DIR}/iOS/SupportFiles/GoogleService-Info.plist;
    elif [ $CONFIGURATION == 'DebugDev' ] || [ $CONFIGURATION == 'ReleaseDev' ]; then
      echo "DEV";
      ${BUILD_DIR%Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run -gsp ${PROJECT_DIR}/iOS/SupportFiles/GoogleService-InfoDev.plist;
    fi
    

    当然,DebugReleaseDebugDevReleaseDev 取决于您自己在 Xcode 中对配置的命名。

    这样,DEV 和 PROD 两种配置都可以与 Google Crashlytics 一起使用。该脚本可确保在发生崩溃时将必要的 dSYM 文件发送给 Google。

    要验证脚本是否执行,可以按照Xcode中report Navigator下的回显打印(即看截图)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-03
      • 2021-10-10
      相关资源
      最近更新 更多