2017-09-26 4 views
0

Ich habe vor kurzem auf Xcode 9 aktualisiert und wenn ich meine App erstelle ich einen Apple Mach-0 Linker (iD) Fehler. Vor der Aktualisierung funktionierte das Projekt gut. Der Fehler sieht so aus:Update auf Xcode 9 mit Fehlern

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) 

Ich bin nicht sicher, wie Sie diesen Fehler beheben, danke.

+0

haben Sie löschen die XCode-Caches oder klar bestimmtes Projekt ** DerivedData **. zum Beispiel 'rm -rf ~/Bibliothek/Entwickler/Xcode/DerivedData /' –

+0

danke für die schnelle Antwort. löschte gerade die abgeleiteten Daten von diesem Projekt und die 3 Fehler zeigen noch an. –

+0

Wenn Sie eine Bibliothek eines Drittanbieters verwenden, ist es möglich, dass sie nicht mit den richtigen Optionen für den Arm ausgestattet ist. – ghostatron

Antwort

0

Es ist ein Xcode 9 Fehler Apfel versehentlich gemacht.Sie ​​machten einige Erweiterungen wurden privat gemacht. Sie müssen __ auf diese Methodenaufrufe setzen.

Beispiel:

Versuchen Sie, let previewPixelType = settings.availablePreviewPhotoPixelFormatTypes.first!

zu

let previewPixelType = settings.__availablePreviewPhotoPixelFormatTypes.first!

*** Apfel versehentlich einige AVFoundation API externe Protokolle als privat gekennzeichnet daher die 2 undescores _ vor den Methoden auf sie zugreifen.

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

+0

ah ok, das ist toll, danke –

+0

Es ist mir auch passiert. Sie können meine Antwort als die richtige Antwort markieren, wenn es für Sie funktioniert. –