Xcode升级5.1 iOS升级7.1无法真机调试
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!
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