【问题标题】:Crashlytics in iOS won't proceed past "Build Your Project" in Fabric appiOS 中的 Crashlytics 不会继续通过 Fabric 应用程序中的“构建您的项目”
【发布时间】:2015-03-22 22:32:21
【问题描述】:

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

我遇到了问题,因此我删除了框架并决定重新开始并尝试全新安装。但是 Fabric 应用程序更新到了较新的版本,现在当我尝试将 Crashlytics 重新安装到我的应用程序中时,它并没有给我重新安装框架的选项。它直接从单击“安装”到“构建您的项目”屏幕,我无法通过。

为了帮助配置您的项目,请立即按 ⌘B

构建它

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

【问题讨论】:

  • @MikeB:我所看到的只是“现在让我们更新 Crashlytics”,没有稍后实际添加新应用程序的选项。由于重复的符号,更新流程不起作用。如何获得适用于 Fabric 的正确版本的 Crashlytics 框架?
  • @MatejBalantič 很奇怪听到您看到重复的符号。尝试删除框架的当前副本。此外,我之前提到的步骤也可以用作修复模式,让您恢复正常运行。
  • 我想说这里的主要问题是当您使用.xcworkspace 尝试此操作时。原因是如果你从 Crashlytics 打开它会打开你的.xcxcodeproj
  • 使用 Xcode 10.2,下面的答案再次停止工作。必须使用手动方法安装 Fabric。
  • @Raptor 是对的。这停止使用带有 Cocoapods 的 Xcode 10.2。没有尝试手动安装 Fabric(这不是我想做的事情)。

标签: ios xcode crashlytics twitter-fabric


【解决方案1】:

从评论转向答案。

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

【讨论】:

  • 我有相关问题。我在旧 mac 有项目。添加了使用 Beta 和所有好东西创建的织物。如dos中所述。不要在项目中复制框架。我没有。项目在旧 Mac 上运行良好。但是当我将 repo 克隆到另一台 mac 时。我只能编译。我的应用程序显示在新 Mac 上的列表中。它停留在“为了帮助配置您的项目,请现在按 ⌘B 构建它”,因为我无法构建它,因为缺少 fabric.h。对我有什么建议吗?我尝试使用添加新应用程序。得到错误屏幕说可以添加。联系支持:(
  • 在获取新文件时听起来有些东西已经损坏。使用我上面的答案应该有助于在新机器上修复它,而不会影响其他任何东西。
  • 我尝试添加已经在列表中显示我的应用的新应用。首先我从来没有在新机器上做过那个项目。如果它从面料网站上阅读很好。但是后来我卡在构建上,并且微调器正在旋转等待项目以进行编译,因为 Fabric.h 丢失了它不会。它发生在所有项目中。一旦我在除主机(将结构添加到项目中)之外的其他地方克隆存储库。都坏了。
  • @MikeB 我们可以在网络上创建应用程序并使用 Cocoapods,我不喜欢 Fabric Mac 应用程序
  • 你们解决这个问题了吗?我有同样的问题,无法按照您的上述步骤操作,因为“找不到框架”错误导致我无法构建我的应用程序。而且绝对喜欢在 Cocoapods 中使用 Fabric。
【解决方案2】:

我已经通过以下方式解决了这个问题。按照上面的建议,我开始向 crashlytics 添加一个新应用程序。当我要添加新的“运行脚本”构建阶段时,我只是复制了该文本并将其粘贴到前一个文本(使用 Crashlytics 创建)上。 我还取消选中“仅在安装时运行脚本”。

在此之后,我取消了添加新应用程序并继续进行升级。此时,构建应用程序可以让您进入下一步,您不会再卡在该屏幕上。

【讨论】:

  • 也无济于事。
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

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

    ./Fabric.framework/run <api key>
    

    在我的项目中。一旦我把它放回去,它就会完美地工作。我还清理了我的项目并删除了派生数据以确保安全。

    【讨论】:

    • 它必须在第 1 行
    【解决方案5】:

    在我的情况下,我正确执行了所有步骤,但卡在了“添加构建阶段”步骤。 然后我刚刚重新启动了 fabric,一切正常

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

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

    ./Crashlytics.framework/run [yourAPIKey] 
    

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

    3) 构建项目后,如果 Fabric 停止响应,请稍等片刻。在我的 Mac 上花了大约一分钟。

    【讨论】:

    • 哇。我只花了一个小时尝试调试它,这就是原因。
    • Fabric 应用程序没有响应的部分,以为它已经崩溃了,但我只是没有足够的耐心。
    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

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

      【讨论】:

        【解决方案8】:

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

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

        比较这两个运行脚本文件,它们有很大的不同,但来自 Cocoapods 的运行脚本不是纯文本文件,而且不可读。所以我不确定脚本之间有什么不同,但我们在使用相同版本的 Fabric 时不知何故得到了不同版本的脚本。

        【讨论】:

          【解决方案9】:

          我也被困在构建阶段。

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

          【讨论】:

          • 这就是我需要做的!比重新创建一个新应用并重新安装所有内容要简单得多......
          【解决方案10】:

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

          【讨论】:

            【解决方案11】:

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

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

            【讨论】:

            • 也不要忘记这个~/Library/Caches/io.fabric.sdk.mac.data
            【解决方案12】:

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

            它对我有用。

            【讨论】:

              【解决方案13】:

              如果脚本没有运行,您可能在运行脚本部分选中了“仅在安装时运行脚本”。 希望对你有帮助

              【讨论】:

              • 在 Xcode 12 中它被称为“基于依赖分析”。当我取消选中它时,它开始为我工作。
              【解决方案14】:

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

              “对于所有配置,DEBUG_INFORMATION_FORMAT 应设置为 dwarf-with-dsym。这也可能是时间问题,请确保 Fabric 运行脚本构建阶段是最后一个构建阶段,并且没有其他脚本将 dSYM 从该位置移动Xcode 生成它。无法在路径处理 eCreditWebWrapper.app.dSYM"

              转到构建设置并搜索“调试信息格式”。确保“调试”设置为“带有 dSYM 文件的 DWARF”。

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

              【讨论】:

                【解决方案15】:

                进入目标的构建设置。 找到“调试信息格式”。 在调试和发布中将其从“DWARF”设置为“DWARF with dSYM File”

                【讨论】:

                • 谢谢!这是 Xcode 10 和 Mojave 的修复程序!
                • 这是我一直在寻找的答案,没有其他工作!
                • 这应该是文档的一部分。非常感谢。
                • 这个答案需要被标记为正确的!
                • 这对我不起作用。任何人都可以建议,这里还能做些什么来解决这个问题?谢谢
                【解决方案16】:

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

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

                【讨论】:

                • 将构建目标设置为“Generic iOS Device”并可能将Debug Information Format设置为“DWARF with dSYM File”实际上解决了问题对我来说
                【解决方案17】:

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

                【讨论】:

                  【解决方案18】:

                  如果您使用 Xcode 10

                  Project Navigator -> your project -> Targets -> Build Phases -> your Run Script for Fabric -> Input Files -> "+" (add input file) -> clear field and past this line:

                  $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
                  

                  请务必删除此:$(SRCROOT)/

                  【讨论】:

                    【解决方案19】:

                    如果你有多个目标,

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

                    【讨论】:

                      【解决方案20】:

                      TL;DR

                      点击你的方案 -> 编辑方案 -> 将构建配置设置为“发布”

                      解释:

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

                      【讨论】:

                        【解决方案21】:

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

                        $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

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

                        【讨论】:

                          【解决方案22】:

                          对于 Xcode 10.2.1,通过 Fabric Mac 应用程序自动安装将不再起作用。 无法通过新应用分步指南添加新应用。

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

                          App 启动成功后,Fabric 仪表盘和 Fabric Mac App 中都会显示新 App 信息(需要重新启动 App 才能看到新 App)。


                          步骤如下:

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

                          【讨论】:

                          • 我已经按照指示完成了。还是行不通。其他建议的解决方案也不起作用。你有什么想法吗?
                          • 我已在答案中添加了步骤。希望对您有所帮助。
                          • 嗨@Raptor 我发现有些东西不适用于最新的 Xcode 版本......我按照你的步骤操作,我在日志中看到如下内容:[Crashlytics] Version 3.13.4 (143)[Crashlytics] Running on iPhone10,6, 12.2.0 (16E227)[Fabric] Initialized with kit versions: { "com.twitter.answers.ios" = "1.4.1"; "com.twitter.crashlytics.ios" = "3.13.4"; "io.fabric.sdk.ios" = "1.10.2"; }`[Fabric ] 设置下载成功`....但仍然没有显示在我的仪表板上
                          • 它应该显示在 Fabric 仪表板中。确保在仪表板中选择正确的应用程序。
                          • 在设备上运行应用程序至关重要。为了获得我的第一个崩溃报告,有必要实现强制崩溃的代码,然后重新部署到设备(而不是在设备本身上重新打开应用程序),因为通过 XCode 重新启动应用程序是发送崩溃报告的原因。
                          【解决方案23】:

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

                          【讨论】:

                            【解决方案24】:

                            在我的情况下,从帮助中删除应用程序。 1) 从 Fabric 中删除应用程序。 2) 再次按照所有步骤添加应用并安装 Crashlytics。

                            【讨论】:

                              【解决方案25】:

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

                              【讨论】:

                                【解决方案26】:

                                更高版本的 Xcode 中打开项目。浪费了好几个小时后,这解决了我的问题。

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

                                【讨论】:

                                  猜你喜欢
                                  • 2019-05-30
                                  • 1970-01-01
                                  • 2017-08-04
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 1970-01-01
                                  • 1970-01-01
                                  相关资源
                                  最近更新 更多