Mac上的iOS模拟器是运行i386架构,而不是armv7?

时间:2011-10-24 10:52:48

标签: iphone ios architecture arm i386

我已经构建了一些静态库,用于armv7架构。当我尝试在我在iphone 5.0模拟器上测试的iOS项目中使用它们时,我在静态库中告诉我有关undefined symbols for architecture i386的错误。

所以我猜这意味着iphone模拟器需要为i386编译的库?那么模拟器有什么意义 - 为什么它不能模拟armv7架构呢?

因此,我可以测试静态库的唯一方法是连接物理iOS设备并运行它吗?

或者我弄错了?

4 个答案:

答案 0 :(得分:27)

  

所以我猜这意味着iphone模拟器需要编译库   对于i386?那么模拟器有什么意义 - 为什么不这样做呢   仿效armv7架构?

你已经回答了自己的问题。它是模拟器,而不是模拟器。因此它是一个运行在i386架构上的Mac OSX程序。如果您为i386编译静态库,您也可以在模拟器上使用它们。

答案 1 :(得分:9)

我不太确定, i386 适用于模拟器 armv7 适用于您已连接的设备到你的机器。

答案 2 :(得分: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

答案 3 :(得分:0)

如果您想尝试使用i386的模拟器,请转到=< iPhone 5。