iOS 中的 Crashlytics 不会在 Fabric 应用中超过 "Build Your Project"

Crashlytics in iOS won't proceed past "Build Your Project" in Fabric app

我正在为我的 iOS 应用程序安装 Crashlytics。我通过他们的网站 link 下载了它,并完成了集成框架、添加 运行 脚本等的所有步骤。

我遇到了问题,所以我删除了框架并决定重新开始并尝试全新安装。但是 Fabric 应用程序已更新到较新的版本,现在当我尝试将 Crashlytics 重新安装到我的应用程序中时,它没有给我重新安装框架的选项。从点击"install"直接进入"Build your project"画面,我无法通过。

To help configure your project, please build it now by pressing ⌘B

我按 ⌘B,它构建但没有任何反应。我认为问题是因为我从我的项目中删除了 Crashlytics 和 Fabric 框架,但我看不到重新添加它们的方法。 Fabric 应用程序没有给我该选项。

从评论转到答案。

这里是来自 Fabric 的迈克。如果您通过 Mac 应用程序备份,然后单击左上角的箭头,单击“+ 新应用程序”,这将引导您重新添加所有内容。

我已经通过以下方式解决了这个问题。按照上面的建议,我开始向 crashlytics 添加一个新的应用程序。当我要添加新的 "Run script" 构建阶段时,我只是复制该文本并将其粘贴到前一个(使用 Crashlytics 创建)上。 我也没有勾选 "Run script only when installing".

在此之后,我取消了添加新应用程序并返回升级。此时,构建应用程序可以将您带到下一步,您不会再卡在该屏幕上。

在 运行 脚本构建阶段有一个调用:

./Crashlytics.framework/run <your_api_key_here>

也许您添加了一些条件以仅在某些构建上触发它,例如:

releaseConfig="Release"

if [ "$releaseConfig" = "${CONFIGURATION}" ]; then  
    echo "Running Crashlytics"
    ./Crashlytics.framework/run <your_api_key_here>
fi

这样它就不会只在 ⌘B 上触发

https://dev.twitter.com/crashlytics/ios/advanced-setup

我今天遇到了同样的问题。问题是我没有 运行-脚本 :

./Fabric.framework/run <api key>

在我的项目中。一旦我把它放回去,一切就都完美了。为了保险起见,我还清理了我的项目并删除了派生数据。

在我的情况下,我正确地执行了所有步骤,但卡在了 'add build phase' 步骤。 然后我 刚刚重新启动 fabric 一切正常

还有一些其他可能的操作:

1) 只需重新启动 Fabric,Xcode 和您的 Mac。 2) 此外,如果您使用 Cocoapods,请从

更改构建阶段线
./Crashlytics.framework/run [yourAPIKey] 

"${PODS_ROOT}/Fabric/run" [yourAPIKey]

3) 构建项目后,如果 Fabric 将停止响应,请稍等片刻。我的 Mac.

花了大约一分钟

您必须检查您的部署目标版本,因为 "Fabric's minimum iOS version is 6.0"

请交叉验证您添加的 运行 脚本是您的实际目标,如果您将添加到测试目标,它将不会继续,直到您将它添加到实际目标

None 这里的解决方案对我有用。我的场景是其他人将 Fabric 框架添加到我们的项目并将其提交到 repo。他们计算机上的 运行 脚本 launched/triggered Fabric 插件,但不会 launch/trigger 在我的计算机上,尽管它没有报告错误。

解决方案是创建一个单独的项目,使用 Cocoapods 下载相同版本的 Fabric,替换我们 project/repo 中的 运行 脚本(以及目标 [=20= 中引用的那个) ] 脚本)与从 Cocoapods 下载的版本。重建然后插件就会响应。

比较两个 运行 脚本文件,它们有很大的不同,但是来自 Cocoapods 的 运行 脚本不是纯文本文件,它是不可读的。所以我不确定脚本之间有什么不同,但我们在使用相同版本的 Fabric 时以某种方式获得了不同版本的脚本。

我也被困在构建阶段。

我也取消勾选了"Run script only when installing",再次按command+B就进入下一步了

我做错的是将脚本添加到 pods 项目 构建阶段而不是 主项目 构建阶段, 将其添加到主要项目构建阶段解决了问题。

谢谢,我通过删除文件夹解决了问题:

~ / Library / Caches / com.crashlytics.data
~ / Library / Caches / com.crashlytics.mac

转到文件夹 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/<CURRENT_IOS_SDK>/usr/lib/ 并删除 所有 .dylib 个文件。

对我有用。

如果脚本不是 运行ning,您可能已经检查了 运行 脚本部分中的 "run script only when installing"。 希望对你有帮助

如果您查看资源导航器,您可能会看到以下消息:

"DEBUG_INFORMATION_FORMAT should be set to dwarf-with-dsym for all configurations. This could also be a timing issue, make sure the Fabric run script build phase is the last build phase and no other scripts have moved the dSYM from the location Xcode generated it. Unable to process eCreditWebWrapper.app.dSYM at path"

转到构建设置并搜索 "Debug Information Format"。确保 "Debug" 设置为 "DWARF with dSYM File"。

没有 dSYM 文件,Fabric 将无法工作。

进入目标的构建设置。 找到 "Debug Information Format"。 将调试和发布中的 "DWARF" 设置为 "DWARF with dSYM File"

在将构建目标设置为 'Generic iOS Device' 并从“产品”>“存档”菜单创建存档后,我只能让 Fabric 应用程序继续安装过程。

简单地构建应用程序或运行它在模拟器上似乎不会触发 Fabric 应用程序继续。

如果您要复制目标,请从构建阶段删除 运行 脚本并重新添加以解决问题。

如果使用Xcode 10.

Project Navigator -> 你的项目 -> Targets -> Build Phases -> 你的 运行 Fabric 脚本 -> Input Files -> “+”(添加输入文件) -> clear field 并通过这个行:

$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

一定要删除这个:$(SRCROOT)/

如果您有多个目标,

在构建项目之前检查架构选择是否正确。

TL;DR

点击您的方案 -> 编辑方案 -> 将构建配置设置为 "Release"

解释:

听起来不错,但在某些情况下,您只是在调试版本中不需要 crashlytics(谁想要在您刚刚开发和试验代码时发送崩溃?)。在这种情况下,您应该通过检查调试编译标志(超出此答案的范围)来禁用 crashlytics,并在安装期间首次构建应用程序以让 crashlytics 知道您构建了应用程序。

对于 Xcode 10. 将应用的构建 Info.plist 位置添加到构建阶段的输入文件字段:

$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

这解决了我的问题我希望这能解决其他问题。

至于 Xcode 10.2.1,通过 Fabric Mac 应用程序的自动安装将不再有效。无法通过新应用程序 Step-by-step 指南添加新应用程序

您必须遵循 manual installation instructions。下载 2 个框架并将其添加到 Xcode 工作区,然后添加 运行 Build Script 阶段(和相关的 Fabric 代码),然后构建 App。最后(非常重要),运行 实际设备中的应用程序

应用程序成功启动后,新应用程序信息将在 Fabric 仪表板和 Fabric Mac 应用程序中可用(需要重新启动应用程序才能看到新应用程序)。


步骤如下:

  1. 下载 2 个框架
  2. 拖到您的 App Delegate 所在的项目(确保勾选 "Copy items if needed")
  3. 在Xcode
  4. 中编译项目/工作区
  5. 按照说明添加"Run Script Phase"here;请注意 Xcode 10+ 需要在 Input Files
  6. 处进行额外配置
  7. 在App Delegate中添加需要的import和初始化代码
  8. Info.plist
  9. 中添加 Fabric API 键
  10. 再次编译
  11. 运行 真实设备中的应用程序。您将在 Xcode 日志中看到行 Crashlytics。如果没有出现日志,请检查您的活动方案是否包含 OS_ACTIVITY_MODE 设置。如果当前设置为 disabled,请将其设置为 default
  12. 如果出现 Crashlytics 行,则表示手动安装正常;你会看到你的应用程序出现在 Fabric 在线仪表板上。

原来我没有足够的权限在 Fabric 中创建新项目。 从 Member 升级到 Admin 解决了这个问题。

就我而言,从帮助中删除应用程序。 1) 从 Fabric 中删除应用程序。 2) 再次按照所有步骤添加应用程序并安装 Crashlytics。

没有任何帮助。现在 Fabric 捕获了我的存档创建。但我通过 fastlane 的 build_app.

创建档案

Xcode 的更高版本中打开项目。这在浪费了很多时间后解决了我的问题。

我的项目建立在 Xcode 10.2 上,我 运行 宁在 Xcode 10.1 上,但是当我 运行 Xocode 11 上的同一个项目时。构建成功

尝试用双引号将您的 运行 脚本变量括起来 ""

"${PODS_ROOT}/Fabric/run"