最近我开始遇到这个我无法解决的错误。
我包含了我需要的所有框架,以便按照预期使用Skobbler地图,我再也没有遇到过这个问题(我在其他项目中使用过SKMaps)。
当我在寻找解决方案时,我注意到在2014年7月之前。我应该使用另一个用于64位系统的SDK,但是我看到现在它已经从Skobbler团队整理出来了。
有人能指出我究竟会出现什么问题吗?
注意:我在项目中手动拖放SKMaps.framework并选择“如果需要复制项目”
答案 0 :(得分:6)
正如已经指出的那样,链接到CoreMotion
框架。
为了将来解决这些问题,公式如下:
CMAltimeter
。CoreMotion.framework
。答案 1 :(得分:4)
确保链接CoreMotion
框架。
任何时候遇到链接问题,请先参考文档,看看它有哪些依赖项(在本例中为@import CoreMotion
)。
如果你肯定并问自己:"但我确定这个符号在这个框架中!",就像你说SKMaps时的感觉一样。框架是链接的,它应该解决它,你可以检查缺少的符号(在这种情况下_OBJC_CLASS _ $ _ CMAltimeter)是否是该框架的一部分。
在终端上,您可以运行:
nm -g /path/to/SKMaps.framework/SKMaps
并检查符号是否存在。
为了更容易:
nm -g /path/to/SKMaps.framework/SKMaps | grep CMAltimeter
在这个例子中,你找不到它,因为它不是它的一部分。但如果你跑:
nm -g /path/to/CoreMotion.framework/CoreMotion | grep CMAltimeter
你会看到符号在那里。
如果它不存在,那是因为它不是这个库/框架/版本的一部分,你应该找到它的位置。 如果 IS 确实存在,则意味着它在编译期间没有被链接,并且将其添加到链接选项应解决它。