2017-03-31 8 views
1

Ich bin mit XCode 8.3 und Swift 3.undefinierte Symbole für Architektur x86_64: MPMusicPlayerController

ich die folgende Fehlermeldung an die AudioToolboxFramework und x86_64-Architektur bezogen bekommen:

Undefined symbols for architecture x86_64: 
    "_OBJC_CLASS_$_MPMusicPlayerController", referenced from: 
     objc-class-ref in libdtdev.a(AudioStream.o) 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Mein Projekt zielt auf iOS 10.3 und in Build-Einstellungen werden die Architekturen aufgelistet wie: Standard Architecture (armv7, arm64) - $(ARCH_STANDARD)

die gültigen Architekturen sind: arm64 armv7 armv7s

Für die Einstellungen Build Active Architectures Only habe ich es auf YES für DEBUG und NO für RELEASE gesetzt.

Kann mir jemand sagen, warum ich immer noch einen Fehler in Bezug auf x86_64 bekomme? Liegt es möglicherweise an einem anderen Framework?

Mein Podfile enthält:

pod 'Alamofire', '~> 4.4' 
pod 'SwiftyJSON' 
pod 'Fabric' 
pod 'Crashlytics' 
pod 'ReachabilitySwift' 

Eigentlich habe ich geändert nur die Build Active Architectures Only für DEBUG zu NO und bekam eine Menge Fehler zu sagen No such module 'ReachabilitySwift' so vielleicht seine im Zusammenhang mit dieser Bibliothek? Ich bekomme auch den gleichen Fehler, wenn ich die AudioToolbox.framework von General -> Linked Frameworks and Libraries entferne.

Auch ich lief: lipo -info ./MyProject/Library/libdtdev.a

und bekam dies: Architectures in the fat file: ./MyProject/Library/libdtdev.a are: armv7 i386 x86_64 arm64

So gibt es auf jeden Fall etwas definieren, den Bogen x86_64.

+0

Nicht definierte Symbole für die Architektur x86_64 - es bedeutet, dass Ihr SDK im Simulator nicht unterstützt, überprüfen Sie einmal Gerät –

+0

Überprüfen Sie auf einem Gerät? Wie läuft es auf einem iPhone? Ich bekomme die Fehler, wenn ich CMD + B baue. Es ist also egal, ob ich ein Gerät angeschlossen habe. Oder meinst du ich muss meinen Simulator ändern? – eoinzy

Antwort

0

habe ich die Lösung von diesem Link: MPMusicPlayerController and setNowPlayingItem

Die Lösung war die MediaPlayer.framework zu dem verknüpften Frameworks und Bibliotheken hinzuzufügen.

+0

Das ist seltsam. Dies sollte beim Importieren automatisch erfolgen. – Sulthan

+0

Ja, es ist komisch, aber ich habe die App von Xcode 7.3/Swift2 auf Xcode 8.3/Swift3 aktualisiert, also muss etwas in der Übersetzung verloren gegangen sein. Ich bin auch ein Android-Entwickler und ich übernehme gerade nachdem der iOS-Typ das Unternehmen verlassen hat, also bin ich mir sicher, dass ein besserer iOS-Entwickler einen anderen Weg gesehen hat, es zu reparieren! – eoinzy

+0

Sehen Sie in den Projekteinstellungen unter "Sprache - Module" nach, "Frameworks automatisch verlinken" und "Module aktivieren". Sie sollten 'use_frameworks!' Auch in Ihrem Podfile für Xcode 8 haben. – Sulthan

Verwandte Themen