将 xcodebuild 与 iOS 项目和 iOS 模拟器一起使用
Posted
技术标签:
【中文标题】将 xcodebuild 与 iOS 项目和 iOS 模拟器一起使用【英文标题】:Using xcodebuild with an iOS Project and the iOS Simulator 【发布时间】:2013-12-10 20:45:52 【问题描述】:这个question 是相关的,但不能解决我遇到的具体问题。
我在 OS X 10.7.5 下使用 Xcode 4.6.3。
我只是为单视图 ios 应用程序创建了默认项目,并且没有更改项目设置。当然,该项目在 Xcode 中为 iOS 模拟器构建。但是,当我尝试从命令行使用 xcodebuild 时,xcodebuild 会失败。
项目名称只是:temp
我试过了:
xcodebuild -scheme temp -sdk iphonesimulator6.1
这产生了结果:
Build settings from command line:
SDKROOT = iphonesimulator6.1
=== BUILD NATIVE TARGET temp OF PROJECT temp WITH CONFIGURATION Debug ===
Check dependencies
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).
** BUILD FAILED **
The following build commands failed:
Check dependencies
(1 failure)
基于另一个 SO 问题,我尝试了:
xcodebuild ARCHS="armv7 armv7s" ONLY_ACTIVE_ARCH=NO -scheme temp -sdk iphonesimulator6.1
得到了类似的结果:
Build settings from command line:
ARCHS = armv7 armv7s
ONLY_ACTIVE_ARCH = NO
SDKROOT = iphonesimulator6.1
=== BUILD NATIVE TARGET temp OF PROJECT temp WITH CONFIGURATION Debug ===
Check dependencies
No architectures to compile for (ARCHS=armv7 armv7s, VALID_ARCHS=i386).
** BUILD FAILED **
The following build commands failed:
Check dependencies
(1 failure)
我需要执行什么 xcodebuild 命令才能使用 xcodebuild 进行构建?
谢谢。
【问题讨论】:
【参考方案1】:更新: 似乎很多人在 xcode 4 中遇到了这种问题,一般的解决方案似乎是强制你需要的架构并禁用“仅活动”,这是你试图做的......但是对于模拟器,你需要指定 i386 而不是 arm*,像这样:
xcodebuild ARCHS="i386" ONLY_ACTIVE_ARCH=NO -scheme temp -sdk iphonesimulator6.1
* 原始回复产生了下面的评论线程,并且仍然有一些有价值的参考: 听起来您的项目我没有设置为 64 位。您应该能够在构建设置中将 arm64 添加到您的有效架构中,我相信 xcode 会自动将其视为 x86_64 用于模拟器构建。
对于您尝试的第二件事,您正在将您的架构硬编码为 iPhone 架构,同时针对模拟器,我相信这就是架构不可用的原因。
【讨论】:
Xcode 应用程序可以构建它而对模拟器没有任何问题。只有当我尝试从命令行使用 xcodebuild 时它才会失败。如果 Xcode 应用程序可以构建它,那么 xcodebuild 应该可以。我只需要知道要传递给 xcodebuild 的参数。 嗯 - 好吧,从您遇到的最初问题来看,它似乎是在尝试为没有为此设置的项目构建 64 位目标。也许尝试使用 -arch i386 来强制使用有效的架构? 是的,我也尝试过,但仍然失败,结果相似。使用 Xcode 5,这一切似乎都更加稳定,但我需要它与 Xcode 4.6.3 一起使用。 您在使用时得到的确切错误是什么:xcodebuild ARCHS="i386" ONLY_ACTIVE_ARCH=NO -scheme temp -sdk iphonesimulator6.1 是的...我离开了 ONLY_ACTIVE_ARCH=NO。如果您想使用此信息更新您的答案,我会将其标记为已回答。以上是关于将 xcodebuild 与 iOS 项目和 iOS 模拟器一起使用的主要内容,如果未能解决你的问题,请参考以下文章
使用没有代码设计的 xcodebuild 构建 iOS 应用程序
错误 无法构建 iOS 项目。运行“xcodebuild”命令,但它以错误代码 65 退出
错误无法构建 iOS 项目。我们运行了“xcodebuild”命令,但它以错误代码 65 退出