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)签入后检查Crashlytics
。 Crashlytics.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文件(我把它保存在根文件夹中)
- 添加
import
和startWithAPIKey
语句
- 在您的proj上完全删除Crashlytics框架,在App Build Phases Run Script中包含shell脚本。
- 重新安装Fabric按照指南,一切都会好的。
我以前升级到面料,没有问题。 几天之后,我重新打开了同一个项目,并且丢失了crashlytics.h文件的问题。
由于非编译项目,我无法简单地从插件重新安装(我有很多CLS_LOG消息,并引用了我的项目中缺less的crashlytics.h文件,它将需要很长时间才能删除它们,只是为了允许构build工作 – 重构将无法在CLS_LOG上工作)。
相反,我从我的项目中删除了crashlytics.framework并做了以下操作,直接从插件中恢复:
-
再次下载Fabric插件,然后双击zip文件解压缩Fabric应用程序。
-
右键单击结构图标和“显示包装内容”
-
将Crashlytics.framework文件夹复制到桌面,然后通过“文件” – >“将文件添加到…”将其重新添加到项目中。
如果第3步不适用于您,也可以直接将crashlytics.framework添加到您计算机上的项目文件夹中,然后通过与第3步相同的Xcode将其添加到项目列表中,但取消选中“如果需要复制项目”因为你已经把文件放在那里了。
我的项目然后编译并再次正常工作。
在猜测为什么文件失踪? 部分升级过程让我删除旧的框架,然后从插件运行脚本等。 我认为发生的事情是在我清空垃圾后发生的,有些引用丢失了。 我也有问题,我把Crashlytics放到我的.gitignore文件中,所以它从我所有的项目中消失了,每个提交的都不是很好。
希望这可以帮助别人!