iOS中的Crashlytics不会通过Fabric应用程序中的“构建您的项目”

问题描述 投票:71回答:22

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

我遇到一个问题,所以我删除了框架,并决定重新开始,并尝试全新安装。但Fabric应用程序更新到更新版本,现在当我尝试将Crashlytics重新安装到我的应用程序时,它不会让我选择重新安装框架。它直接从点击“安装”到“建设项目”的屏幕,这点我无法通过。

为了帮助配置您的项目,请按⌘B现在建立它

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

ios xcode crashlytics twitter-fabric
22个回答
69
投票

从注释移动到答案。

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


2
投票

您必须检查您的部署目标版本,因为“Fabric的最低iOS版本是6.0”


2
投票

在将构建目标设置为“通用iOS设备”并从“产品”>“存档”菜单创建存档后,我才能够使Fabric应用程序继续安装过程。

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


1
投票

在Run Script构建阶段,有一个调用:

./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


1
投票

在我的情况下,我正确地遵循了所有步骤,但却陷入了“添加构建阶段”步骤。然后我重新启动了面料,一切正常

还有一些其他可能的行动:

1)只需重新启动Fabric,Xcode和Mac。 2)如果你使用Cocoapods改变构建阶段线

./Crashlytics.framework/run [yourAPIKey] 

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

3)构建项目后,如果Fabric停止响应,只需等待一段时间。我的Mac上花了大约一分钟。


1
投票

如果您使用Xcode 10。

Project Navigator - >您的项目 - >目标 - >构建阶段 - >您的Fabric运行脚本 - >输入文件 - >“+”(添加输入文件) - >清除字段并超过此行:

$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

一定要删除它:$(SRCROOT)/

enter image description here


0
投票

请交叉验证您添加的运行脚本是否为您的实际目标,如果您将添加到测试目标,则在将其添加到实际目标之前不会继续


0
投票

这里没有一个解决方案适合我。我的方案是其他人将Fabric框架添加到我们的项目并将其提交给repo。他们的计算机上的运行脚本启动/触发了Fabric插件,但是我没有启动/触发,尽管它没有报告错误。

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

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


0
投票

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


0
投票

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


0
投票

如果你有多个TARGETS,

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


160
投票

进入你的目标的生成设置。查找“调试信息格式”。在调试和发布中将此设置从“DWARF”设置为“带有dSYM文件的DWARF”


0
投票

对于Xcode 10.将应用程序内置的Info.plist位置添加到Build Phase的Input Files字段:

$(BUILT_PRODUCTS_DIR)/ $(INFOPLIST_PATH)

这解决了我的问题,我希望这可以解决其他问题。


0
投票

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

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

-1
投票

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

它对我有用。


25
投票

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

“DEBUG_INFORMATION_FORMAT应设置为矮与 - DSYM的所有配置。这也可能是一个时间问题,确保织物运行脚本生成阶段是最后的构建阶段,并从该位置的Xcode产生它没有其他的脚本已移动的dSYM 。无法在路径处理eCreditWebWrapper.app.dSYM

转到“构建设置”并搜索“调试信息格式”。确保“Debug”设置为“DWARF with dSYM File”。

如果没有dSYM文件,Fabric将无法运行。


5
投票

我通过以下方式解决了这个问题。根据上面的建议,我开始为crashlytics添加一个新的应用程序。当我达到增加新的“运行脚本”建设阶段,我刚才复制的文本并粘贴它比上一个(与Crashlytics创建)。我也取消选中“仅在安装时运行脚本”。

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


5
投票

我也被困在Build阶段。

我也取消选中"Run script only when installing"并再次按下命令+ B然后我转到下一步。


4
投票

如果脚本未运行,您可能已在运行脚本部分中检查了“仅在安装时运行脚本”。我希望它有所帮助


3
投票

TL; DR

点击你的计划 - >编辑方案 - >设置生成配置“释放”

说明:

The most voted answer听起来很正确,但有些情况下,您只需要在调试版本中不需要崩解剂(当您开发和试验代码时,谁想要发送崩溃?)。在这种情况下,您应该通过检查调试编译标志(超出此答案的范围)来禁用crashlytics,并且在安装期间第一次构建应用程序以便发布,以便让崩解者知道您构建了应用程序。


3
投票

至于Xcode 10.2.1,通过Fabric Mac app进行的自动安装将不再适用。无法通过新应用程序分步指南添加新应用程序。

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

一旦应用程序成功启动,新应用的信息会在仪表盘布以及布料Mac应用程序可用的(需要重新发动应用程序,看看新的应用程序)。


以下是步骤:

  1. 下载2个框架
  2. 拖动到您的App Delegate所在的项目(确保勾选“如果需要,复制项目”)
  3. 在Xcode中编译项目/工作区
  4. 按照here的指示添加“运行脚本阶段”;请注意,Xcode 10+需要在Input Files进行额外配置
  5. 在App Delegate中添加所需的import和初始化代码
  6. Info.plist中添加Fabric API密钥
  7. 再次编译
  8. 在真实设备中运行应用程序。您将在Xcode日志中看到Crashlytics行。如果未显示任何日志,请检查您的活动方案是否包含OS_ACTIVITY_MODE设置。如果当前设置为default,则将其设置为disabled
  9. 如果出现Crashlytics系列,则表示手动安装正在运行;您将看到您的应用程序出现在Fabric在线仪表板上。

2
投票

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

./Fabric.framework/run <api key>

在我的项目中。一旦我把它放回去,那一切都完美无缺。我还清理了我的项目并删除了派生数据,以确保。

© www.soinside.com 2019 - 2024. All rights reserved.