我在使用 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。
好的,所以我能够在自己的项目中重现此错误,这很好。我不认为这个问题是 iOS 7 特有的,而是他们糟糕的集成说明。但是,我能够得到一些工作,所以希望你也可以。但是,如果您还没有真正开始,您最好的选择可能是克隆 HelloWorld 并将您的代码放入其中。继续。
他们在 Frameworks 目录中的文件版本似乎存在错误,并且处于我们开发人员无法修复的级别。我在 GitHub 上提交了一个问题(稍后会更新)以获取他们的信息。 修复编号 1:使用 HelloWorld/Frameworks 目录中的三个文件,而不是顶级框架目录。
这将使您开始构建和运行,但您会在日志中收到错误消息,因为您尝试使用外部附件但未声明权限。因此,转到您的 Info.plist,并添加一个键:“支持的外部附件协议(protocol)”,其中第 0 项是“com.orbotix.robotprotocol”。值一千字:
从那里,您只需要实现它们在该示例中显示的其余部分。说起来容易做起来难。我最终做了一些其他的更改,使我的项目看起来更像 HelloWorld,但我不确定它们是否有必要。如果您想查看/尝试一下,我已将项目的初始工作状态上传到 GitHub。在这里:SpheroSays on GitHub
祝你好运!
关于ios - 带有 iOS 7 的 Sphero,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20793634/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |