在Fabric和Objective C中的多个Target上缺少DYSM错误

时间:2016-08-08 09:09:53

标签: objective-c ios8 crashlytics twitter-fabric

在我的应用中有两个目标:

 Target 1 : MyApp - com.app.myapp
 Target 2 : MyAppQA  - com.app.myappQa

用于Fabric注册的电子邮件ID对于两个目标都是same

我使用Fabric mac app创建了两个应用。

MyApp目标Fabric中捕获所有崩溃并正常工作。 但是当我使用目标MyAppQA运行时,我得到了Missing DYSM file error.

enter image description here

我无法理解为什么我的第二个目标没有捕获到崩溃。

这是我尝试的方法:

  1. BitCode - 已禁用(虽然我没有使用bitcode,但即便在那时我进行了交叉检查)

  2. 调试信息格式 - 使用dSYM文件设置为DWARF(发布和调试)

  3. 尝试手动上传DYSM文件(我通过存档项目获得了dysm文件,然后从右键单击菜单中选择了Show ShowPackageContents)

  4. 我已尝试过互联网上所有可能的解决方案。而且我也不想手动更新错误,因为我现在还没有iTunesConnect帐户。

2 个答案:

答案 0 :(得分:3)

Mike来自Fabric。

上传dSYM后,我们将开始重新处理过去7天内发生的任何崩溃,因此现在应该可以看到它。

要上传dSYM,包括查看上传流程中的任何错误,您可以使用位于upload-symbols的Fabric OS X应用程序中的Fabric.app/Contents/MacOS/upload-symbols脚本以及{{1}处的Fabric CocoaPod有效内容}

使用以下内容运行脚本以上载给定文件夹中的所有dSYM:

$PODS_ROOT/Fabric/upload-symbols

Documentation reference.

答案 1 :(得分:2)

整合Crashlytics的步骤: -

1.添加以下可可豆荚

pod 'Fabric'
pod 'Crashlytics'

2.将运行脚本添加到构建阶段(对于此步骤,您必须登录到结构而不是获取API密钥)

"${PODS_ROOT}/Fabric/run" 8252525b24e2d6fagsdg101ea7faf49edefa84ff3ec342b0dgsdrergadc2bd8agsdg50671jhga2ee8c017ddgsdg33fbbb

3.将您的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.在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.对于强制崩溃,在视图控制器的任何按钮点击事件上写下代码,无法写入app委托文件

[[Crashlytics sharedInstance] crash];

6.更改构建设置:

 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.如何使应用程序崩溃

 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