Swift 4 项目归档时出现“No such module”错误求助
解决Swift 4项目通用iOS设备构建/归档时Pod框架“No such module”错误
这种问题我碰到好多次了,别慌,按下面的步骤一步步来,大概率能解决:
先彻底重置CocoaPods环境
手动添加Pod框架到Linked Frameworks and Libraries只会越搞越乱,先把那些手动加的框架都删掉,然后执行以下操作:- 关闭Xcode,删除项目目录下的
Podfile.lock、Pods文件夹和.xcworkspace文件 - 打开终端,进入项目目录,依次执行:
pod deintegrate pod install - 重新用
.xcworkspace文件打开项目,别再用.xcodeproj了!
- 关闭Xcode,删除项目目录下的
检查Xcode Build Settings的关键配置
很多时候是配置没继承Pod的设置导致的:- 选中主Target,进入Build Settings,找到Framework Search Paths,确保里面包含
$(inherited)和${PODS_ROOT}/**,如果没有就加上,记得把原来乱加的无效路径删掉 - 找到Other Linker Flags,同样要确保有
$(inherited),这个是链接Pod框架必须的 - 找到Build Active Architecture Only,在Release模式下一定要设为
NO——通用设备需要构建全架构,设为YES会导致部分架构的Pod框架找不到
- 选中主Target,进入Build Settings,找到Framework Search Paths,确保里面包含
检查Build Phases的Pod脚本
选中主Target的Build Phases,确认下面两个脚本存在:[CP] Embed Pods Frameworks[CP] Copy Pods Resources
如果没有,说明CocoaPods没正确关联到你的Target,重新执行pod install一般就能修复
排查Pod版本兼容性
有些老Pod对Swift 4或者通用设备的支持有问题,可以尝试更新Pod到最新兼容版本:
在Podfile里把对应Pod的版本号改成~> 最新兼容版本,然后执行pod update [Pod名称],或者直接pod update更新所有Pod
内容的提问来源于stack exchange,提问作者Lastmboy




