我正在尝试在XCode 6 GM中为设备构建我的项目(基本SDK版本为7.1),并且我得到链接器错误:
ld: framework not found Metal for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
相同的项目在XCode 5中完美构建,项目设置没有任何变化。 (另外,在XCode 6中构建 模拟器 成功。)
我正在使用SDK 7.1构建,为什么XCode 6试图链接到Metal呢?
有同样的问题。我能够在Xcode 6中建立应用程序,指向模拟器或手机,但归档时我得到此错误。我正在使用iOS 7.1 SDK。
我正在使用cocoapods,发现我可以解决问题 对于pods项目,将“自动链接框架”设置为“否”,或者在插入设备时进行归档,并且该方案的目标是设备,而不仅仅是“iOS设备”。
这是由Xcode 6的默认项目构建设置引起的问题。
编辑:以下是此解决方案的另一种解释: http://www.appsee.com/blog/dev/xcode-new-link-frameworks-automatically-fix-framework-not-found-metal-for-architecture-armv7
我在构建精美的iOS 8.0 SDK(Xcode 6.0.1)的代码库中遇到了同样的问题,并且在iOS 7.1 SDK中遇到了这个问题(尽管在Xcode 5.1.1中)。似乎有很多不同的项目有这个问题。看到 这里 更多细节。
解决这个问题的原因是我的目标'Build Phase'设置,'Link Binary with Libraries'以及删除和重新添加CoreVideo.framework,'Product> Clean',最后是'Product> Run' 。
使用带有Xcode 6的iOS 7.1 SDK不是受支持的配置。链接器在这里表现正常。 7.1 SDK不包含要链接的Metal.framework,并且您已请求链接Metal.framework。您需要使用iOS 8.0 SDK或更高版本才能使用Metal.framework。