iOS APP 使用 uni-app uni.chooseMedia 报未添加模块
iOS APP 使用 uni-app uni.chooseMedia 报未添加模块
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | windows 10 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:windows 10
HBuilderX类型:正式
HBuilderX版本号:4.66
手机系统:iOS
手机系统版本号:iOS 17
手机厂商:苹果
手机机型:iPhone 15
页面类型:vue
vue版本:vue3
打包方式:离线
项目创建方式:HBuilderX
示例代码:
```javascript
uni.chooseMedia({
count: 9,
mediaType: ['image', 'video'],
sizeType: ['original', 'compressed'],
sourceType: ['album'],
success: function (res) {
// 业务代码
}
});
操作步骤:
- 点击自定义的相册选择,调用上述代码,
预期结果:
- 正常打开相册并且选择视频或照片
实际结果:
- 【必现】调用上述代码必然出现弹框
bug描述: APP 中有用户自定义上传功能,在上传处使用 uni.chooseMedia
uni.chooseMedia({
count: 9,
mediaType: ['image', 'video'],
sizeType: ['original', 'compressed'],
sourceType: ['album'],
success: function (res) {
// 业务代码
}
});
让用户可以选择视频或者图片进行上传。 现在遇到的问题时,在HBuilderX中【发行】-【Android/iOS-本地打包】-【生成本地打包资源】。在 xcode 中build之后,app进入相关页面。准备上传时,出现 【打包时未添加 uni-chooseMedia 模块】的报错。 实际APP 功能中,有用户上传头像和上传图片功能。也有视频查看功能。 备注1:manifest.json 【模块配置】中,Camera&Gallery 已勾选。源码中modules中存在 VideoPlayer,Camera,相关权限已配置。 备注2:在未使用 uni.chooseMedia API时,图片上传功能正常。 备注3:平台文档上,未找到 uni.chooseMedia对应的需要在 xcode 工程中添加的包的文档。https://nativesupport.dcloud.net.cn/AppDocs/usemodule/iOSModuleConfig/common.html 关于 ‘Camera(摄像头)/Gallery(图片选择)’和‘Video(视频播放)’ 已经配置过

更多关于iOS APP 使用 uni-app uni.chooseMedia 报未添加模块的实战教程也可以访问 https://www.itying.com/category-93-b0.html
配置Camera&Gallery(相机和相册)有重新打包嘛
更多关于iOS APP 使用 uni-app uni.chooseMedia 报未添加模块的实战教程也可以访问 https://www.itying.com/category-93-b0.html
app卸载再build、 重新勾选 Camera&Gallery(相机和相册) 都做了
回复 1***@qq.com: 自定义基座的包有重新打吧?
回复 蔡cai: 项目使用的是离线打包
回复 1***@qq.com: 那就是配置完Camera&Gallery(相机和相册)有重新离线打包嘛,然后再安装到手机上测试
有的话你就等大佬过来看看吧
【已解决】
根据文档:https://nativesupport.dcloud.net.cn/AppDocs/usemodule/iOSModuleConfig/uts.html
添加了 DCloudUTSExtAPI.framework(Embed & Sign)
请问如何添加DCloudUTSExtAPI.framework,我看文档似乎没有说明
这是因为在离线打包模式下,uni.chooseMedia API 需要额外配置对应的原生模块。虽然你在 manifest.json 中勾选了 Camera&Gallery 模块,但离线打包时还需要在 Xcode 工程中手动添加相应的原生依赖。
对于 iOS 离线打包,uni.chooseMedia 需要依赖 DCUniMediaPicker 模块。请按以下步骤操作:
- 在 Xcode 项目中,通过 CocoaPods 添加依赖:
pod 'DCUniMediaPicker'
-
如果未使用 CocoaPods,需要手动将
DCUniMediaPicker.framework添加到项目的 Frameworks 目录,并确保在工程设置的 “General” -> “Frameworks, Libraries, and Embedded Content” 中包含该框架。 -
重新执行生成本地打包资源,确保 Xcode 工程中包含了所有必要的原生模块。
-
检查权限配置,确保 Info.plist 中包含相册访问权限描述:
<key>NSPhotoLibraryUsageDescription</key>
<string>需要访问相册来选择照片</string>

