Static library gives error on iOS simulator and works on iOS device

Currently I’m working on a iOS application (iOS 6), In which I need to implement a static library.

I successfully implemented the Static library using this tutorial. And I successfully added the static library to other project and Installed the app to iPhone !. It’s working successfully.

  • Why don't iOS framework dependencies need to be explicitly linked to a static library project or framework project when they do for an app project?
  • IOS Static library how to, and issues
  • Linking static libraries, that share another static library
  • Interface Builder can't see classes in a static library
  • How to update our static library architecture for suporting arm64 Build?
  • How to distribute Static libraries?
  • But my issue is when I tried to run it on my simulator some errors are coming:

     "_OBJC_CLASS_$_MMPAlert", referenced from:
          objc-class-ref in ViewController.o
    ld: symbol(s) not found for architecture i386
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    Xcode error console

    I added the target architecture like:

    Target settings

    I searched a lot but couldn’t find a solution, why my library is working on device and giving error on simulator.

    Please help me, thanks in advance

    Solutions Collect From Internet About “Static library gives error on iOS simulator and works on iOS device”

    You have propably built your library for the device architecture only. The iOS Simulator is not an emulator, meaning the code needs to be able to run on your Mac’s architecture, which is obviously different from your device’s architecture.

    As a library is precompiled (for a specific architecture), the code it consists of doesn’t get compiled again for your current target once you use it in your project. This is why you need to build your library for both architectures in the first place.

    This SO Answer explains how to bundle two library builds into one handy “fat file”.