Fabric多目标错误:Crashlytics“致命错误:找不到'Crashlytics / Crashlytics.h'文件”

时间:2018-04-25 13:44:58

标签: ios objective-c xcode google-fabric

我正在使用 Fabric ,之前我没有遇到任何问题,直到我添加了一个新的Target,这是“今日扩展”所必需的。

"Multiple Targets" of type "Today Extension"

我已经为这个新创建的目标添加了一个“运行”脚本构建阶段,其参数与“主目标”相同,以及两个目标的Info.plist中的Fabric键。

Run Script: "${PODS_ROOT}/Fabric/run" hex_value.... hex_value...

当我构建项目时,我遇到了构建错误:

fatal error: 'Crashlytics/Crashlytics.h' file not found

我的import语句是这样的,并且位于共享的文件中 并选择作为两个目标(目标成员)。

#import <Crashlytics/Crashlytics.h>

1 个答案:

答案 0 :(得分:1)

Fabric运行脚本是构建脚本的一部分,应该添加到每个目标,并且应该是构建阶段列表中的最后一项。

e.g。将运行脚本添加到“今日扩展”目标。

(注意:不需要将Fabric详细信息添加到“今日扩展”目标的plist文件中。)

找不到的头文件与“搜索路径”相关, 如果Fabric是通过CocoaPods安装的。

确保Podfile为两个目标安装它。

编辑Podfile后运行“pod install”命令。 注意:这两个目标都包括Fabric。

e.g。

   platform :ios, '9.0'
  # Uncomment this line if you're using Swift
  # use_frameworks!

  use_frameworks!

  target 'MyApp' do
  pod 'Fabric'
  pod 'Crashlytics', '~>  3.9'
  end

  target 'MoTodayExtenstion' do
  pod 'Fabric'
  pod 'Crashlytics', '~>  3.9'
  end

  post_install do |installer|
  puts("Update debug pod settings to speed up build time")
  Dir.glob(File.join("Pods", "**", "Pods*{debug,Private}.xcconfig")).each do |file|
  File.open(file, 'a') { |f| f.puts "\nDEBUG_INFORMATION_FORMAT = dwarf" }
  end

请注意Podfile中的 post_install 部分,此步骤 更新/创建驻留在Xcode中的xcconfig文件。 查看Xcode应用程序项目中的“Pods”文件夹;

这些文件中有几个变量

FRAMEWORK_SEARCH_PATHS 
GCC_PREPROCESSOR_DEFINITIONS 
HEADER_SEARCH_PATHS   
LD_RUNPATH_SEARCH_PATHS 
OTHER_CFLAGS 
OTHER_LDFLAGS 
PODS_BUILD_DIR
etc....

具体来说,“HEADER_SEARCH_PATHS”应该包含路径 无法找到的头文件。