Fabric Multiple Targets Error: Crashlytics "fatal error: 'Crashlytics/Crashlytics.h' file not found"

Fabric Multiple Targets Error: Crashlytics "fatal error: 'Crashlytics/Crashlytics.h' file not found"

我正在使用 Fabric,之前我没有遇到任何问题,直到我添加了一个新目标,这是 "Today Extension".

所必需的
"Multiple Targets" of type "Today Extension"

我已经为这个新创建的目标添加了一个 "Run" 脚本构建阶段,其参数与 "Main Target" 以及 Info.plist 中的 Fabric 键相同目标。

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

当我构建项目时,出现构建错误,指出:

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

我的导入语句是这样的,在一个共享的文件中 并选择用于两个目标(目标成员)。

#import <Crashlytics/Crashlytics.h>

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

例如将 运行 脚本添加到 "Today Extension" 目标。

(注意:不需要将 Fabric 详细信息添加到 "Today Extension" 目标的 plist 文件中)。

找不到的头文件与"Search Paths"有关, 如果 Fabric 是通过 CocoaPods 安装的。

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

运行 编辑 Podfile 后的 "pod install" 命令。 注意:这两个目标都包含 Fabric.

例如

   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部分,这一步 updates/creates 驻留在 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" 应该包括路径 找不到头文件。