我使用的XCode 8.3,斯威夫特3未定義的符號:MPMusicPlayerController
我得到有關AudioToolboxFramework和x86_64架構以下錯誤:
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)
我的項目針對iOS的10.3和在構建設置的架構被列爲: Standard Architecture (armv7, arm64) - $(ARCH_STANDARD)
有效的體系結構: arm64 armv7 armv7s
對於設置Build Active Architectures Only
,我已將它設置爲YES
用於DEBUG,NO
用於RELEASE。
有誰能告訴我爲什麼我仍然收到有關x86_64
的錯誤?它可能來自另一個框架嗎?
我Podfile包含:
pod 'Alamofire', '~> 4.4'
pod 'SwiftyJSON'
pod 'Fabric'
pod 'Crashlytics'
pod 'ReachabilitySwift'
其實,我只是改變了Build Active Architectures Only
調試到NO
,並得到了很多錯誤的說法No such module 'ReachabilitySwift'
所以也許它涉及到該庫?如果我從General -> Linked Frameworks and Libraries
刪除AudioToolbox.framework
,我也會得到同樣的錯誤。
而且,我跑: lipo -info ./MyProject/Library/libdtdev.a
,並得到這個: Architectures in the fat file: ./MyProject/Library/libdtdev.a are: armv7 i386 x86_64 arm64
所以肯定是有一些定義x86_64的牌坊。
架構x86_64的未定義符號 - 這意味着您的SDK不支持模擬器,請在設備中檢查一次 –
檢查設備?就像在iPhone上運行一樣?當我執行CMD + B構建時,會出現錯誤。因此,如果我連接了設備,這並不重要。或者你的意思是我需要修改我的模擬器? – eoinzy