在构建应用程序目标时,在文件XCTest中缺少必需的体系结构armv7

时间:2013-12-12 15:01:33

标签: ios objective-c xcode

首先,我查看了所有其他搜索主题,但没有应用或无效。例如,我很难让苹果不能使xctest与所有架构兼容。

在Xcode项目上工作时,我随机开始在链接时遇到以下构建错误:

Ld /Users/eallen/Library/Developer/Xcode/DerivedData/InVenueExperience-fgszkxctprmkuvbvwzgprcuveheo/Build/Intermediates/InVenueExperience.build/Debug-iphoneos/InVenueExperience.build/Objects-normal/armv7/InVenueExperience normal armv7
cd /Users/eallen/tmdev/ios/mive
setenv IPHONEOS_DEPLOYMENT_TARGET 7.0
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk -L/Users/eallen/Library/Developer/Xcode/DerivedData/InVenueExperience-fgszkxctprmkuvbvwzgprcuveheo/Build/Products/Debug-iphoneos -L/Users/eallen/tmdev/ios/mive -L/Users/eallen/Library/Developer/Xcode/DerivedData/InVenueExperience-fgszkxctprmkuvbvwzgprcuveheo/Build/Intermediates -F/Users/eallen/Library/Developer/Xcode/DerivedData/InVenueExperience-fgszkxctprmkuvbvwzgprcuveheo/Build/Products/Debug-iphoneos -FFrameworks -FPods/Pixate/Framework/iOS -F/Applications/Xcode.app/Contents/Developer/Library/Frameworks -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/Developer/Library/Frameworks -filelist /Users/eallen/Library/Developer/Xcode/DerivedData/InVenueExperience-fgszkxctprmkuvbvwzgprcuveheo/Build/Intermediates/InVenueExperience.build/Debug-iphoneos/InVenueExperience.build/Objects-normal/armv7/InVenueExperience.LinkFileList -dead_strip -ObjC -lObjC -lxml2 -framework CoreGraphics -framework CoreText -framework MobileCoreServices -framework Pixate -framework QuartzCore -framework Security -framework SystemConfiguration -framework UIKit -fobjc-arc -fobjc-link-runtime -fprofile-arcs -ftest-coverage -miphoneos-version-min=7.0 -lPods -framework QuartzCore -framework CoreText -framework CoreGraphics -framework CoreData -framework UIKit -framework Foundation -framework Crashlytics -Xlinker -dependency_info -Xlinker /Users/eallen/Library/Developer/Xcode/DerivedData/InVenueExperience-fgszkxctprmkuvbvwzgprcuveheo/Build/Intermediates/InVenueExperience.build/Debug-iphoneos/InVenueExperience.build/Objects-normal/armv7/InVenueExperience_dependency_info.dat -o /Users/eallen/Library/Developer/Xcode/DerivedData/InVenueExperience-fgszkxctprmkuvbvwzgprcuveheo/Build/Intermediates/InVenueExperience.build/Debug-iphoneos/InVenueExperience.build/Objects-normal/armv7/InVenueExperience

ld: in '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/XCTest.framework/XCTest', missing required architecture armv7 in file /Applications/Xcode.app/Contents/Developer/Library/Frameworks/XCTest.framework/XCTest (2 slices) for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这一切都是在尝试构建我的应用程序目标而不是我的测试目标时。进一步说明:

  • 我没有在应用程序目标的构建设置中链接XCTest
  • 我正在构建,而不是测试此特定目标
  • 我的构建设置确实存在 - >架构|有效架构“标准架构(armv7,armv7s)。
  • 这只发生在我为iOS设备而不是模拟器构建时...我认为这是因为为模拟器构建只尝试i386架构?

说实话,我不知道为什么链接器甚至试图在这种情况下尝试链接XCTest ...我甚至修改了方案以删除所有测试,虽然我没有尝试对目标进行测试。

请随时问我任何其他问题。

4 个答案:

答案 0 :(得分:11)

你可能会遇到与我一样简单但令人沮丧的问题。这是一个方案设置: 单击工具栏中的项目方案(播放/停止按钮右侧),然后从弹出窗口中选择“编辑”。在左侧的“构建”项下,确保您的测试目标仅选中“测试”。

答案 1 :(得分:1)

请确保构建设置"仅构建活动架构"设置为NO,可能是导致此问题的原因。

答案 2 :(得分:0)

事实证明,深埋在应用程序目标的编译源中我有一个文件,其中包含XCTest内容的导入...立即删除它会使其消失。

所以回答是验证您的编译源列表中没有可能引用您不想要的库的任何内容

答案 3 :(得分:0)

在包含第三方项目后,我遇到了同样的问题。在选择目标时,我选择了主项目目标(而不是测试目标),但是包含的项目有一个子目标,即单元测试。 Xcode有助于将这些添加到我的主应用程序目标中。更改相关文件的目标设置后,它可以正常工作。