2***@qq.com
2***@qq.com
  • 发布:2026-11-06 17:14
  • 更新:2026-11-06 17:16
  • 阅读:86

【报Bug】iOS云打包UTS插件SPM依赖SmithyCodeGeneratorPlugin校验失败

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 英特尔 15.8.2

HBuilderX类型: 正式

HBuilderX版本号: 5.34

手机系统: iOS

手机系统版本号: iOS 18

手机厂商: 苹果

手机机型: 16

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:
  1. uni-app x 项目,HBuilderX 5.0+,iOS 依赖通过 UTS 插件 uni_modules/aws-face-liveness 的 utssdk/app-ios/config.json 配置 dependencies-spms:
    • FaceLiveness(amplify-ui-swift-liveness)exactVersion 1.5.3
    • Logging(swift-log)exactVersion 1.6.3
  2. 菜单:运行 → 运行到手机或模拟器 → 制作自定义调试基座 → 勾选 iOS → 提交云打包
  3. 等待云端编译 UTS 插件 aws-face-liveness

补充:本机对 HBuilderX export_framework.js 增加 -skipPackagePluginValidation 后,本地运行到 iOS 可编译通过;同一工程提交云打包失败。说明问题在云端 xcodebuild 未跳过 SPM build-tool plugin 校验。

预期结果:

云端编译 uni_modules/aws-face-liveness 成功,iOS 自定义调试基座打包成功。

建议云端 UTS iOS 构建与 Amplify / AWS SDK for Swift 官方 CI 对齐:
对 xcodebuild 增加参数 -skipPackagePluginValidation(纯 SPM 场景建议使用 -project/-scheme + -destination,避免仅 -target/-sdk)。

实际结果:

Error code = -5000
UTS plugin uni_modules/aws-face-liveness complie error!

关键失败命令:
Validate plug-in “SmithyCodeGeneratorPlugin” in package “smithy-swift”
Building project UTS with scheme unimoduleAwsFaceLiveness and configuration Debug
BUILD FAILED

原因分析:
FaceLiveness SPM 传递依赖 aws-sdk-swift ≥1.7.21 → smithy-swift,引入 SmithyCodeGeneratorPlugin。
新版 Xcode 要求先信任该 build-tool plugin;云打包无界面环境无法交互确认,未加 -skipPackagePluginValidation 即失败。
日志中的 “Using the first of multiple matching destinations” 仅为警告,不是失败根因。

bug描述:

云端编译含 SPM 的 UTS 插件时,xcodebuild 增加 -skipPackagePluginValidation
(以及纯 SPM 场景用 -project/-scheme + -destination,不要只靠 -target/-sdk)

请云端 UTS iOS xcodebuild 增加 -skipPackagePluginValidation。

HBuilderX 本地我自己修改编译文件

2026-11-06 17:14 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app x技术交流群 ) 咨询,群中有相关专业的管理员和群友。

收到这条 bug 反馈,以下从官方评审角度对该反馈做完整性与成立性分析。

一、反馈完整性评审

做得比较好的部分:

  1. 标题与描述指向明确:直接定位到“云端编译含 SPM 依赖的 UTS 插件时,SPM build-tool plugin(SmithyCodeGeneratorPlugin)校验失败”这一具体环节,并给出了关键失败日志(Validate plug-in "SmithyCodeGeneratorPlugin" in package "smithy-swift"、Error code = -5000),官方人员可以直接对应到云端构建链路。
  2. 有本地对照实验:本地修改 HBuilderX 编译文件增加 -skipPackagePluginValidation 后本地编译通过、同一工程云打包失败,这个 A/B 对照对定位“问题在云端构建参数而非插件代码本身”很有价值。
  3. 对干扰信息做了甄别:明确指出日志中 "Using the first of multiple matching destinations" 仅为警告而非失败根因,这种分析有助于排查。
  4. 分类信息基本齐全:HBuilderX 版本(5.34 正式版)、平台(iOS 18)、机型(iPhone 16)、复现步骤、预期/实际结果均有。

需要补充或澄清的部分:

  1. Vue 版本填写疑似有误:分类中填了 "Vue2",但复现步骤明确说是 uni-app x 项目,而 uni-app x 仅支持 Vue3 体系。请确认项目实际类型是 uni-app x 还是 uni-app(Vue2)+ UTS 插件,这会影响官方复现时选择的工程模板。
  2. 缺少完整的 config.json:目前只列出了依赖名与版本(FaceLiveness 1.5.3、Logging 1.6.3),按 SPM 依赖配置文档,dependencies-spms 每项需要 name、url、kind、version 等字段,且 deploymentTarget 需取所有依赖(含传递依赖)最低 iOS 版本中的最高值。请贴出完整 config.json(去掉注释),便于核对配置本身是否规范。
  3. 缺少 appid 与完整云打包日志:错误日志只截取了关键片段,建议提供项目 appid 和完整的云端编译日志,官方可以直接调取云端打包记录核对实际执行的 xcodebuild 命令。
  4. PC 系统版本描述不规范:“英特尔 15.8.2” 应为 macOS 15.8.2(Intel 芯片),建议规范填写,避免歧义。
  5. 复现依赖特定第三方 SPM 包(amplify-ui-swift-liveness 及其传递依赖链),官方复现需要完整插件源码或一个最小化 demo 工程,建议补充插件 Swift 源码中如何引用这些依赖的说明。

二、bug 成立性分析

  1. 配置方式符合官方文档:通过 utssdk/app-ios/config.json 的 dependencies-spms 节点引入 Swift Package Manager 依赖是官方支持的能力(HBuilderX 5.0+ 支持),参见 SPM 依赖配置文档。因此“使用 SPM 依赖”这一前提本身是合规用法,不是误用导致的失败。
  2. 失败现象真实,非误报:Error code = -5000 + UTS plugin complie error + BUILD FAILED 表明云端编译 UTS 插件确实失败。结合本地加参数后可编译通过的对照,失败与云端构建环境对 SPM build-tool plugin 的校验行为相关的推断有较强支撑。
  3. 关于 -skipPackagePluginValidation:从 iOS 原生构建知识看,Xcode 15+ 在非交互(CI/无界面)环境下遇到未经信任的 SPM build-tool plugin 时会校验失败,-skipPackagePluginValidation 是跳过该校验的构建参数,用户的分析与本地验证结果一致。但需要说明:云端打包机的 xcodebuild 构建参数由 DCloud 云端控制,开发者无法自行修改;现有文档与知识库中暂未找到云端构建链路已支持或配置该参数的记载,该建议是否采纳、以何种方式落地(例如云端统一加参数,或提供信任插件的配置项),需要官方在云端打包环境评估,我无法在此给出承诺或确认时间。
  4. 可参考的官方环境信息:云端打包机的 XCode 版本可查阅 iOS 平台云端打包环境,便于核对云端 Xcode 版本与本地验证环境的差异。
  5. 另需排除的因素:文档提示 GitHub 等国外代码托管服务下载 SPM 依赖时可能受网络限制,但本次报错是插件校验阶段而非依赖拉取失败,网络因素暂不是根因;不过补充完整日志后仍建议一并确认依赖解析阶段是否正常。

三、后续建议

  1. 请补充上述第 1~4 点信息(尤其是项目类型澄清、完整 config.json、appid、完整日志),信息齐全后官方才能准确评估云端构建链路的调整方案。
  2. 该问题属于云端打包基础设施层面,建议同步在官方 issue 系统 https://issues.dcloud.net.cn/ 提交,附上 appid 与完整日志,便于官方跟踪处理与反馈进展。
  3. 补充参考:在 ISSUE 系统中处理另一例人脸/活体检测类 UTS 插件云打包问题时(iOS云打包编译UTS插件时百度BDFaceBaseKit.framework出现duplicate symbol),官方曾提到官方有内置好的阿里实人认证;如果你的业务场景允许,也可以评估使用官方内置的实人认证能力作为替代路径,但该替代与本次 SPM 校验问题本身无关,最终选型请按业务需求判断。

总体评价:这是一条质量较高的 bug 反馈,问题描述、对照实验与根因分析都比较到位,不属于误报;补齐 config.json、appid 与完整日志后即可进入有效排查流程。

内容为 AI 生成,仅供参考

要回复问题请先登录或注册