Spring.framework StoryBoard渲染报错:重装Swift3分支Pod后视图不显示
兄弟,这个坑我前段时间刚踩过!App能正常跑但Storyboard完全看不到视图,还弹出那个签名缺失的报错,清Derived Data根本没用对吧?给你几个亲测有效的解决步骤:
调整Spring Pod的签名配置
打开项目的Pods Target,找到Spring这个target,进入Build Settings搜索Code Signing Identity,把Debug模式下的签名选项改成和你的主App一致(比如选iOS Developer,或者设为Automatic)。IB在渲染的时候会用Debug环境的签名配置,重装Pod后这个配置经常会被重置成空或者不匹配,导致识别不了签名。彻底重装Pod并手动编译
先在终端执行pod deintegrate把所有Pod完全卸载,接着pod install重新安装依赖。安装完成后别直接点开Storyboard,先按command+B手动编译整个项目,等编译完成再打开Storyboard——IB有时候不会自动识别新编译的带签名的framework,手动编译能强制它更新。清空Xcode的IB缓存
除了Derived Data,IB还有单独的缓存目录。打开访达,按shift+command+G输入~/Library/Caches/com.apple.dt.Xcode,把这个文件夹里的内容删掉(或者先备份再删),然后重启Xcode。这个操作能彻底重置IB的缓存状态,比只清Derived Data管用。验证分支兼容性(可选)
你用的是Spring的swift3分支,确认你的Xcode版本和这个分支匹配吗?Swift3对应的Xcode是8.x系列,如果你的Xcode版本太高,可能会有隐性的签名或编译兼容问题。如果前面的方法都没用,可以试试确认这个分支是否还维护,或者有没有更适配你Xcode的分支。
补充一句:为啥App能运行但IB不行?因为App运行时是通过主App的签名打包整合所有framework,而IB渲染是单独加载Spring.framework,要求这个framework本身有有效的代码签名,所以会出现运行正常但IB渲染失败的情况。
内容的提问来源于stack exchange,提问作者John

