如何使用Xcode制作.framework文件?构建Cocoa Framework生成.a文件需调整哪些设置?
Hey 👋,我来帮你解决这两个Xcode框架相关的问题,都是日常开发里很常见的场景,咱们一个个来梳理:
1. 如何用Xcode制作.framework文件?
步骤很清晰,跟着做就行:
- 打开Xcode,点击「创建新项目」,在模板列表的「Framework & Library」分类下,根据你的平台选择「Cocoa Touch Framework」(适配iOS/iPadOS)或者「Cocoa Framework」(适配macOS),然后点击「下一步」
- 填写项目信息:产品名称就是你的framework名字,选好开发团队、编程语言(Swift/OC),选个保存路径后点击「创建」
- 往项目里添加要封装的代码、资源文件:Swift语言下记得把对外暴露的类/方法标记为
public;OC语言下要把需要公开的头文件添加到「Build Phases > Headers」的「Public」分组里 - 选择构建目标:可以选「任意iOS设备」(生成兼容多架构的通用framework),或者具体的模拟器/真机,也可以通过「产品 > 目标 > Generic iOS Device」来选择通用目标
- 点击顶部的「构建」按钮(或者按快捷键
Cmd+B),构建完成后,在Xcode左侧「Products」目录下找到你的.framework文件,右键选择「在Finder中显示」就能拿到最终产物了
2. 构建Cocoa Framework项目却生成.a文件,要调整哪些设置?
这种情况大概率是项目的构建配置被改成了静态库输出,咱们一步步改回来:
- 选中项目根目录,在右侧面板选择你的Framework Target
- 切换到「Build Settings」标签,在搜索框输入「Mach-O Type」,把这个选项的值从「Static Library」改成「Dynamic Library」(如果要做动态framework);如果是要静态framework,也能输出.framework格式,不过需要额外确保「Build Libraries for Distribution」设为「YES」
- 再检查「Skip Install」选项,搜索后把它设为「NO」,这样构建后的产物才会正确输出到Products目录的.framework包里
- 最后确认下Target的类型:在「General」标签顶部,「Type」应该显示为「Framework」,如果是「Static Library」那说明你一开始选错模板了,要么重新创建Framework项目,要么把现有Target类型改成Framework
内容的提问来源于stack exchange,提问作者user7601186
相关产品推荐
相关产品推荐

