Xcode 6:'Answers.h' Fabric Crashlytics 更新后未找到文件
Xcode 6: 'Answers.h' file not found after Fabric Crashlytics update
我在 Xcode 6.3.2 的故事板中参与 Objective-C 项目。当我尝试构建时突然出现错误:
/.../Developer/ProjectName/Crashlytics.framework/Headers/Crashlytics.h:14:9: 'Answers.h' 找不到文件
我已经安装了 Crashlytics 并在我的应用程序中运行了几周。我通过 Fabric 插件获得了它 运行。我切换了 Fabric 应用程序,发现它最近更新了 Crashlytics。
在 Xcode 中,如果我去 "Source Control" -> "Commit..." 查看我的更改,它只会显示我所做的更改 - 这与 Crashlytics 无关。
还有其他人看到了吗?有人对恢复和重返工作的最有效方式有任何建议吗?
当依赖项更新时无法控制我有点沮丧。
更新:
为了使项目进入可构建状态以便我可以继续工作,我暂时从我的 AppDelegate 中删除了以下行:
#import <Crashlytics/Crashlytics.h>
[Fabric with:@[CrashlyticsKit]];
我最终通过 "Contact support" link 在 http://support.crashlytics.com/ 获得了支持。
他们为我提供了一些步骤来从我的项目中删除旧的 Crashlytics 框架,然后手动重新安装它。我不清楚他打算我通过 Finder 而不是 Xcode 删除框架,所以我尝试按照说明进行操作导致了一些副作用(例如框架最终位于错误的目录中,我他让我用同上命令在我的桌面上有一个无名文件夹 运行...这导致 Time Machine 神秘地停止工作,直到我删除该文件夹)。
我最终从项目中完全删除了 Fabric 和 Crashlytics,然后我使用 Fabric OSX 应用程序将 Crashlytics 安装回项目中。从这里开始,项目又开始工作了。
为了从项目中删除 Crashlytics 和 Fabric,我执行了以下操作:
- 通过 Xcode
从我的项目中删除了 Crashlytics.framework 和 Fabric.framework
- 删除了项目属性 -> 构建阶段中的 运行 脚本。这可能是可选的。重要的是要验证 运行 脚本中的唯一 ID 是否与 Fabric 在重新安装时提供的 ID 相匹配。
删除了 AppDelegate 中的以下 3 行。这可能是可选的。重新安装时需要更换。
#import <Fabric/Fabric.h>
#import <Crashlytics/Crashlytics.h>
[Fabric with:@[CrashlyticsKit]];
对我来说,我是按照 Fabric.app 的步骤进行操作的,这些步骤告诉我要包括 #import <Answers/Answers.h>
,但我只需要:
#import <Crashlytics/Crashlytics.h>
...
[Answers logCustomEventWithName:@"My First Custom Event"
customAttributes:@{}];
如果您使用的是 Crashlytics+Answer,试试这个:
#import <Crashlytics/Crashlytics.h> //Obj-C
import Crashlytics //Swift
我在 Xcode 6.3.2 的故事板中参与 Objective-C 项目。当我尝试构建时突然出现错误:
/.../Developer/ProjectName/Crashlytics.framework/Headers/Crashlytics.h:14:9: 'Answers.h' 找不到文件
我已经安装了 Crashlytics 并在我的应用程序中运行了几周。我通过 Fabric 插件获得了它 运行。我切换了 Fabric 应用程序,发现它最近更新了 Crashlytics。
在 Xcode 中,如果我去 "Source Control" -> "Commit..." 查看我的更改,它只会显示我所做的更改 - 这与 Crashlytics 无关。
还有其他人看到了吗?有人对恢复和重返工作的最有效方式有任何建议吗?
当依赖项更新时无法控制我有点沮丧。
更新:
为了使项目进入可构建状态以便我可以继续工作,我暂时从我的 AppDelegate 中删除了以下行:
#import <Crashlytics/Crashlytics.h>
[Fabric with:@[CrashlyticsKit]];
我最终通过 "Contact support" link 在 http://support.crashlytics.com/ 获得了支持。
他们为我提供了一些步骤来从我的项目中删除旧的 Crashlytics 框架,然后手动重新安装它。我不清楚他打算我通过 Finder 而不是 Xcode 删除框架,所以我尝试按照说明进行操作导致了一些副作用(例如框架最终位于错误的目录中,我他让我用同上命令在我的桌面上有一个无名文件夹 运行...这导致 Time Machine 神秘地停止工作,直到我删除该文件夹)。
我最终从项目中完全删除了 Fabric 和 Crashlytics,然后我使用 Fabric OSX 应用程序将 Crashlytics 安装回项目中。从这里开始,项目又开始工作了。
为了从项目中删除 Crashlytics 和 Fabric,我执行了以下操作:
- 通过 Xcode 从我的项目中删除了 Crashlytics.framework 和 Fabric.framework
- 删除了项目属性 -> 构建阶段中的 运行 脚本。这可能是可选的。重要的是要验证 运行 脚本中的唯一 ID 是否与 Fabric 在重新安装时提供的 ID 相匹配。
删除了 AppDelegate 中的以下 3 行。这可能是可选的。重新安装时需要更换。
#import <Fabric/Fabric.h> #import <Crashlytics/Crashlytics.h> [Fabric with:@[CrashlyticsKit]];
对我来说,我是按照 Fabric.app 的步骤进行操作的,这些步骤告诉我要包括 #import <Answers/Answers.h>
,但我只需要:
#import <Crashlytics/Crashlytics.h>
...
[Answers logCustomEventWithName:@"My First Custom Event"
customAttributes:@{}];
如果您使用的是 Crashlytics+Answer,试试这个:
#import <Crashlytics/Crashlytics.h> //Obj-C
import Crashlytics //Swift