我有一些为armv7架构构建的静态库。当我尝试在iOS项目中使用它们并在iPhone 5.0模拟器上测试运行时,我会收到关于我的静态库中undefined symbols for architecture i386
的错误提示。
所以我猜这意味着iPhone模拟器想要编译为i386的库?那模拟器的用途是什么-为什么它不模拟armv7架构呢?
那么,我只能连接物理iOS设备并运行来测试我的静态库吗?
还是我理解错了?
我有一些为armv7架构构建的静态库。当我尝试在iOS项目中使用它们并在iPhone 5.0模拟器上测试运行时,我会收到关于我的静态库中undefined symbols for architecture i386
的错误提示。
所以我猜这意味着iPhone模拟器想要编译为i386的库?那模拟器的用途是什么-为什么它不模拟armv7架构呢?
那么,我只能连接物理iOS设备并运行来测试我的静态库吗?
还是我理解错了?
我不是很确定,但是 i386 是用于模拟器,而 armv7 是用于连接到您的机器上的设备。
您实际上可以通过使用i386架构的Xcode命令行工具编译应用程序(还有一种方法是通过修改构建设置在Xcode UI中运行它)。
xcodebuild -sdk iphonesimulator6.1 -arch i386 VALID_ARCHS="i386 armv7 armv7s" clean install
-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
如果你想尝试使用i386模拟器,只需选择iPhone 5。