未定义的符号:MPMusicPlayerController
我使用的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的牌坊。
我从这个链接的解决方案: MPMusicPlayerController and setNowPlayingItem
的解决方案是将MediaPlayer.framework添加到链接的框架和库。
架构x86_64的未定义符号 - 这意味着您的SDK不支持模拟器,请在设备中检查一次 –
检查设备?就像在iPhone上运行一样?当我执行CMD + B构建时,会出现错误。因此,如果我连接了设备,这并不重要。或者你的意思是我需要修改我的模拟器? – eoinzy