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

9 回复

配置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 模块。请按以下步骤操作:

  1. 在 Xcode 项目中,通过 CocoaPods 添加依赖:
pod 'DCUniMediaPicker'
  1. 如果未使用 CocoaPods,需要手动将 DCUniMediaPicker.framework 添加到项目的 Frameworks 目录,并确保在工程设置的 “General” -> “Frameworks, Libraries, and Embedded Content” 中包含该框架。

  2. 重新执行生成本地打包资源,确保 Xcode 工程中包含了所有必要的原生模块。

  3. 检查权限配置,确保 Info.plist 中包含相册访问权限描述:

<key>NSPhotoLibraryUsageDescription</key>
<string>需要访问相册来选择照片</string>
回到顶部