2016-07-06 33 views
0

我在Xcode 7.3.1中的Estimote Indoor Location SDK中遇到问题。我收到的错误如下: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) 

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

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;

以及删除派生数据和经常清理项目。我是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) 

更新:我删除我收到的第一个错误,这是出现,因为我在链接二进制与图书馆双重包括EstimoteSDK.framework。

回答

0

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