Xcode 9.3.1升级后提示No such module 'AWS...'问题求助
解决Xcode 9.3.1中AWS模块找不到的问题
嘿,我之前升级Xcode到9.3.1的时候也碰到过一模一样的AWS模块找不到的问题!试了清理构建、删DerivedData、pod update这些常规操作都没用,后来靠这几个方法解决了,分享给你:
锁定AWS SDK的兼容版本
有些老版本的AWS Pods对Xcode 9.3.1的兼容性不太好,你可以在Podfile里明确指定适配的版本,比如:pod 'AWSCore', '~> 2.10.0' pod 'AWSS3', '~> 2.10.0' pod 'AWSDynamoDB', '~> 2.10.0' pod 'AWSMobileClient', '~> 2.10.0'然后执行
pod install --repo-update,确保拉取到适配Xcode 9.3.1的版本。确认Pods项目的编译状态
一定要打开项目的.xcworkspace文件(别错打开.xcodeproj了),然后在Xcode导航栏里找到Pods项目,检查AWS相关的target有没有成功编译。如果Pods里的AWSCore这些模块本身编译失败,主项目肯定找不到它们。可以单独编译Pods里的AWSCore target,看看是不是有依赖缺失或者语法错误。检查主项目的Build Settings配置
- 选中主项目的target,进入
Build Settings,找到Framework Search Paths和Library Search Paths,确保里面包含$(inherited)和Pods相关的路径,比如${PODS_ROOT}/AWSCore/Frameworks这类,没有的话手动加上。 - 检查
Other Linker Flags,必须包含$(inherited),这个配置会继承Pods的链接设置,缺失的话很容易导致模块找不到。
- 选中主项目的target,进入
彻底重置Xcode的缓存和索引
除了删除DerivedData,还可以试试更彻底的缓存清理:- 完全关闭Xcode
- 删除
~/Library/Caches/com.apple.dt.Xcode目录 - 删除
~/Library/Developer/Xcode/DerivedData目录(你之前可能做过,但再确认下删干净了) - 重新打开Xcode,按
Cmd+Shift+K执行Clean Build Folder,然后再编译项目。
调整项目的Deployment Target
Xcode 9.3.1最低支持iOS 8.0,如果你的项目Deployment Target低于这个版本,很可能和AWS Pods不兼容。把项目的Deployment Target改成iOS 8.0或更高,然后重新执行pod install。
内容的提问来源于stack exchange,提问作者Michel
相关产品推荐
相关产品推荐

