Estimote SDK 忽略文件...文件是为不受支持的文件格式构建的

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

我在使用 Xcode 7.3.1 中的 Estimote 室内定位 SDK 时遇到问题。我收到的错误如下:

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

最后。我已将 EstimoteSDK.framework 和 Estimote Indoor Location SDK(两个独立的项目,后者是前者的扩展)添加到我的 Xcode 项目的 Supporting Files 文件夹中的项目中。我已经尝试了很多解决方案来解决这个问题,包括:

;

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;

以及经常删除派生数据和清理项目。截至昨天,我是 Xcode 的新手,所以解决方案对你来说可能是显而易见的,但对我来说却不是。看来问题是图书馆没有为我需要的架构正确构建?我收到的完整错误包含在此处。

    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)

更新:我删除了我收到的第一个错误,这是因为我在 Link Binary With Libraries 中双重包含了 EstimoteSDK.framework。

我最终解决了这个问题,方法是从项目中删除框架,从 GitHub 重新下载它,然后再次将其添加到项目中。