2012-10-24 55 views
5

我有一个问题正在导致我死亡。这里是:我有和xCode应用程序项目,当我试图在xCode UI中做所有事情时,它会变得完美。我的意思是构建,运行,测试或其他所有不同的目标,我有(3),2和应用程序的测试。与jenkins一起使用的xcodebuild测试命令不起作用

当我试图在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是我得到的,所以没关系。

我也试图改变头文件和一切我所发现身边,但没有解决我的问题......

任何建议...

回答

1

我看到人们仍然在想这件事。我很久以前发布了这个问题。我前几天终于停止使用xcodebuild了。我现在使用xctool,它效果更好。这个工具是由Facebook人开发的,它比xcodebuild工作得更好。

+0

感谢上帝的链接!我在xcodebuild和xcode插件的结合中遇到了很多问题。尽管我需要编写自己的构建脚本,但这样做更好。 – Heckscheibe

0

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

0

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

我将Architectures更改为armv7 i386,现在它似乎在模拟器的命令行中可以正常工作。

尽管GUI指示Standard (armv7,armv7s)的体系结构仅包含这两个,但我确信在为模拟器构建时会隐藏i386。

最后,该设置现在与Jenkins一起工作正常。

3

如果您正在使用自定义生成脚本,您可以通过-arch i386的到xcodebuild联编

例如:

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

(滚动一路上面的代码示例中的权利。相关标志是-arch i386

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

+0

谢谢!它终于起作用了! –

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”。

0

我尝试下面的命令: xcodebuild联编-arch I386 -sdk iphonesimulator7.1 但是具有类似误差铛失败:错误:无效架构“臂”的部署目标“-mios模拟器版本分钟= 6.0”

这是我如何解决:

xcodebuild联编-arch i386的VALID_ARCHS = “I386的ARMv7 armv7s” ONLY_ACTIVE_ARCH = NO -sdk iphonesimulator7.1

ü需要使U正确设置VALID_ARCHS和ONLY_ACTIVE_ARCH,它会工作。您也可以直接在Xcode上进行这些设置。