如何配置Xcode或xcodebuild,编译框架时输出所有依赖子框架?
解决Xcode归档主框架时缺失依赖子框架的问题
一、调整子框架目标构建设置
针对每个依赖的子框架(SubFramework A、SubFramework B),修改以下构建设置:
- 将
SKIP_INSTALL设置为NO(默认子框架此选项为YES,会跳过归档安装步骤) - 确保
BUILD_LIBRARIES_FOR_DISTRIBUTION设置为YES(保证框架符合分发标准)
二、修改Scheme的归档配置
- 打开Xcode,选择对应的Scheme,点击
Edit Scheme - 切换到
Build标签页 - 点击
+按钮,将SubFramework A、SubFramework B添加到Build目标列表中 - 勾选这些子框架在
Archive阶段的复选框,确保归档时会构建并安装它们
三、优化xcodebuild归档命令
如果项目使用Workspace,建议在命令中指定-workspace参数;同时确保命令能正确触发所有依赖目标的构建:
xcodebuild archive \ -workspace YourProject.xcworkspace \ -scheme SchemeName \ -configuration Release \ -destination 'generic/platform=iOS Simulator' \ -archivePath './build/SchemeName.framework-iphonesimulator.xcarchive' \ SKIP_INSTALL=NO \ BUILD_LIBRARIES_FOR_DISTRIBUTION=YES
归档完成后,打开xcarchive文件的Products/Library/Frameworks目录,就能找到主框架和所有依赖的子框架,将它们一起打包分发即可。
补充说明
如果子框架是项目内的库目标,需确认Mach-O Type设置正确:动态库设为Dynamic Library会作为独立框架输出,静态库设为Static Library则会被合并到主框架中,无需单独输出。
内容的提问来源于stack exchange,提问作者Richard Topchii
相关产品推荐
相关产品推荐

