You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向自定义Xcode项目模板添加自定义XCFramework及在TemplateInfo.plist中配置自定义框架

刚好我之前折腾过自定义Xcode项目模板,这两个操作其实是紧密关联的,给你一步步拆解,亲测好用:

一、把自定义XCFramework放进模板目录

首先得把你的XCFramework文件安置到模板的正确位置,确保新建项目时能被自动复制过去:

  • 先找到你的自定义模板目录:一般在~/Library/Developer/Xcode/Templates/Project Templates/下面,你自己的模板文件夹就在这里面(如果没有就手动建)。
  • 在模板根目录下新建一个Frameworks文件夹,把你的MyCustomFramework.xcframework直接拖进去。最终模板结构大概是这样:
MyAwesomeTemplate/
├── Frameworks/
│   └── MyCustomFramework.xcframework
├── TemplateInfo.plist
├── ___PROJECTNAME___.xcodeproj/
└── ...(其他模板相关文件)
  • 别忘确认XCFramework的完整性,比如是否包含了所有需要的架构(arm64、x86_64这些),避免后续编译踩坑。
二、在TemplateInfo.plist里配置框架

这一步是核心,要让Xcode知道怎么把这个框架关联到新建的项目中,主要改两个地方:

1. 添加文件节点到项目中

找到plist里的Nodes数组(如果没有就手动创建),添加一个字典项,告诉Xcode要把XCFramework复制到新项目的指定路径:

<dict>
    <key>Path</key>
    <string>Frameworks/MyCustomFramework.xcframework</string>
    <key>TargetIndices</key>
    <array>
        <integer>0</integer> <!-- 0对应项目的第一个Target,也就是主Target,按需调整 -->
    </array>
</dict>

2. 配置Target的框架依赖与嵌入

找到plist里的Definitions字典,找到你主Target对应的配置项(一般是___PROJECTNAME___开头的key),添加Frameworks数组,配置框架的嵌入和关联:

<key>Frameworks</key>
<array>
    <dict>
        <key>AbsolutePath</key>
        <string>$(PROJECT_DIR)/$(PROJECT_NAME)/Frameworks/MyCustomFramework.xcframework</string>
        <key>Embed</key>
        <string>YES</string> <!-- 如果是iOS/macOS App需要嵌入框架,设为YES;如果是纯库项目可以设为NO -->
        <key>EmbedVariant</key>
        <string>Embed</string>
        <key>Group</key>
        <string>Frameworks</string>
        <key>Name</key>
        <string>MyCustomFramework.xcframework</string>
    </dict>
</array>

额外注意事项

  • 如果你的XCFramework依赖系统框架(比如UIKit、Foundation),不用额外配置,Xcode会自动处理;但如果依赖其他自定义框架,要把那些框架也按同样的方法加入模板。
  • 修改完plist后,一定要重启Xcode,不然模板缓存会导致配置不生效。
  • 如果想让用户创建项目时可选是否添加这个框架,可以在TemplateInfo.plist的Options数组里加一个开关选项,不过如果是强制添加的话就不用折腾这个了。

内容的提问来源于stack exchange,提问作者RCBS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 19:32:39