构建应用程序目标时,文件XCTest中缺少所需的架构armv7。

5

首先,我查看了所有其他搜索主题,但没有一个适用或无法使用。例如,我很难理解为什么苹果没有使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...我甚至修改了方案以删除所有测试,尽管我并没有尝试针对该目标进行测试。
如有任何其他问题,请随时问我。

请查看我对类似问题的答案:XCText缺少所需的架构armv7 - ribeto
5个回答

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

谢谢!我不得不创建一个新的测试目标,Xcode为所有内容配置了它,这对我来说是确切的解决方法。 - Michael Baltaks

1
请确保“仅构建活动架构”设置为NO,这可能是问题的原因。

0
发生这样的情况是在将$(PLATFORM_DIR)/Developer/Library/Frameworks添加为<Target>/<Build Settings>/<Search Paths>/<Framework Search Paths>中第一项后,我用XCode 6.3.1摆脱了令人讨厌的“ld:找不到架构arm64的XCTest框架”的链接错误。

0
原来在应用程序目标的编译源代码中,有一个文件包含了 XCTest 相关的导入...立即将其删除后问题消失了。
因此,答案是要验证您的编译源代码列表中是否有任何可能引用您不打算使用的库的内容。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接