如何通过xcodebuild命令行构建Xcode Framework
命令行实现Xcode Build For -> Running 构建Framework方案
核心实现命令
Xcode 中 Product -> Build For -> Running 的本质是针对当前选中的运行目标(真机/模拟器)、使用Debug配置构建对应架构的二进制产物,直接用xcodebuild即可完全复现效果,不需要额外依赖其他工具做前置处理。
构建真机运行对应的Framework
执行以下命令,把你的Scheme名替换成自己项目里Framework对应的scheme即可:
xcodebuild -scheme 你的Scheme名 \ -configuration Debug \ -sdk iphoneos \ -destination 'generic/platform=iOS' \ -derivedDataPath ./build_temp \ build
构建完成后,产物默认存放在 ./build_temp/Build/Products/Debug-iphoneos/你的Framework名.framework,直接拷贝到项目根目录即可:
cp -R ./build_temp/Build/Products/Debug-iphoneos/你的Framework名.framework ./ rm -rf ./build_temp
构建模拟器运行对应的Framework
如果当前Xcode选中的运行目标是模拟器,把sdk和destination参数替换成模拟器对应值即可:
xcodebuild -scheme 你的Scheme名 \ -configuration Debug \ -sdk iphonesimulator \ -destination 'generic/platform=iOS Simulator' \ -derivedDataPath ./build_temp \ build
产物对应路径为 ./build_temp/Build/Products/Debug-iphonesimulator/你的Framework名.framework。
关于lipo工具的使用说明
只有当你需要同时支持真机+模拟器架构,把两份framework合并成通用二进制包的时候,才需要用到lipo。单纯复现GUI里Build For -> Running的效果完全不需要lipo——这个GUI操作本身就只会构建当前选中运行目标的对应架构,不会做多架构合并。
补充注意点
- 如果不确定项目里的scheme名称,先执行
xcodebuild -list就能列出所有可用的scheme、target配置 - 如果需要自定义framework的直接输出路径,可以在xcodebuild命令末尾追加
CONFIGURATION_BUILD_DIR=你要的输出目录参数,省掉后续拷贝步骤 - 如果你之前在Xcode的Build Settings里修改过自定义构建参数,把对应参数以
键=值的形式追加到xcodebuild命令末尾,即可和GUI构建效果完全对齐

内容的提问来源于stack exchange,提问作者Nat Powning
相关产品推荐
相关产品推荐

