与jenkins一起使用的xcodebuild测试命令不起作用

问题描述 投票:6回答:6

我有一个问题就是杀了我。这就是:我在xCode中的app和app项目在我尝试在xCode UI中完成所有工作时非常完美。我指的是构建,运行,测试或在我拥有的所有不同目标中的任何内容(3),应用程序中的2个以及用于测试的目标。

当我尝试在Jenkins中为我的系统安装持续集成时出现问题。我需要在shell中执行一些命令。像这样的命令:

xcodebuild -project MYPROJECT -sdk iphonesimulator -scheme TESTS_SCHEME TEST_AFTER_BUILD=YES

我也尝试过这个另外一个,它最终会做同样的事情:

xcodebuild -project MY_PROJECT -target TEST_TARGET -sdk iphonesimulator  -configuration "Debug"

然后当问题出现时,终端说出以下内容:

....PrecompiledHeaders/MYLIBRARY-Prefix-hhjuztynfruquodlgqxroyfibfkh/MYLIBRARY-Prefix.pch.d
clang: error: invalid architecture 'arm' for deployment target '-mios-simulator-version-min=4.3'
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1


** BUILD FAILED **


The following build commands failed:
    ProcessPCH /Users/nicoyuste/Library/Developer/Xcode/DerivedData/MY_APP-bxpgsdbefuawmiexyikbtvsatlsf/Build/Intermediates/PrecompiledHeaders/MYLIBRARY-Prefix-hhjuztynfruquodlgqxroyfibfkh/MYLIBRARY-Prefix.pch.pth MYLIBRARY-Prefix.pch normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

我一直在寻找互联网(几乎在这里),但我发现的同样问题的一切都不适合我。 xCode版本是4.5,如果你做xcodebuild -version是我得到的所以这很好。

我也尝试过更改头文件以及我发现的所有内容,但没有任何修复我的问题...

有什么建议...

ios xcode command-line xcode4.5
6个回答
3
投票

如果您使用的是自定义构建脚本,则可以将i386传递给xcodebuild

例如:

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

(在上面的代码示例中一直向右滚动。相关的标志是-arch i386

应该强迫它针对i386进行构建。但是,您需要确保i386处于目标的VALID_ARCHS设置中。


3
投票

如果有人再次遇到同样烦人的问题,我将在这里分享我的脚本:记得​​在具有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”。


1
投票

我看到的人仍然对此感到疑惑。很久以前我发布了这个问题。我停止使用xcodebuild,我现在正在使用xctool,它的效果要好得多。该工具由Facebook开发。


0
投票

我认为问题在于你正在为模拟器构建指定arm作为架构,尝试将其更改为i386


0
投票

在我的构建机器上升级到Xcode 4.5后,我遇到了类似的问题。在我的情况下,我有一个第三方库,无法为armv7s(尚)构建,因此,我将Architectures构建设置设置为armv7。适用于Xcode内部的单元测试,模拟器构建等。但是,当我执行命令行构建时,它失败并显示相同的消息。

我将我的Architectures改为armv7 i386,现在它似乎在模拟器的命令行上构建得很好。

尽管GUI表明Standard (armv7,armv7s)的架构只包括那两个,但我很确定当你为模拟器构建时,有一个i386隐藏在那里。

最后,Jenkins现在可以正常使用该设置。


0
投票

我尝试下面的命令:xcodebuild -arch i386 -sdk iphonesimulator7.1但是失败了与clang类似的错误:错误:无效的架构'arm'用于部署目标'-mios-simulator-version-min = 6.0'

以下是我的解决方法:

xcodebuild -arch i386 VALID_ARCHS =“i386 armv7 armv7s”ONLY_ACTIVE_ARCH = NO -sdk iphonesimulator7.1

你需要让你正确设置VALID_ARCHS和ONLY_ACTIVE_ARCH它会起作用。您也可以直接在Xcode上进行这些设置。

© www.soinside.com 2019 - 2024. All rights reserved.