首页 文章

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

提问于
浏览
69

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

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

要帮助配置项目,请按⌘B立即构建项目

我按⌘B,它构建,没有任何反应 . 我认为问题是因为我从我的项目中删除了Crashlytics和Fabric框架,但是我可以给我这个选项 .

20 回答

  • 134

    从评论转到答案 .

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

  • 4

    进入目标的构建设置 . 找到“调试信息格式” . 在调试和发布中将此设置从“DWARF”设置为“带有dSYM文件的DWARF”

  • 1

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

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

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

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

  • 0

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

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

  • 1

    我也被困在Build阶段 .

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

  • 2

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

  • 2

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

    ./Fabric.framework/run <api key>
    

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

  • 69

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

  • 16

    在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

  • 0

    在我的情况下,我正确地遵循了所有步骤,但卡在了'add build phase'步骤 . 然后我 just restarted fabric 并且一切正常

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

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

    ./Crashlytics.framework/run [yourAPIKey]
    

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

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

  • 4

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

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

  • 0

    如果您使用 Xcode 10 .

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

    $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
    

    一定要 remove 这个: $(SRCROOT)/

    enter image description here

  • 5

    TL; DR

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

    说明:

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

  • 1

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

  • 0

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

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

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

  • 0

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

  • 1

    谢谢,我通过删除文件夹解决了这个问题:〜/ Library / Caches / com.crashlytics.data~ / Library / Caches / com.crashlytics.mac

  • 1

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

  • 0

    如果你有多个TARGETS,

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

  • -1

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

    它对我有用 .

相关问题