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

SPM引入预编译xcframework提交App Store报ITMS-90205/90206错误如何解决

SPM接入预编译XCFramework提交App Store报错解决方案

问题根因

你遇到的ERROR ITMS-90205、ERROR ITMS-90206报错核心原因是:预编译的Custom.framework在SPM构建流程中被错误地将自身依赖的SVProgressHUD.framework嵌入到了自身的Frameworks目录下,而App Store规则明确禁止Framework内部嵌套其他Framework。

可行解决方案

1. 调整预编译XCFramework的打包规则

打包Custom.xcframework时,仅对SVProgressHUD做符号链接,不要执行Embed操作,最终打包出的Custom.xcframework内部不能包含SVProgressHUD.framework实体,仅保留符号引用即可。

2. 修正SPM包的Package.swift配置

用于分发Custom.xcframework的SPM清单需要调整依赖声明逻辑,避免依赖被嵌套打包,参考配置如下:

// Package.swift示例
let package = Package(
    name: "Custom",
    platforms: [.iOS(.v12)],
    products: [
        .library(
            name: "Custom",
            targets: ["CustomWrapper"]
        ),
    ],
    dependencies: [
        // 平级声明SVProgressHUD依赖
        .package(url: "对应SVProgressHUD的SPM源地址", from: "匹配的版本号")
    ],
    targets: [
        // 预编译二进制目标声明
        .binaryTarget(
            name: "Custom",
            path: "./Custom.xcframework"
        ),
        // 新增中间包装目标处理依赖关联
        .target(
            name: "CustomWrapper",
            dependencies: [
                .target(name: "Custom"),
                .product(name: "SVProgressHUD", package: "SVProgressHUD")
            ],
            path: "./Sources/CustomWrapper"
        )
    ]
)

主项目直接依赖上述配置中的CustomWrapper即可,SPM会自动将Custom和SVProgressHUD都放置到应用层级的Frameworks目录下,不会出现嵌套问题。

3. 主项目构建设置校验

  • 打开主项目构建设置,搜索Always Embed Swift Standard Libraries,确保仅主target设置为YES,所有依赖Framework对应的target均设置为NO
  • 检查主target的Embed Frameworks配置,确认Custom.framework和SVProgressHUD.framework都在列表中,且设置为Embed & Sign

4. 低版本Xcode兼容处理

Xcode 12.5的SPM存在二进制依赖处理的已知Bug,如果上述配置仍无效,升级到Xcode 13及以上版本后重新归档即可,该问题已在后续Xcode版本中被官方修复。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:42:03