duplicate symbols for architecture arm64 after Xcode 8.0 update duplicate symbols for architecture arm64 after Xcode 8.0 update xcode xcode

duplicate symbols for architecture arm64 after Xcode 8.0 update


Below Patch work for me..:)

Code recommended to use warning flags and set GCC_NO_COMMON_BLOCKS to YES.

Setting it back to NO solved the problem!enter image description here


I finally found it! You can compile after setting enable testability to NO in your Build settings.

Changed settings

From The Xcode 8 Release Notes:

When the Enable Testability build setting is enabled, Xcode 8 will pass -export_dynamic to the linker to preserve all global symbols for testing. This effectively overrides dead code stripping, which can expose link failures from unused functions that reference undefined symbols. If necessary, disabling testability will allow the link to proceed without source changes. (27684883)

Of course, the best thing to do is to either: a) remove the unused code that is causing the linker issues, or b) actually fix the linker issues.


I understand most people are solving this by either the No Common Blocks or the Dead Code setting, but that is actually a workaround for the real issue. In my case, I was using a Pod file that was adding the same libraries I already had linked, so basically I removed the duplicate files in my Build Phases link libraries that were already compiled in my Pod file and the Archive feature worked.