mac上的iOS模拟器运行的是i386架构,而不是armv7?
我已经构建了一些用于 armv7 架构的静态库。当我尝试在 iPhone 5.0 模拟器上测试运行的 iOS 项目中使用它们时,我收到错误消息,告诉我静态库中的架构 i386 的未定义符号
。
所以我猜这意味着 iphone 模拟器想要为 i386 编译库?那么模拟器的意义何在——为什么它不模拟armv7架构呢?
那么我测试静态库的唯一方法就是连接物理 iOS 设备并运行它?
还是我理解错了?
I've got some static libraries I've built for use on armv7 architectures. When I try to use them in a iOS project which I testrun on the iphone 5.0 simulator, I get errors telling me about undefined symbols for architecture i386
in my static libraries.
So I guess this means the iphone simulator wants libraries compiled for i386? What is the point of the simulator then - why dosn't it emulate armv7 architecture as well?
So the only way I can test my static libraries is to connect a physical iOS device and run it?
Or did I get it wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(4)
您实际上可以使用 i386 架构通过 Xcode 命令行工具编译应用程序(还有一种方法可以通过修改构建设置在 Xcode UI 中运行它)。
xcodebuild -sdk iphonesimulator6.1 -arch i386 VALID_ARCHS="i386 armv7 armv7s" clean install
在包含 projectName.xcodeproj 文件的目录中运行此命令。
这是脚本的分解:
-sdk iphonesimulator6.1 // Build the app on iPhone simulator 6.1
-arch i386 // Build your app using i386 architecture
VALID_ARCHS="i386 armv7 armv7s" // Specify these architectures are valid
clean install // Clean all the builds then re-build and install
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
你已经回答了你自己的问题。它是一个模拟器,而不是仿真器。因此它是一个Mac OSX程序,运行在i386架构上。如果您也为 i386 编译静态库,您将能够在模拟器上使用它们。
You've answered your own question. It's a simulator, not an emulator. Therefore it is a Mac OSX program, running on i386 architecture. If you compile your static libraries for i386 as well you will be able to use them on the simulator.