2
我有一个很老的遗留项目(从2010年的某个地方约会)。 2013年Crashlytics手动更新到3.8.4导致链接错误
我试图更新它在其Crashlytics套件最后更新的地方。它不使用吊舱,所以我使用了official Manual update指南。
- 我下载更新包。
- 建议使用新建的Crashlytics替代旧的Crashlytics。旧的没有Fabric套件,所以我只是将它粘贴在那里,并在Project设置中链接库。
这些是那里描述的仅有的两个步骤。但这样做导致的链接错误:
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)
事情我已经尝试:
- 删除Crashlytics面料的两个引用并重新连接它们。
- 删除这两个套件的物理实例并读取它们。
- 清除XCode的派生数据。
- 清理项目。
- 通过Cocoapods安装最新版本。
- 通过面料应用
但错误仍然存在升级。现在,我的智慧已经结束了。有关如何解决此问题的任何想法?
听起来很奇怪。我正在研究一个类似的项目(没有豆荚),但通常更新面料并不麻烦。这两个框架是否包含在使用中的目标中? – user3752049
@ user3752049是的。我的项目中有四个目标,它们都包含在所有目标中(这就是我重新链接/读取它们的意思)。 – NSNoob