我正在研究一些使用ResearchKit的原型。当我使用iP6或模拟器从XCode运行应用程序时,一切都很好。当我试图存档我的应用程序时,错误显示。
我得到以下错误:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_ORKQuestionStepCellHolderView", referenced from:
_OBJC_CLASS_$__TtC6myapp11MyCustomView in MyCustomView.o
"_OBJC_METACLASS_$_ORKQuestionStepCellHolderView", referenced from:
_OBJC_METACLASS_$__TtC6myapp11MyCustomView in MyCustomView.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我按照这些说明将ResearchKit包含到我的项目中。我尝试下载源代码(我使用的是"稳定"分支),将项目拖到我的项目中,构建RK框架,然后将其添加为嵌入式二进制文件。主要问题是自定义类继承自ORKQuestionStepCellHolderView。如果我摆脱了这个自定义类,我的错误就会消失,我就能存档我的应用了。
ORKQuestionStepCellHolderView在ORKCustomStepView.h和。m文件中定义。
关于为什么我得到这个问题,只有这个特定的类(ORKQuestionStepCellHolderView)的任何线索?任何帮助都将非常感激!!
顺便说一句,我使用的是XCode 7.3.1,我的项目主要使用Swift。不确定这是否与这件事有关,但也许它有帮助。
我终于能够通过更新ResearchKit代码来存档应用程序:
@interface ORKQuestionStepCellHolderView : ORKQuestionStepCustomView
@property (nonatomic, strong, nullable) ORKSurveyAnswerCell *cell;
@end
:
ORK_CLASS_AVAILABLE
@interface ORKQuestionStepCellHolderView : ORKQuestionStepCustomView
@property (nonatomic, strong, nullable) ORKSurveyAnswerCell *cell;
@end
我刚刚在这里发布了一个问题,看看这是一个错误还是只是我从错误的角度解决我的问题。
试图理解ORK_CLASS_AVAILABLE的作用,我最终阅读了这个关于符号可见性的链接。
更新,回答YuanZhu-apple在这里确认了我的方法是正确的,这绝对是ResearchKit的一个bug,所以我会发布一个PR。
这次我有同样的问题:ORKVisualConsentStep
添加,它工作所有的逻辑指出,这是一个arm64问题,但它不是,谢谢你的提示。
ORK_CLASS_AVAILABLE@interface ORKVisualConsentStep: ORKStep
我有这么多的问题与Researchkit框架不妨花时间来建立我自己的框架工作,如果你是新的研究,尽量避免它,它只对非常简单的项目有用