Crashlytics文件未find

最近开了一个我编译并提交给苹果的项目。

我没有触摸它几个月,但我收到这个奇怪的编译错误:

#import <Crashlytics/Crashlytics.h> 

错误如下:

 'Crashlytics/Crashlytics.h' file not found 

显然这个框架是不能find的,但是我很困惑,为什么当这个项目在几个月前工作时,它突然停了下来。

任何build议为什么?

Xcode:4.6.3 Mac OS X:10.8.4

只需将$(SRCROOT)添加到项目构build设置(searchpath)中的框架searchpath即可

Crashlytics安装过程将其Crashlytics.framework放到您的项目文件夹中(或创build符号链接)。

如果您将Crashlytics.framework移动到项目文件夹层次结构的更深处 – 在“ Header Search Paths ”中将“recursion”设置在右侧或直接指向其父文件夹:

$(SRCROOT)/Path/to/the/folder/containing/Crashlytics.framework

从你的项目和磁盘删除框架。 检查是否有最新版本的Fabric插件。

使用以下命令将框架从插件文件夹复制到桌面:

 ditto -xk ~/Library/Caches/com.crashlytics.mac/5b91b14e832a7b1c29441ec5ba109810/sdks/ios/com.twitter.crashlytics.ios-default.zip ~/Desktop/ ditto -xk ~/Library/Caches/com.crashlytics.mac/5b91b14e832a7b1c29441ec5ba109810/sdks/ios/io.fabric.sdk.ios-default.zip ~/Desktop/ 

从桌面添加框架到您的项目。

信息来自: https : //twittercommunity.com/t/error-upgrading-from-crashlytics-on-ios/36196/2

我build议只使用CocoaPods来添加Crashlytics框架。 不需要关心path了。

Podfile:

 pod 'Crashlytics', '~> 3.4.1' 

dSYM的脚本构build阶段上传:

 ./Pods/Crashlytics/iOS/Crashlytics.framework/run <your_crashlytics_id> 

import:

 #import <Crashlytics/Crashlytics.h> 

对我来说,这工作:

从您的项目中删除结构和crashlytics框架,并从我们的项目的磁盘删除文件。

注释您的appdelegate.m文件中的行,如果您将它们添加到以下内容中:

 import Fabric/Fabric.h import Crashlytics/Crashlytics.h 

 [Fabric with:@[CrashlyticsKit]]; 

在面料应用程序中,select“新应用程序”,然后select您的Xcode项目文件

重新编译构build脚本并按照指示构build。 构build步骤是为什么你需要评论上面的行 – 如果你把这些行放在里面,它将不起作用。

构build脚本运行后,会提示您将框架从应用程序窗口拖到项目导航器中。 这将把他的框架(包括.h文件)的最新版本复制到你的项目中

我曾尝试手动下载,并从其他项目复制,但这是我失去了一个应用程序的框架文件后,我可以恢复的唯一方法。

在我的情况下,框架是在项目文件夹,但不是在项目导航器。 我把它拖到项目,一切正常。

我有这个问题与分布式团队(通过github)签入检查CrashlyticsCrashlytics.framework将只有一个文件夹 – “版本”。 您需要将Crashlytics.framework中的内容版本保存到其他位置,然后将其复制粘贴到Crashlytics.framework

从项目和磁盘中删除Crashlytics.framework。 复制并再次添加。 它帮助了我。

就我而言,我是从一个旧的Crashlytics安装通过Mac应用程序迁移到Cocoapods。 很多这个问题的答案build议彻底删除一切,重新开始。 我开始这样做,并注意到在Fabric文档中find的代码与Fabric应用程序中显示的代码之间存在差异,在此步骤中它会告诉您要将哪些内容复制到运行脚本构build阶段。

Fabric的文档在整个string周围都有双引号: "${PODS_ROOT}/Fabric/Fabric.framework/run <Your_API_Key> <Your_Build_Secret>"

Fabric App只有在run可执行文件的path周围有双引号: "${PODS_ROOT}/Fabric/Fabric.framework/run" <Your_API_Key> <Your_Build_Secret>

因此,在删除所有内容并重新开始之前,请尝试将您的运行脚本构build阶段更新为:

"${PODS_ROOT}/Fabric/Fabric.framework/run" <Your_API_Key> <Your_Build_Secret>

我已经改变了工作文件夹的名称和Craslytics失败。 在Build Settings(searchpath)中检查这个。

祝你好运!

我试图玩框架searchpath和重新安置和重新连接框架文件; 检查了构build设置(链接二进制库部分),但错误仍然存​​在。

最后,我重新安装了这个框架,只需要2-3分钟。 问题可能是由于您已将Crashlytics.framework重新定位到根目录中的另一个子文件夹,但我不确定确切原因。

  • 删除关于Crashlytics的一切
  • 启动crashlytics应用程序,login并select您的项目
  • 添加运行脚本
  • 拖放.framework文件(我把它保存在根文件夹中)
  • 添加importstartWithAPIKey语句
  1. 在您的proj上完全删除Crashlytics框架,在App Build Phases Run Script中包含shell脚本。
  2. 重新安装Fabric按照指南,一切都会好的。

我以前升级到面料,没有问题。 几天之后,我重新打开了同一个项目,并且丢失了crashlytics.h文件的问题。

由于非编译项目,我无法简单地从插件重新安装(我有很多CLS_LOG消息,并引用了我的项目中缺less的crashlytics.h文件,它将需要很长时间才能删除它们,只是为了允许构build工作 – 重构将无法在CLS_LOG上工作)。

相反,我从我的项目中删除了crashlytics.framework并做了以下操作,直接从插件中恢复:

  1. 再次下载Fabric插件,然后双击zip文件解压缩Fabric应用程序。

  2. 右键单击结构图标和“显示包装内容”

  3. 将Crashlytics.framework文件夹复制到桌面,然后通过“文件” – >“将文件添加到…”将其重新添加到项目中。

如果第3步不适用于您,也可以直接将crashlytics.framework添加到您计算机上的项目文件夹中,然后通过与第3步相同的Xcode将其添加到项目列表中,但取消选中“如果需要复制项目”因为你已经把文件放在那里了。

我的项目然后编译并再次正常工作。

在猜测为什么文件失踪? 部分升级过程让我删除旧的框架,然后从插件运行脚本等。 我认为发生的事情是在我清空垃圾后发生的,有些引用丢失了。 我也有问题,我把Crashlytics放到我的.gitignore文件中,所以它从我所有的项目中消失了,每个提交的都不是很好。

希望这可以帮助别人!