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

如何通过Microsoft App Center生成XCFramework通用框架?

结论

完全可以在Visual Studio App Center构建流程中生成XCFramework通用框架,不需要平台提供专门的Framework构建模板,依托平台开放的pre-build、post-build自定义脚本能力就能实现。

实现步骤
  • 第一步先调整App Center的项目构建配置
    不要选择常规iOS App的构建Scheme,直接选中你项目里用于打包Framework的独立Scheme,构建配置选择Release,提前确认该Scheme的Archive动作是可用状态,不需要勾选平台默认的IPA签名、分发选项,这部分逻辑我们会通过自定义脚本接管。
  • 编写pre-build脚本(构建前执行)
    如果你的Framework项目用了CocoaPods、Carthage之类的依赖管理工具,直接在这个脚本里执行依赖安装命令即可,比如用CocoaPods的话就执行pod install --repo-update,保证构建前依赖全部就位。
  • 编写post-build脚本(构建后执行),核心是手动执行XCFramework编译打包逻辑,替换平台默认的IPA打包流程:
    1. 分别编译真机架构、模拟器架构的Framework归档,执行命令参考:
      # 编译真机架构归档
      xcodebuild archive -scheme "你的Framework名" \
        -destination "generic/platform=iOS" \
        -archivePath "./build/ios-device.xcarchive" \
        SKIP_INSTALL=NO \
        BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
        CODE_SIGNING_ALLOWED=NO
      
      # 编译模拟器架构归档
      xcodebuild archive -scheme "你的Framework名" \
        -destination "generic/platform=iOS Simulator" \
        -archivePath "./build/ios-sim.xcarchive" \
        SKIP_INSTALL=NO \
        BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
        CODE_SIGNING_ALLOWED=NO
      
    2. 将两个架构的归档合并生成最终XCFramework:
      xcodebuild -create-xcframework \
        -framework "./build/ios-device.xcarchive/Products/Library/Frameworks/你的Framework名.framework" \
        -framework "./build/ios-sim.xcarchive/Products/Library/Frameworks/你的Framework名.framework" \
        -output "./build/你的Framework名.xcframework"
      
    3. 将生成的XCFramework打包为zip压缩包,移动到App Center固定的产物输出目录,这样构建完成后就能直接在构建记录页下载:
      cd ./build
      zip -r "$APPCENTER_OUTPUT_DIRECTORY/你的Framework名.xcframework.zip" 你的Framework名.xcframework
      
注意事项
  • 所有最终需要留存的产物必须移动到$APPCENTER_OUTPUT_DIRECTORY目录下,App Center构建流程结束后会自动清理工作区其他路径的文件,不放到这个目录的话生成的XCFramework会被直接删除,无法下载。
  • 编译阶段如果不需要给Framework签名,可以加上CODE_SIGNING_ALLOWED=NO参数,避免App Center默认的签名配置和Framework构建逻辑冲突报错。
  • 必须加上BUILD_LIBRARY_FOR_DISTRIBUTION=YES参数,否则生成的XCFramework会存在Swift版本兼容问题,下游集成时很容易出现编译报错。
  • 如果需要自动分发XCFramework,可以在post-build脚本最后调用App Center的命令行工具,把打包好的zip上传到指定的分发组即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:57:14