Xcode升级5.1 iOS升级7.1无法真机调试

时间:2023-01-22 17:13:34
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
warning: ignoring debug info with an invalid version (0)
0  0x10fca9f93  __assert_rtn + 144
1  0x10fd4ced4  ld::passes::stubs::Pass::makeStub(ld::Atom const&, bool) + 0
2  0x10fd4d5f7  ld::passes::stubs::Pass::process(ld::Internal&) + 497
3  0x10fd4dc07  ld::passes::stubs::doPass(Options const&, ld::Internal&) + 111
4  0x10fcaab50  main + 772
5  0x7fff8a3af5fd  start + 1
A linker snapshot was created at:
     /tmp/MyApp-2014-02-11-123906.ld-snapshot
ld: Assertion failed: (target != NULL), function stubableFixup, file /SourceCache/ld64/ld64-236.3/src/ld/passes/stubs/stubs.cpp, line 126.
clang: error: linker command failed with exit code 1 (use -v to see invocation)

手机升级完7.1,XCode升级到5.1后,真机调试时遇到编译不过,报以上错误!

原因是XCode的LTO 的bug,暂时的解决方法是关掉它!!

将XCode BuildSettings 中,Link 下的DEAD_CODE_STRIPPING 至为NO!

Xcode升级5.1 iOS升级7.1无法真机调试

This is a bug with LTO and -dead_strip.  The workaround is to stop using one of them.

way Link Time Optimization (LTO) works is that the compiler stops half way through and emits the .o file as "bit code" (the internal clang IR) instead of compiling down to mach-o.  This is drive by the -flto compiler option. When the linker encounters bit-code .o files, it loads up the back end of clang (libLTO.dylib) and merges/compiles all the bit-code files into mach-o then completes the link.

参见:

https://devforums.apple.com/message/950372#950372