尝试使用 xcodebuild 编译静态库时遇到一个奇怪的问题。
项目的配置是:
ARCHS = $(ARCHS_STANDARD)
VALID_ARCHS = $ARCHS
它使用 Xcode 5.1.1 执行。
现在是奇怪的部分 - 在连接到 Jenkins 的机器上构建的项目生成具有所有 5 种架构(armv7 armv7s arm64、i386、x86_64)的胖库,但是当在我的(64 位)Mac 上启动构建时,我只有四个 -缺少 x86_64。没有代码更改,干净的 repo ,完全相同的构建例程。
我想知道是什么导致了这种差异。我想这可能是我这边的某种环境设置,但不知道它可能是什么。项目配置没有受到怀疑 - 它在不同的机器上创建了适当的胖库。
我会很感激你的建议。
编辑:也没有抛出错误。 xcodebuild 的行为就像未指定架构一样 - 仅为 i386 编译 iphonesimulator 构建。
同样值得注意的是 - Xcode 创建所有架构,只有从命令行执行的 xcodebuild 有问题。
最佳答案
尝试将 -destination 标志添加到您的 xcodebuild 命令。
xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme -destination 'platform=OS X,arch=x86_64' test
以上是来自 xcodebuild manual page 的一个例子.
我有一个类似的问题,我希望 xcodebuild 为模拟器制作一个 i386 版本并继续创建 Armv7,直到我将该标志添加到我的命令中。
关于xcodebuild 不创建 x86_64 二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25932944/