Xcode 11最新版导入AudioKit时遇Swift版本兼容错误如何解决
解决Swift版本不兼容导致的AudioKit导入错误
嘿,这个问题我升级Xcode11的时候也碰到过,Swift版本不匹配确实挺闹心的,给你几个实用的解决办法:
方法1:更新AudioKit到兼容Swift5.1的版本
这是最直接且推荐的方式——旧版本AudioKit是用Swift5.0编译的,自然没法被Swift5.1的编译器识别。
- 如果你用CocoaPods管理依赖:
- 打开项目根目录的
Podfile,把AudioKit的版本指定为支持Swift5.1的最新版(直接写pod 'AudioKit'就能让它自动拉取兼容的最新版本) - 在终端执行
pod update AudioKit,等待更新完成后重新打开项目
- 打开项目根目录的
- 如果你是手动导入的AudioKit:
替换项目里旧的框架文件,改用AudioKit官方仓库的最新源码,然后重新编译整个项目
方法2:调整项目的Swift语言版本(临时方案)
如果你暂时不想更新AudioKit,可以把项目的Swift版本降到5.0来匹配旧框架:
- 打开Xcode,选中你的项目target
- 切换到
Build Settings标签页,在搜索框输入Swift Language Version - 把对应的值改成
Swift 5.0,清理缓存后重新编译
不过这个方案不推荐长期使用,毕竟Xcode11的Swift5.1有不少实用新特性,长期降级会错过这些功能。
方法3:清理项目缓存
有时候Xcode的缓存会残留旧的编译信息,导致版本不兼容的错误:
- 用快捷键
Cmd + Shift + Option + K清理Build Folder - 打开Xcode的
Preferences,切换到Locations标签页,找到Derived Data,点击旁边的箭头打开文件夹,删除当前项目对应的缓存目录 - 重新编译项目或者执行
pod install(如果用CocoaPods的话)
方法4:针对Carthage用户的解决方案
如果你用Carthage管理AudioKit,预编译的二进制包可能是用Swift5.0编译的,这时候需要本地重新编译:
在终端执行命令:
carthage update AudioKit --no-use-binaries
这个命令会让Carthage忽略预编译的二进制包,用当前Xcode的Swift5.1编译器重新编译AudioKit,彻底解决版本不兼容问题
内容的提问来源于stack exchange,提问作者Amalendu Kar
相关产品推荐
相关产品推荐

