ORKESerializer Researchkit 测试 class 在为 iOS 设备构建时出错

ORKESerializer Researchkit test class giving error while building for iOS device

在进行我的第一个 researchkit 项目时,我需要将 Researchkit 调查的结果序列化为 json。我需要这个 json 数据来将调查答案发送回服务器。要序列化 ​​ORKResult object,建议使用函数 ORKESerializer.JSONDataForObject(taskResult)。此函数会将自定义 object 转换为正确有效的 json object。 ORKESerializer 实际上并不是 Researchkit 的一部分,但它包含在 GitHub 上名为 ORKTest 的测试应用程序中。下面是执行此操作的代码。

extension ViewController : ORKTaskViewControllerDelegate {

func taskViewController(taskViewController: ORKTaskViewController, didFinishWithReason reason: ORKTaskViewControllerFinishReason, error: NSError?) {
    switch reason {
    case .Completed:
        let taskResult = taskViewController.result

        let jsonData = try! ORKESerializer.JSONDataForObject(taskResult)
        if let jsonString = NSString(data: jsonData, encoding: NSUTF8StringEncoding) {
            print(jsonString)
        }
        break

    case .Failed, .Discarded, .Saved:
        break

    }
    //Handle results with taskViewController.result
    taskViewController.dismissViewControllerAnimated(true, completion: nil)
}

现在这段代码在模拟器中 运行 时运行良好。但是在尝试为 ios 设备构建时出现错误。我已将 ORKESerializer.h 和 .m 文件添加到我的 swift 项目中,并且还在桥接 header 中导入了 .h。下面是它在编译时抛出的错误。

{ Undefined symbols for architecture armv7: "_OBJC_CLASS_$_ORKLocation", referenced from: objc-class-ref in ORKESerialization.o "_OBJC_CLASS_$_ORKConfirmTextAnswerFormat", referenced from: objc-class-ref in ORKESerialization.o ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation) }

有人知道如何解决这个问题吗?

根据此 Link,此问题已修复并与 Github 中的稳定版本合并。