Fabric 和 Objective C 中多个目标上缺少 DYSM 错误
Missing DYSM Error on multiple Target in Fabric and Objective C
在我的应用程序中有两个目标:
Target 1 : MyApp - com.app.myapp
Target 2 : MyAppQA - com.app.myappQa
用于 Fabric
注册的电子邮件 ID 对于两个目标都是 same
。
我使用 Fabric mac app
创建了两个应用程序。
在 MyApp
中,Target Fabric 捕获了所有崩溃并且工作正常。
但是当我 运行 使用目标 MyAppQA
然后我得到 Missing DYSM file error.
我不明白为什么我的第二个目标没有捕捉到崩溃。
这是我试过的方法:
BitCode - 禁用(虽然我没有使用 bitcode 但即便如此我还是交叉检查了)
调试信息格式 - 使用 dSYM 文件设置为 DWARF(发布和调试)
尝试手动上传 DYSM 文件(我通过存档项目然后从右键单击菜单中选择 ShowPackageContents 获得了 dysm 文件)
我已经尝试了互联网上所有可能的解决方案。而且我不想手动更新 dysm,因为我现在没有 iTunesConnect 帐户。
这里是来自 Fabric 的迈克。
dSYM 上传后,我们将开始重新处理过去 7 天的所有崩溃,因此现在应该可以看到了。
要上传 dSYM,包括查看上传流程的任何错误,您可以使用位于 Fabric.app/Contents/MacOS/upload-symbols
的 Fabric OS X 应用程序和 Fabric CocoaPod 中的 upload-symbols
脚本$PODS_ROOT/Fabric/upload-symbols
处的有效负载
运行 包含以下内容的脚本,用于从给定文件夹上传所有 dSYM:
find <directory-to-search-for-dsyms> -name "*.dSYM" | xargs -I \{\} /path/to/upload-symbols -a <api-key> -p <platform> \{\}
集成 Crashlytics 的步骤:-
1.Add 低于 cocoa pod
pod 'Fabric'
pod 'Crashlytics'
2.Add 进入构建阶段的 运行 脚本(对于此步骤,您必须登录 fabric 才能获得 API 密钥)
"${PODS_ROOT}/Fabric/run" 8252525b24e2d6fagsdg101ea7faf49edefa84ff3ec342b0dgsdrergadc2bd8agsdg50671jhga2ee8c017ddgsdg33fbbb
3.Add 你的 API 键入 info.plist 文件
<key>Fabric</key>
<dict>
<key>APIKey</key>
<string>your_key</string>
<key>Kits</key>
<array>
<dict>
<key>KitInfo</key>
<dict/>
<key>KitName</key>
<string>Crashlytics</string>
</dict>
</array>
</dict>
4.Add AppDelegate 文件中的代码下方
AppDelegate.h:-
#import <Fabric/Fabric.h>
#import <Crashlytics/Crashlytics.h>
AppDelegate.m:-
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[Fabric with:@[[Crashlytics class]]]
}
5.For 强制崩溃在视图控制器的任何按钮单击事件上写入以下代码,无法写入应用程序委托文件
[[Crashlytics sharedInstance] crash];
6.Change 构建设置:
click on project target >> Build setting >> Chnage value of “Debug information Format” set it to “DWARF with dSYM file”
click on project >> Build setting >> Chnage value of “Debug information Format” set it to “DWARF with dSYM file”
7.How 让应用程序崩溃
Xcode's debugger prevents us from processing crash reports.
To make sure a crash is reported during your simulator testing:
⁃ Launch simulator (Run your project and install app in simulator)
⁃ Press stop (stop from Xcode )
⁃ Launch your app and force a crash (Now do not run project, just open simulator and launch your app from simulator and press button that u write code for crash ` [[Crashlytics sharedInstance] crash];`)
⁃ Relaunch the app from simulator (again run app from simulator not from Xcode project)
⁃ See the crash report in the web dashboard
在我的应用程序中有两个目标:
Target 1 : MyApp - com.app.myapp
Target 2 : MyAppQA - com.app.myappQa
用于 Fabric
注册的电子邮件 ID 对于两个目标都是 same
。
我使用 Fabric mac app
创建了两个应用程序。
在 MyApp
中,Target Fabric 捕获了所有崩溃并且工作正常。
但是当我 运行 使用目标 MyAppQA
然后我得到 Missing DYSM file error.
我不明白为什么我的第二个目标没有捕捉到崩溃。
这是我试过的方法:
BitCode - 禁用(虽然我没有使用 bitcode 但即便如此我还是交叉检查了)
调试信息格式 - 使用 dSYM 文件设置为 DWARF(发布和调试)
尝试手动上传 DYSM 文件(我通过存档项目然后从右键单击菜单中选择 ShowPackageContents 获得了 dysm 文件)
我已经尝试了互联网上所有可能的解决方案。而且我不想手动更新 dysm,因为我现在没有 iTunesConnect 帐户。
这里是来自 Fabric 的迈克。
dSYM 上传后,我们将开始重新处理过去 7 天的所有崩溃,因此现在应该可以看到了。
要上传 dSYM,包括查看上传流程的任何错误,您可以使用位于 Fabric.app/Contents/MacOS/upload-symbols
的 Fabric OS X 应用程序和 Fabric CocoaPod 中的 upload-symbols
脚本$PODS_ROOT/Fabric/upload-symbols
运行 包含以下内容的脚本,用于从给定文件夹上传所有 dSYM:
find <directory-to-search-for-dsyms> -name "*.dSYM" | xargs -I \{\} /path/to/upload-symbols -a <api-key> -p <platform> \{\}
集成 Crashlytics 的步骤:-
1.Add 低于 cocoa pod
pod 'Fabric'
pod 'Crashlytics'
2.Add 进入构建阶段的 运行 脚本(对于此步骤,您必须登录 fabric 才能获得 API 密钥)
"${PODS_ROOT}/Fabric/run" 8252525b24e2d6fagsdg101ea7faf49edefa84ff3ec342b0dgsdrergadc2bd8agsdg50671jhga2ee8c017ddgsdg33fbbb
3.Add 你的 API 键入 info.plist 文件
<key>Fabric</key>
<dict>
<key>APIKey</key>
<string>your_key</string>
<key>Kits</key>
<array>
<dict>
<key>KitInfo</key>
<dict/>
<key>KitName</key>
<string>Crashlytics</string>
</dict>
</array>
</dict>
4.Add AppDelegate 文件中的代码下方
AppDelegate.h:-
#import <Fabric/Fabric.h>
#import <Crashlytics/Crashlytics.h>
AppDelegate.m:-
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[Fabric with:@[[Crashlytics class]]]
}
5.For 强制崩溃在视图控制器的任何按钮单击事件上写入以下代码,无法写入应用程序委托文件
[[Crashlytics sharedInstance] crash];
6.Change 构建设置:
click on project target >> Build setting >> Chnage value of “Debug information Format” set it to “DWARF with dSYM file”
click on project >> Build setting >> Chnage value of “Debug information Format” set it to “DWARF with dSYM file”
7.How 让应用程序崩溃
Xcode's debugger prevents us from processing crash reports.
To make sure a crash is reported during your simulator testing:
⁃ Launch simulator (Run your project and install app in simulator)
⁃ Press stop (stop from Xcode )
⁃ Launch your app and force a crash (Now do not run project, just open simulator and launch your app from simulator and press button that u write code for crash ` [[Crashlytics sharedInstance] crash];`)
⁃ Relaunch the app from simulator (again run app from simulator not from Xcode project)
⁃ See the crash report in the web dashboard