Xcode 6.1 Missing required architecture X86_64 in file

后端 未结 11 1592
青春惊慌失措
青春惊慌失措 2020-11-27 02:53

In Xcode 6.1 , I am getting error for iPhone 6, iPhone 5s(iOS 7.1) which says

    Undefined symbols for architecture x86_64:
      \"_OBJC_CLASS_$_ClientAut         


        
11条回答
  •  Happy的楠姐
    2020-11-27 03:04

    • The first thing you should make sure is that your static library has all architectures. When you do a lipo -info myStaticLibrary.a on terminal - you should see armv7 armv7s i386 x86_64 arm64 architectures for your fat binary.

    • To accomplish that, I am assuming that you're making a universal binary - add the following to your architecture settings of static library project -

    enter image description here

    • So, you can see that I have to manually set the Standard architectures (including 64-bit) (armv7, armv7s, arm64) of the static library project.

    enter image description here

    • Alternatively, since the normal $ARCHS_STANDARD now includes 64-bit. You can also do $(ARCHS_STANDARD) and armv7s. Check lipo -info without it, and you'll figure out the missing architectures. Here's the screenshot for all architectures -

    enter image description here

    • For your reference implementation (project using static library). The default settings should work fine -

      enter image description here

    Update 12/03/14 Xcode 6 Standard architectures exclude armv7s.

    So, armv7s is not needed? Yes. It seems that the general differences between armv7 and armv7s instruction sets are minor. So if you choose not to include armv7s, the targeted armv7 machine code still runs fine on 32 bit A6 devices, and hardly one will notice performance gap. Source

    If there is a smarter way for Xcode 6.1+ (iOS 8.1 and above) - please share.

提交回复
热议问题