当应用程序从命令行 + iOS 时出现错误的无效架构“arm”

Posted

技术标签:

【中文标题】当应用程序从命令行 + iOS 时出现错误的无效架构“arm”【英文标题】:Error invalid architecture 'arm' when app from command line + iOS 【发布时间】:2013-05-27 06:08:51 【问题描述】:

我想用 ios 模拟器从命令行构建一个 iOS 应用程序。

The build settings are:
1. Architectures - armv7
2. Base SDK - Latest IOS(6.1)
3. Build Active Architecture only - yes
4. Valid architectures - armv7 (also tried adding i386)
5. IOS deployment target - IOS 4.3

我正在执行以下命令:

xcodebuild -target splistapp2 -sdk iphonesimulator6.1 -configuration Release (also tried with  -arch "i836")

但是这个命令给出了以下错误:

invalid architecture 'arm' for deployment target '-mios-simulator-version-min=4.2'

可能是什么问题?

【问题讨论】:

您是否尝试将其添加到“架构”而不是“有效架构”?另外要使用 -arch 标志,您需要在有效架构中使用它并传递标志(我不知道您是否同时尝试了这两种标志) 是的,我试过了。不工作。 嗯,错误信息很清楚。我在构建脚本中使用了一个非常相似的命令,它工作得很好。您确定您正在编辑正确的目标(以及正确的配置,即调试与发布)。在没有亲眼看到的情况下,我们只能相信您的设置(而且我不相信 SO 上的大多数人会写出正确的信息......) 尽管如此,我只是检查了一下,我构建的活动架构只设置为“否” 【参考方案1】:

如果有人再次遇到同样烦人的问题,我将在这里分享我的脚本:记住在包含 xcodeproj 文件的目录下运行此命令。

xcodebuild \
-project "full-path-to-your-xcodeproj-file" \
-target YOUR_TARGET \
-sdk iphonesimulator6.1 \
-arch i386 \
-configuration Debug \
VALID_ARCHS="armv6 armv7 i386" \
ONLY_ACTIVE_ARCH=NO \
TARGETED_DEVICE_FAMILY="1" \
clean install

我修改了 TARGETED_DEVICE_FAMILY,因为我只为 iPhone 构建。如果您想同时为 iPhone 和 iPad 构建,请删除此行或替换为 TARGETED_DEVICE_FAMILY="1, 2"。

【讨论】:

【参考方案2】:

设备使用ARM;而模拟器使用i386。任选其一:

iphonesimulator6.1 和arch i386 iphoneos 和 arch armv7(或 armv7s)

【讨论】:

【参考方案3】:

使用arch1386架构实现。

xcodebuild -project splistapp2 -target TEST_TARGET -sdk iphonesimulator -configuration "Debug" -arch i386

【讨论】:

以上是关于当应用程序从命令行 + iOS 时出现错误的无效架构“arm”的主要内容,如果未能解决你的问题,请参考以下文章

Xcode:尝试在iOS模拟器中运行应用程序时出现无效的符号链接错误

找不到 MySQL - 尝试从命令行访问 MySQL 时出现“找不到命令”错误

上传到 iOS 应用商店时出现错误“您的二进制文件无效”

从命令行守护程​​序使用 MLMediaLibrary 时出现 XPC 错误

当我已经更新数据时出现错误“无效更新:无效行数”

当试图从IOS应用商店解析数据时出现503错误。