// src/utils/pedal.ts
// #ifdef APP-PLUS || APP-HARMONY
import { startPedal, stopPedal } from '@/uni_modules/gg-pedal';
// #endif
- 发布:2026-10-22 02:39
- 更新:2026-10-22 02:39
- 阅读:43
【报Bug】Windows 云打 iOS 自定义调试基座:uni_modules 本地 UTS 插件未编译进基座 + Info.plist 未合并(HBuilderX 5.26)
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 11
手机系统: iOS
手机系统版本号: iOS 26
手机厂商: 苹果
手机机型: iPad Pro 11英寸 第2代(A12Z)
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: CLI
CLI版本号: 3.0.0-5020620260917001
示例代码:
操作步骤:
- CLI 结构 uni-app(vue3+vite)项目,在 src/uni_modules 下放置本地 UTS 插件(utssdk/app-ios 下有 index.uts + GGPedalNative.swift + config.json)。
- 在 src/nativeResources/ios/Info.plist 写 CFBundleDocumentTypes(com.adobe.pdf)。
- Windows 上用 HBuilderX 5.26 打开项目,运行 → 运行到手机或模拟器 → 制作自定义调试基座 → iOS,选自有证书(p12+密码+mobileprovision),传统打包,打包成功。
- 解包生成的 dist/debug/iOS_debug.ipa,检查 Payload/HBuilder.app/Info.plist 与主二进制。
- CLI 结构 uni-app(vue3+vite)项目,在 src/uni_modules 下放置本地 UTS 插件(utssdk/app-ios 下有 index.uts + GGPedalNative.swift + config.json)。
- 在 src/nativeResources/ios/Info.plist 写 CFBundleDocumentTypes(com.adobe.pdf)。
- Windows 上用 HBuilderX 5.26 打开项目,运行 → 运行到手机或模拟器 → 制作自定义调试基座 → iOS,选自有证书(p12+密码+mobileprovision),传统打包,打包成功。
- 解包生成的 dist/debug/iOS_debug.ipa,检查 Payload/HBuilder.app/Info.plist 与主二进制。
预期结果:
- 基座主二进制 / Frameworks 中能找到 gg-pedal 插件编译产物(GGPedalNative 相关符号),真机上调用 startPedal 正常。
- 基座 Info.plist 中存在 CFBundleDocumentTypes,iOS「文件」App 分享 PDF 时「用其他应用打开」列表出现本 App。
- 基座主二进制 / Frameworks 中能找到 gg-pedal 插件编译产物(GGPedalNative 相关符号),真机上调用 startPedal 正常。
- 基座 Info.plist 中存在 CFBundleDocumentTypes,iOS「文件」App 分享 PDF 时「用其他应用打开」列表出现本 App。
实际结果:
- 全包搜索不到任何 Pedal / GGPedalNative / gg-pedal 字样,真机调用插件为 undefined。
- 基座 Info.plist 里没有 CFBundleDocumentTypes,分享面板不出现本 App。
三次打包(1.0.1/1.0.2/1.0.3)结果完全一致。
- 全包搜索不到任何 Pedal / GGPedalNative / gg-pedal 字样,真机调用插件为 undefined。
- 基座 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)结果完全一致:
-
项目内的本地 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 字样。 -
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 是否进入编译队列?