没有要编译的架构 (ARCHS=i386, VALID_ARCHS=arm64 armv7 armv7s)
Posted
技术标签:
【中文标题】没有要编译的架构 (ARCHS=i386, VALID_ARCHS=arm64 armv7 armv7s)【英文标题】:No architectures to compile for (ARCHS=i386, VALID_ARCHS=arm64 armv7 armv7s) 【发布时间】:2014-05-28 19:10:36 【问题描述】:前言:我确实看过similar questions,但似乎没有一个答案能解决我的问题。
我正在尝试使用以下方式构建我的 xcode(版本 5.1.1)项目:
xcodebuild clean build -sdk iphonesimulator7.0 -arch "armv7s" ONLY_ACTIVE_ARCH=NO
,
当我运行它时,我得到:No architectures to compile for (ARCHS=armv7s, VALID_ARCHS=i386 x86_64)
作为错误。我尝试使用所有 VALID_ARCHS (rm64 armv7 armv7s) 作为输入的上述命令。所以我然后尝试运行这个命令:
xcodebuild clean build -sdk iphonesimulator7.0 -arch "i386" ONLY_ACTIVE_ARCH=NO
然后我得到No architectures to compile for (ARCHS=i386, VALID_ARCHS=arm64 armv7 armv7s)
作为错误。我尝试使用所有其他 VALID_ARCHS (i386 x86_64) 运行上述命令,但也没有运气。我不知道为什么会发生这些架构错误。我的项目中有 cocoapods,上面链接中的第一个答案并没有解决我的问题。
【问题讨论】:
By default, Xcodebuild builds the first target listed in the project (and with the default build configuration)。您的项目中有多少个目标?做第一个 @MichaelDautermann 我的 xcode 项目中Valid Architectures
下有“arm64 armv7 armv7s”
也添加“i386”,因为模拟器使用的是不同的架构。
所以应该是... -arch "i386 arm64 armv7 armv7s"
?
Valid Architectures
应该包括 "i386
"。
【参考方案1】:
您可以覆盖默认变量: 尝试使用这个:
xcodebuild clean build -sdk iphonesimulator7.0 -arch "i386" ONLY_ACTIVE_ARCH=NO VALID_ARCHS="i386 x86_64"
如果您为模拟器构建 - 始终为 i386/x86_64 构建。
【讨论】:
如何在项目设置中解决这个问题? 在我的情况下,我通过引用上面的答案添加这一行 -arch i386 ONLY_ACTIVE_ARCH=NO VALID_ARCHS=i386 它为我工作。谢谢@Sath89【参考方案2】:转到您的项目设置(不是目标)。然后打开 Build Settings 并为 Valid architectures 添加一个值:i386
【讨论】:
以上是关于没有要编译的架构 (ARCHS=i386, VALID_ARCHS=arm64 armv7 armv7s)的主要内容,如果未能解决你的问题,请参考以下文章