Search code examples
iosobjective-cxcodeestimote

Estimote SDK Ignoring file... file was built for unsupported file format


I am having trouble with the Estimote Indoor Location SDK in Xcode 7.3.1. The error that I am receiving is as follows:

    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

at the end. I have added the EstimoteSDK.framework and the Estimote Indoor Location SDK (two separate items, the latter an extension of the former) to the project in the Supporting Files folder in my Xcode project. I have tried numerous solutions to fix this issue, including:

Enable Modules in build settings, add framework to Embedded Binaries, add -lc++ flag to Other Linker Flags;

Update framework/header search paths, add the missing files directly to the project, add/remove architectures from build settings;

add double quotes to library search path;

change the Tests host application target;

make sure frameworks are not double compiled;

as well as deleting derived data and cleaning the project often. I am new to Xcode as of yesterday, so the solution may be obvious to you and not to me. It seems that the issue is that the library is not correctly built for the architecture I need? The full error I am receiving is included here.

    Undefined symbols for architecture x86_64:
      "_OBJC_CLASS_$_ESTBeaconManager", referenced from:
          objc-class-ref in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
      "_OBJC_CLASS_$_ESTBeaconVO", referenced from:
          objc-class-ref in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
      "_OBJC_CLASS_$_ESTCloudAuthorization", referenced from:
          objc-class-ref in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
      "_OBJC_CLASS_$_ESTCloudMapper", referenced from:
          objc-class-ref in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
      "_OBJC_CLASS_$_ESTConfig", referenced from:
          objc-class-ref in ViewController.o
          objc-class-ref in AppDelegate.o
          objc-class-ref in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
      "_OBJC_CLASS_$_ESTEstimoteAccount", referenced from:
          objc-class-ref in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
      "_OBJC_CLASS_$_ESTRequestConst", referenced from:
          objc-class-ref in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
      "_OBJC_CLASS_$_ESTRequestGetBeaconsPublicDetails", referenced from:
          objc-class-ref in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
      "_OBJC_CLASS_$_ESTRequestGetJSON", referenced from:
          _OBJC_CLASS_$_x5jrFWmD1H3A6FjebaMXpnVGVw58bDekZYadlKY in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_r30zDA89cBIWZQpcYmM8xjPyM4sZy0L5 in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_e0LI38uUwsZ9apoFW3qhv6pOPRT1sKmoD in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_u6iU4JZRN2l55y2nA6UB13IMI6qJhPOAQewbEtFYKSXc8 in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_x5tjiUpT0eqXy2YsfRmjTTy8sPH2Yh7Fg65ufq in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_q6aJM8vJh5pYl1B9RjxOGWyy255Sv in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_EILRequestFetchLocation in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          ...
      "_OBJC_CLASS_$_ESTRequestManager", referenced from:
          objc-class-ref in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
      "_OBJC_CLASS_$_ESTRequestPostFormData", referenced from:
          _OBJC_CLASS_$_r9d3Qv4YR1qCdjYCLYKdaFnrDHhwMhb in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
      "_OBJC_CLASS_$_ESTRequestPostJSON", referenced from:
          _OBJC_CLASS_$_a5fKlf5zPAKpZGYdXEjkjKM6UUeiUhuRFRM in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_h8wUQo9zv9z8zLnKPUZZrR5tGL7Hg66FJe in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_EILRequestFetchPublicLocations in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_EILRequestAddLocation in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_i9W6QoRLyuXFjZE0tdknztDa1Afu6 in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_r1jq5StAIe8h4AOuHkc3I2CK181oJpZW in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_j4Knk5biyF4y2ruxzExKyBezNKZGM0icOOtIl in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          ...
      "_OBJC_CLASS_$_ESTRequestPutJSON", referenced from:
          _OBJC_CLASS_$_t7GPGJEILte9PO9O1AwX6TGgQ1I in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_r0eV8OeVutpppjv9HBNCa3c1VsjskD in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_r1ubUVn6LaT7VHpt6oXJwyW819XlLd61 in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_EILRequestModifyLocation in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_CLASS_$_i0d0cJ6mb8xJbrTFn17WWFY1uLUrHQo9x in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
      "_OBJC_CLASS_$_ESTUtilityManager", referenced from:
          objc-class-ref in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
      "_OBJC_METACLASS_$_ESTRequestGetJSON", referenced from:
          _OBJC_METACLASS_$_x5jrFWmD1H3A6FjebaMXpnVGVw58bDekZYadlKY in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_r30zDA89cBIWZQpcYmM8xjPyM4sZy0L5 in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_e0LI38uUwsZ9apoFW3qhv6pOPRT1sKmoD in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_u6iU4JZRN2l55y2nA6UB13IMI6qJhPOAQewbEtFYKSXc8 in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_x5tjiUpT0eqXy2YsfRmjTTy8sPH2Yh7Fg65ufq in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_q6aJM8vJh5pYl1B9RjxOGWyy255Sv in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_EILRequestFetchLocation in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          ...
      "_OBJC_METACLASS_$_ESTRequestPostFormData", referenced from:
          _OBJC_METACLASS_$_r9d3Qv4YR1qCdjYCLYKdaFnrDHhwMhb in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
      "_OBJC_METACLASS_$_ESTRequestPostJSON", referenced from:
          _OBJC_METACLASS_$_a5fKlf5zPAKpZGYdXEjkjKM6UUeiUhuRFRM in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_h8wUQo9zv9z8zLnKPUZZrR5tGL7Hg66FJe in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_EILRequestFetchPublicLocations in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_EILRequestAddLocation in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_i9W6QoRLyuXFjZE0tdknztDa1Afu6 in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_r1jq5StAIe8h4AOuHkc3I2CK181oJpZW in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_j4Knk5biyF4y2ruxzExKyBezNKZGM0icOOtIl in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          ...
      "_OBJC_METACLASS_$_ESTRequestPutJSON", referenced from:
          _OBJC_METACLASS_$_t7GPGJEILte9PO9O1AwX6TGgQ1I in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_r0eV8OeVutpppjv9HBNCa3c1VsjskD in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_r1ubUVn6LaT7VHpt6oXJwyW819XlLd61 in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_EILRequestModifyLocation in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
          _OBJC_METACLASS_$_i0d0cJ6mb8xJbrTFn17WWFY1uLUrHQo9x in libEstimoteIndoorSDK.a(libEstimoteIndoorSDK.a-x86_64-master.o)
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

Update: I removed the first error I was receiving, which was appearing because I had double included EstimoteSDK.framework in Link Binary With Libraries.


Solution

  • I ended up solving this issue by removing the framework from the project, redownloading it from GitHub and then adding it to the project again.