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" 应该包括路径
找不到头文件。
我正在使用 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" 应该包括路径 找不到头文件。