• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - Crashlytics 手动更新到 3.8.4 导致链接器错误

[复制链接]
菜鸟教程小白 发表于 2022-12-11 20:01:40 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个非常古老的遗留项目(从 2010 年开始约会)。它的 Crashlytics 套件最后一次更新是在 2013 年的某个地方。

我正在尝试更新它。它不使用 pod,所以我使用了 official Manual update指导。

  1. 我下载了更新的套件。
  2. 按照建议用新的 Crashlytics 替换旧的 Crashlytics。旧的没有 Fabric 工具包,所以我只是将它粘贴在那里并在项目设置中链接库。

这些是这里描述的仅有的两个步骤。但是这样做会导致链接器错误:

Undefined symbols for architecture x86_64:
  "___gxx_personality_v0", referenced from:
      +[CLSDemangleOperation demangleBlockInvokeCppSymbol:] in Crashlytics(CLSDemangleOperation.o)
      +[CLSDemangleOperation demangleSwiftSymbol:] in Crashlytics(CLSDemangleOperation.o)
      -[CLSDemangleOperation main] in Crashlytics(CLSDemangleOperation.o)
      ___28-[CLSDemangleOperation main]_block_invoke in Crashlytics(CLSDemangleOperation.o)
      Dwarf Exception Unwind Info (__eh_frame) in Crashlytics(CLSDemangleOperation.o)
  "vtable for __cxxabiv1::__pointer_type_info", referenced from:
      typeinfo for std::exception const* in Crashlytics(CLSException.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for __cxxabiv1::__vmi_class_type_info", referenced from:
      typeinfo for std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > in Crashlytics(CLSException.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "___cxa_begin_catch", referenced from:
      CLSTerminateHandler() in Crashlytics(CLSException.o)
      ___clang_call_terminate in Crashlytics(CLSException.o)
  "std::get_terminate()", referenced from:
      _CLSExceptionCheckHandlers in Crashlytics(CLSException.o)
  "typeinfo for char const*", referenced from:
      GCC_except_table1 in Crashlytics(CLSException.o)
  "typeinfo for std::bad_alloc", referenced from:
      GCC_except_table1 in Crashlytics(CLSException.o)
  "typeinfo for std::exception", referenced from:
      GCC_except_table1 in Crashlytics(CLSException.o)
      typeinfo for std::exception const* in Crashlytics(CLSException.o)
  "___cxa_current_exception_type", referenced from:
      CLSTerminateHandler() in Crashlytics(CLSException.o)
  "___cxa_rethrow", referenced from:
      CLSTerminateHandler() in Crashlytics(CLSException.o)
  "vtable for __cxxabiv1::__class_type_info", referenced from:
      typeinfo for std::__1::__basic_string_common<true> in Crashlytics(CLSException.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "___cxa_end_catch", referenced from:
      CLSTerminateHandler() in Crashlytics(CLSException.o)
  "___cxa_demangle", referenced from:
      +[CLSDemangleOperation demangleCppSymbol:] in Crashlytics(CLSDemangleOperation.o)
  "std::terminate()", referenced from:
      ___clang_call_terminate in Crashlytics(CLSException.o)
  "std::set_terminate(void (*)())", referenced from:
      _CLSExceptionInitialize in Crashlytics(CLSException.o)
      CLSTerminateHandler() in Crashlytics(CLSException.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我尝试过的事情:

  1. 删除 Crashlytics 和 Fabrics 的两个引用并重新链接它们。
  2. 删除两个套件的物理实例并读取它们。
  3. 清理 XCode 的派生数据。
  4. 清理项目。
  5. 通过 Cocoapods 安装最新版本。
  6. 通过 Fabric 应用升级

但错误仍然存​​在。现在,我束手无策。有关如何解决此问题的任何想法?



Best Answer-推荐答案


我想通了。

问题是,前一个人修改了链接器和编译器标志,并从中删除了 $(inherited) 标志,该标志覆盖了 Cocoapods 配置,从而导致无法将主项目与Cocoapods 并因此缺少符号,因为 XCode 在没有链接的情况下找不到符号。

首先我删除了手动 Crashlytics,然后通过 cocoapods 安装了它们。现在它说缺少符号。

解决这个问题:

  1. 转到“预处理器宏”并确保将 $(inherited) 添加到调试和发布配置中。
  2. 转到“其他链接器标志”并确保在此处也添加了 $(inherited) 标志。

Crashlytics 3.8.4 现已启动并运行。

关于ios - Crashlytics 手动更新到 3.8.4 导致链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44887175/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap