2

我在使用 Sphero 和 iOS 7 时遇到了问题。就像在快速入门指南中所说的那样,由于 1.6 发行说明本应该有启动新项目的说明并没有说明,所以我使用了“集成到现有项目”选项卡,我将部署目标设置为 6.0,引入所有框架,并添加链接器设置。当我启动它时,我收到此错误:

Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_RKMCStop", referenced from:
      objc-class-ref in RobotKit(RKMacroObject.o)
  "_OBJC_CLASS_$_RKMCWaitUntilStop", referenced from:
      objc-class-ref in RobotKit(RKMacroObject.o)
      objc-class-ref in RobotKit(RKRobotControl+MacroAdditions.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

有谁能够帮我?我将不胜感激!提前致谢,

我想我错误地假设“本指南中的示例是使用 Objective-C 构建的,并且已经使用当前发布的操作系统和当前版本的 Xcode 进行了测试”意味着 API 已经针对当前版本的 iOS 和 Xcode 进行了测试。

4

1 回答 1

1

好的,所以我能够在我自己的项目中重现这个错误,这很好。我不认为这个问题是 iOS 7 特有的,而是他们糟糕的集成说明。但是,我能够得到一些工作,所以希望你也可以。但是,如果您还没有真正开始,您最好的选择可能是克隆 HelloWorld 并将您的代码放入其中。继续。

他们在 Frameworks 目录中的文件版本似乎存在错误,并且处于我们开发人员无法修复的级别。我在 GitHub 上提交了一个问题(稍后会更新)以获取他们的信息。修复编号 1:使用 HelloWorld/Frameworks 目录中的三个文件,而不是顶级 frameworks 目录。

这将使您开始构建和运行,但您会在日志中收到错误消息,因为您尝试使用外部附件而不声明其权限。因此,转到您的 Info.plist,并添加一个键:“支持的外部附件协议”,其中第 0 项是“com.orbotix.robotprotocol”。值得一千字:

列表更改

从那里,您只需要实现他们在该示例中显示的其余内容。说起来容易做起来难。我最终做了一些其他的更改,使我的项目看起来更像 HelloWorld,但我不确定它们是否有必要。如果您想查看/尝试一下,我已将项目的初始工作状态上传到 GitHub。在这里:GitHub 上的 SpheroSays

祝你好运!

于 2013-12-31T21:15:48.867 回答