我正在尝试快速使用适用于iOS的Hue SDK(iOS部署目标:9.3)。我已经下载了the source from github并按照说明进行了操作。
在Xcode(版本7.3.1)中创建了一个新的iOS应用程序
将框架(HueSDK_iOS.framework)拖到项目中
将“ Lumberjack”文件夹拖到项目中,确保选择了目标并选择了“如果需要复制”选项
使用虚拟objC文件创建桥接头,并添加“ #import”
在目标构建设置的链接器标志中添加了“ -ObjC”:
在AppDelegate中添加了let sdk = PHHueSDK()
已执行“清理构建文件夹”
运行应用程序时,出现以下错误消息:
架构x86_64的未定义符号:“ _ OBJC_CLASS _ $ _ DDLog”,
引用自:
objc-class-ref in HueSDK_iOS(PHBridgeVersionManager.o)
objc-class-ref in HueSDK_iOS(PHAuthentication.o)
objc-class-ref in HueSDK_iOS(PHHeartbeatProcessingLocal.o)
objc-class-ref in HueSDK_iOS(PHCLIPWrapper.o)
objc-class-ref in HueSDK_iOS(PHAuthenticationStorage.o)
objc-class-ref in HueSDK_iOS(PHHueSDK.o)
objc-class-ref in HueSDK_iOS(PHHttpRequester.o)
...
从以下位置引用的“ _OBJC_CLASS _ $ _ DDTTYLogger”
objc-class-ref in HueSDK_iOS(PHHueSDK.o)
ld:找不到架构x86_64的符号
铛:错误:链接器命令失败,退出
代码1(使用-v查看调用)
似乎我在将SDK链接到项目时遇到问题。
我究竟做错了什么?
我的问题似乎与此stack overflow thread有关。
我还添加了该线程中建议的SystemConfiguration.framework,但未成功。
最佳答案
DDLog是一个Lumberjack方法,因此链接器未找到已编译的Lumberjack代码。
@Rapsefar,我使用7.3.1、9.3和当前的HueSDK_iOS.framework和Lumberjack文件夹完全按照您上面概述的步骤操作,创建了一个名为“ HueSwiftiOS”的应用程序。它编译并运行没有问题。这是我的桥接头文件的内容:
// HueSwiftiOS-Bridging-Header.h
#ifndef HueSwiftiOS_Bridging_Header_h
#define HueSwiftiOS_Bridging_Header_h
#import <HueSDK_iOS/HueSDK.h>
#endif
没有链接器错误和调用:
let sdk = PHHueSDK()
print("sdk initialized: \(sdk)")
报告:
sdk initialized: <PHHueSDK: 0x125645640>