当前使用
console.log('[uts-api]', {
'chooseMedia': typeof uni.chooseMedia,
'getAppAuthorizeSetting': typeof uni.getAppAuthorizeSetting,
'getDeviceInfo': typeof uni.getDeviceInfo,
'getAppBaseInfo': typeof uni.getAppBaseInfo,
'getNetworkType': typeof uni.getNetworkType,
'getSystemInfo': typeof uni.getSystemInfo,
'getSystemSetting': typeof uni.getSystemSetting,
'network': typeof uni.network,
'openAppAuthorizeSetting': typeof uni.openAppAuthorizeSetting,
'privacy': typeof uni.privacy,
'prompt': typeof uni.prompt,
'storage': typeof uni.storage,
})
好多方法都是undefined 原生打包配置工程里面都在报undefined
{
"chooseMedia": "undefined",
"getAppAuthorizeSetting": "function",
"getDeviceInfo": "function",
"getAppBaseInfo": "function",
"getNetworkType": "function",
"getSystemInfo": "function",
"getSystemSetting": "function",
"network": "undefined",
"openAppAuthorizeSetting": "function",
"privacy": "undefined",
"prompt": "undefined",
"storage": "undefined"
}
- 发布:24 分钟前
- 更新:23 分钟前
- 阅读:20
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: MacBook Pro (Retina, 15-inch, Mid 2014)
HBuilderX类型: 正式
HBuilderX版本号: 5.15
手机系统: iOS
手机系统版本号: iOS 17
手机厂商: 苹果
手机机型: iphone 14pro
页面类型: vue
vue版本: vue3
打包方式: 离线
项目创建方式: HBuilderX
示例代码:
操作步骤:
使用5.15HB 和 ios的sdk来进行离线打包 来进行上传图片或者视频,报TypeError: uni.chooseMedia is not a function.
使用5.15HB 和 ios的sdk来进行离线打包 来进行上传图片或者视频,报TypeError: uni.chooseMedia is not a function.
预期结果:
可以正常弹出来拍照,录像,选择相册的方法
可以正常弹出来拍照,录像,选择相册的方法
实际结果:
当前不行
当前不行
bug描述:
TypeError: uni.chooseMedia is not a function.
当前已经配置DCloudUTSExtAPI.framework
App 模块配置 中勾选了 Camera & Gallery(相机和相册) 模块
Xcode里面也有CameraGallery
1 个回复
Ask小助手 - Ask社区AI助手
感谢您的反馈。针对您提交的关于 iOS 离线打包后
uni.chooseMedia is not a function的 Bug 报告,我们进行了详细的评审与分析,以下是评审意见及排查建议:1. Bug 反馈内容完整性评审
DCloudUTSExtAPI.framework和 Camera & Gallery 模块),有助于官方人员快速定位问题背景。console.log测试代码及输出结果,可以直接运行,无需官方人员二次调整。2. Bug 是否成立及排查建议
结合官方文档及历史排查经验,该 Bug 的直接表现是
uni.chooseMedia未被正确挂载到 JS 上下文中。请按照以下方向进行排查:(1)确认 HBuilderX 与 iOS 离线 SDK 版本是否严格一致
在进行 iOS 离线打包时,要求 HBuilderX 版本与下载的 iOS 离线打包 SDK 版本完全一致。如果 HBuilderX 升级了,但 Xcode 工程中的 SDK 未全量替换更新,可能会导致部分 API(如
uni.chooseMedia)缺失。请确认当前使用的 iOS SDK 版本是否与您的 HBuilderX 版本完全匹配,并确保所有依赖库已全量替换。(2)确认 Xcode 工程中 UTS 扩展模块的依赖配置
根据官方文档说明,
uni.chooseMedia属于 UTS 内置模块(uni-chooseMedia)。在 iOS 离线打包中,如果要在 JS 逻辑层或 UTS 插件中使用该 API,不仅需要在manifest.json中勾选“Camera & Gallery(相机和相册)”模块,还需要在 Xcode 主工程中正确添加并配置DCloudUTSExtAPI.framework。请检查 Xcode 工程中该 framework 的引入方式是否正确:必须设置为
Embed & Sign(嵌入并签名),如果仅是普通的Do Not Embed引入,会导致运行时找不到该模块从而报undefined。(3)清理 Xcode 缓存重新编译
如果依赖配置均正确,建议在 Xcode 中执行
Clean Build Folder(快捷键Shift + Cmd + K),清理DerivedData缓存后,重新编译打包自定义基座运行测试。3. 替代方案
如果当前急需实现拍摄和从相册选择图片/视频的功能,在排查上述配置问题的同时,您可以使用
uni.chooseImage和uni.chooseVideo作为替代方案。这两个 API 在 App 端支持良好,且不依赖于 UTS 扩展模块配置,可以满足大部分的媒体选择需求。感谢您对 DCloud 产品的支持,希望以上排查建议能帮助您解决问题。
要回复问题请先登录或注册
公告
更多>相关问题