如何将iOS应用项目作为子项目/子模块接入iOS Framework SDK项目?
将已完成的iOS App接入iOS Framework SDK作为子项目/子模块(SDK侧操作)
一、以Xcode子项目(Subproject)方式接入
- 打开你的iOS Framework SDK项目,右键点击项目导航栏空白区域,选择「Add Files to "YourSDKName"...」
- 在文件选择窗口中,定位到已完成的iOS App项目的
.xcodeproj文件,根据需求勾选「Copy items if needed」(要保留原项目独立更新就取消勾选,要在SDK目录内复制一份则勾选),点击「Add」 - 进入SDK项目的「Build Phases」配置页:
- 在「Target Dependencies」里点击+号,添加App项目的主Target,确保编译顺序正确
- 如果SDK需要调用App的代码或资源,在「Link Binary With Libraries」中添加App生成的.framework(若App支持Framework输出),或直接链接其编译产物
- 调整SDK的Build Settings:
- 在「Header Search Paths」中添加App项目的头文件路径,比如
$(SRCROOT)/AppSubproject,并勾选「Recursive」 - 若App包含需要SDK使用的资源文件,在「Copy Bundle Resources」中添加对应资源,或通过创建「Resource Bundle」的方式统一引入
- 在「Header Search Paths」中添加App项目的头文件路径,比如
二、以Git子模块(Git Submodule)方式接入(适合需独立版本管理的场景)
- 打开终端,切换到iOS Framework SDK项目的根目录,执行命令:
把git submodule add <你的iOS App项目Git仓库地址> ./AppSubmodule<你的iOS App项目Git仓库地址>替换为实际仓库链接,./AppSubmodule是你指定的子模块存放路径 - 执行完成后,SDK根目录会生成
.gitmodules配置文件,App项目会被克隆到指定路径 - 回到Xcode,将子模块路径下的App项目
.xcodeproj文件添加到SDK项目中(操作同子项目方式的第一步) - 后续要同步App子模块的最新代码,在SDK根目录执行:
git submodule update --remote - 同样需要在SDK的Build Phases和Build Settings中配置依赖、头文件路径等,参考子项目方式的配置步骤
关键注意事项
- 确保App项目的编译配置(iOS部署版本、支持架构等)与SDK完全匹配,避免出现编译或运行时冲突
- 如果App包含UI相关逻辑,SDK调用时要注意是否依赖App的启动上下文,建议封装独立的无依赖调用入口
- 若子项目/子模块存在私有依赖,需同步配置SDK的依赖管理工具(如CocoaPods、Swift Package Manager),确保依赖能正常拉取
内容的提问来源于stack exchange,提问作者Mujtaba Ishaque
相关产品推荐
相关产品推荐

