iOS自定义框架在Storyboard的Module下拉菜单中不显示的问题
解决自定义框架在Storyboard Module下拉菜单不显示的问题
我之前也碰到过一模一样的问题!手动输入框架名能正常编译生效,但就是在Storyboard的Module下拉里找不到,大概率是Xcode的识别缓存或者框架配置的小细节没做好,试试下面这些排查步骤:
先确认框架的核心配置是否正确
- 确保你的自定义框架是动态框架(Dynamic Framework):静态框架有时候不会被Storyboard的索引系统识别到。打开框架的Build Settings,找到
Mach-O Type选项,设置为Dynamic Library。 - 对齐Deployment Target:框架的Deployment Target要和主项目保持一致,或者比主项目的版本更低,不然主项目会因为版本兼容问题无法识别框架。
- 正确关联主项目依赖:在主项目的Target -> Build Phases里,先在
Target Dependencies中添加你的自定义框架,再到Embedded Binaries里把框架加进去——这一步确保框架会被正确嵌入到主项目的包中,Xcode才能识别到它。
清理Xcode缓存(关键步骤!)
Xcode的索引缓存经常会搞这种“明明配置对了但不显示”的乌龙,按顺序来:
- 先完全关闭Xcode,然后删除Derived Data文件夹:你可以通过
Xcode -> Preferences -> Locations找到Derived Data的路径,手动删掉整个文件夹;嫌麻烦的话也可以在终端执行命令:rm -rf ~/Library/Developer/Xcode/DerivedData - 重新打开Xcode,先执行
Command + Shift + K清理项目,再按Command + B重新编译 - 打开Storyboard,等右下角的索引进度条完全消失后,再去看Module下拉菜单,大概率就能看到你的框架了
额外的细节检查
如果上面两步还没解决,看看这些小细节:
- 框架里的IBInspectable组件类要设为public:如果你的组件类是默认的internal访问级别,Storyboard的索引系统是看不到的。把类声明改成
public class YourCustomComponent: UIView,对应的IBInspectable属性也要设置为public或者open。 - 检查主项目的Framework Search Paths:在主项目的Build Settings里找到
Framework Search Paths,添加你的自定义框架所在的路径(比如$(PROJECT_DIR)/YourFrameworkFolder),记得勾选recursive选项,让Xcode能递归找到框架。 - 终极方案:重启电脑。有时候Xcode的缓存顽固到只清理Derived Data没用,重启后再打开项目,Xcode会重新生成所有索引,很多奇怪的问题都会消失。
内容的提问来源于stack exchange,提问作者Guillermo Guizar
相关产品推荐
相关产品推荐

