我在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)
最后。我在我的Xcode项目的Supporting Files文件夹中添加了EstimoteSDK.framework和Estimote Indoor Location SDK(两个单独的项目,后者是前者的扩展)。我已经尝试了许多解决方案来解决这个问题,包括:
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。
答案 0 :(得分:0)
我最终解决了这个问题,方法是从项目中删除框架,从GitHub重新加载它,然后再将它添加到项目中。