2017-09-26 59 views
0

我最近更新到Xcode 9,当我构建我的应用程序时,出现Apple Mach-0连接器(iD)错误。在更新项目之前工作得很好。错误看起来像这样:更新到Xcode 9带有错误

Undefined symbols for architecture arm64: 
"__T0So22AVCapturePhotoSettingsC12AVFoundation01_abC16SwiftNativeTypesACWP", referenced from: 
__T09Lifelapse20CameraViewControllerC14capturePictureyyF in CameraViewController.o 
"__T012AVFoundation39_AVCapturePhotoSettingsSwiftNativeTypesPAAE016availablePreviewc11PixelFormatG0SaySo8NSNumberCGfg", referenced from: 
__T09Lifelapse20CameraViewControllerC14capturePictureyyF in CameraViewController.o 
ld: symbol(s) not found for architecture arm64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

我不知道如何解决这个错误,谢谢。

+0

没有你清除缓存的XCode或清除特定项目** ** DerivedData。例如'rm -rf〜/ Library/Developer/Xcode/DerivedData /' –

+0

感谢您的快速回复。刚从项目中删除派生的数据,仍然显示3个错误。 –

+0

另外,如果使用第三方库,可能没有使用正确的手臂选项。 – ghostatron

回答

0

有一个错误的Xcode 9错误的苹果。他们让一些扩展被制作成私有的。您必须在这些方法调用上放置__

例子:

尝试改变let previewPixelType = settings.availablePreviewPhotoPixelFormatTypes.first!

let previewPixelType = settings.__availablePreviewPhotoPixelFormatTypes.first!

***苹果的方法来之前不小心做了一些AVFoundation API外部协议私人因此2个undescores _访问它们。

来源:https://forums.developer.apple.com/thread/86810#259270

+0

啊好吧,多数民众赞成,谢谢 –

+0

它也发生在我身上。如果它适合您,您可以将我的答案标记为正确的答案。 –