我有一个目标和两种配置(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/