9***@qq.com
9***@qq.com
  • 发布:2026-10-22 02:39
  • 更新:2026-10-22 02:39
  • 阅读:43

【报Bug】Windows 云打 iOS 自定义调试基座:uni_modules 本地 UTS 插件未编译进基座 + Info.plist 未合并(HBuilderX 5.26)

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 11

手机系统: iOS

手机系统版本号: iOS 26

手机厂商: 苹果

手机机型: iPad Pro 11英寸 第2代(A12Z)

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: CLI

CLI版本号: 3.0.0-5020620260917001

示例代码:

// src/utils/pedal.ts
// #ifdef APP-PLUS || APP-HARMONY
import { startPedal, stopPedal } from '@/uni_modules/gg-pedal';
// #endif

操作步骤:
  1. CLI 结构 uni-app(vue3+vite)项目,在 src/uni_modules 下放置本地 UTS 插件(utssdk/app-ios 下有 index.uts + GGPedalNative.swift + config.json)。
  2. 在 src/nativeResources/ios/Info.plist 写 CFBundleDocumentTypes(com.adobe.pdf)。
  3. Windows 上用 HBuilderX 5.26 打开项目,运行 → 运行到手机或模拟器 → 制作自定义调试基座 → iOS,选自有证书(p12+密码+mobileprovision),传统打包,打包成功。
  4. 解包生成的 dist/debug/iOS_debug.ipa,检查 Payload/HBuilder.app/Info.plist 与主二进制。

预期结果:
  1. 基座主二进制 / Frameworks 中能找到 gg-pedal 插件编译产物(GGPedalNative 相关符号),真机上调用 startPedal 正常。
  2. 基座 Info.plist 中存在 CFBundleDocumentTypes,iOS「文件」App 分享 PDF 时「用其他应用打开」列表出现本 App。

实际结果:
  1. 全包搜索不到任何 Pedal / GGPedalNative / gg-pedal 字样,真机调用插件为 undefined。
  2. 基座 Info.plist 里没有 CFBundleDocumentTypes,分享面板不出现本 App。
    三次打包(1.0.1/1.0.2/1.0.3)结果完全一致。

bug描述:

Windows + CLI 结构项目(vue3 + vite,manifest 在 src/ 下)云打包 iOS 自定义调试基座时,出现两个问题,三次打包(版本 1.0.1 / 1.0.2 / 1.0.3)结果完全一致:

  1. 项目内的本地 UTS 插件 src/uni_modules/gg-pedal(含 utssdk/app-ios/index.uts、GGPedalNative.swift、config.json)没有被编译进基座。解包 iOS_debug.ipa 后遍历 Payload/HBuilder.app 全部文件,全包搜不到任何 Pedal / GGPedalNative / gg-pedal 字样。

  2. nativeResources/ios/Info.plist 没有被合并进基座 Info.plist。该文件内容仅 CFBundleDocumentTypes(com.adobe.pdf, Viewer)。已同时放在项目根 nativeResources/ios/ 与 src/nativeResources/ios/(与 src/manifest.json 同级)两处,plist 格式校验合法,仍不生效。

HBuilderX 打包日志中的可疑行:
(compile innerCompile) get pluginstate state: 0
编译命令为:uni.js build build -p app

AppID:UNI9B7BD2B
Bundle ID:cn.giggerqp.scores
项目:CLI 结构,@dcloudio/uni-app 3.0.0-5020620260917001,HBuilderX 5.26 正式版,Windows 11
设备:iPad Pro 11英寸第2代(A2Z/A12Z),iPadOS 26.5,UDID 00008027-000C058C1A92402E

已排查(均排除):证书为付费账号 iOS App Development 证书 + Development 描述文件,p12 私钥齐全,profile 内嵌证书与 p12 指纹一致(09AEB211...),Team GJNP7BA47U,UDID 已在 profile 设备列表;云端打包本身成功。插件 package.json 已按规范声明 app-vue / app-nvue / app-android / app-ios / app-harmony,并已移除 dcloudext 节点;业务代码 import 守卫已改为 #ifdef APP-PLUS || APP-HARMONY;每轮打包前已删除 dist/cache 并重启 HBuilderX。

想请官方确认:pluginstate state: 0 代表什么?iOS 自定义基座用 -p app 编译是否正确(此时 #ifdef APP-IOS 不成立,是否导致 iOS 专用 UTS 插件引用被剔除)?CLI 项目 nativeResources 的正确位置?自定义基座是否支持合并 Info.plist?能否按 AppID 查云端打包日志确认 gg-pedal 是否进入编译队列?

2026-10-22 02:39 负责人:无 分享
已邀请:

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