ios - Fabric 多目标错误:Crashlytics “致命错误:'Crashlytics/Crashlytics.h' 文件未找到”
问题描述
我使用的是Fabric,之前没有任何问题,直到我添加了一个“今日扩展”所需的新目标。
"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 <Crashlytics/Crashlytics.h>
解决方案
Fabric 运行脚本是构建脚本的一部分,应该添加到每个目标中,并且应该是构建阶段列表中的最后一项。
例如,将运行脚本添加到“Today Extension”目标。
(注意:不需要将 Fabric 详细信息添加到“Today Extension”目标的 plist 文件中)。
找不到的头文件与“搜索路径”有关,如果 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部分,此步骤更新/创建驻留在 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”应该包含找不到的头文件的路径。
推荐阅读
- vue.js - 如何使用 Composition API 访问 Vuex 地图助手
- git - 如何根据 repo 状态打开和关闭 git 子模块
- gpu - 未检测到 nvidia gpu,甚至尝试从 BIOS 启用/禁用 igpu 和主显示器
- javascript - 从另一个文件中的另一个组件更改一个组件的状态
- c# - 是否可以在不离开应用程序的情况下使用按钮组织智能手机上所有通知的显示?
- python - (Python3) FLASK ADMIN:可以充分利用表格查看数据
- c - C 代码会自动查找参数 argc 的数量吗?
- javascript - 如何验证 UTC 格式日期
- java - 如何使用流将地图值聚合到集合中
- excel - 用基于另一个单元格值的非空白单元格填充空白单元格值