uni-app iOS云打包,只使用了相册和相机拍照功能,但打出的包却包含麦克风权限
uni-app iOS云打包,只使用了相册和相机拍照功能,但打出的包却包含麦克风权限
示例代码:
使用包含uni.chooseImage逻辑打包
操作步骤:
使用包含uni.chooseImage逻辑打包
预期结果:
使用照片或者拍照,不需要麦克风权限
实际结果:
使用照片或者拍照,用到了麦克风权限,打包过不了审核
bug描述:
iOS云打包,只使用了相册和相机拍照,打出的包info.plist包含麦克风权限Privacy - Microphone Usage Description,打包时没有勾选相关麦克风权限,提交appstore审核没通过,审核人员找不到使用该权限的入口。
信息类别 | 信息内容 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Mac |
PC系统版本 | 13.6 (22G120) |
HBuilderX | 正式 |
HBuilderX版本 | 4.29 |
手机系统 | iOS |
手机系统版本 | iOS 17 |
手机厂商 | 苹果 |
手机机型 | iphone11 |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
首先确认是安心打包还是传统打包?安心打包可能使用了上次的缓存,可以尝试使用传统打包。
另外确认是否使用了插件后勾选了录音模块?插件或录音模块会自动添加麦克风权限。
请提供appid和提交云端打包时间,我们查下云端打包日志。
下边回复错对象了,新建一个项目包含uni.chooseImage,用云打包就会出现麦克风权限,下边的回复能删掉吗。。
回复 新的大菠萝: 确认是否使用了uni原生插件或uts插件,且没有手动配置麦克风权限描述。如果确认不是以上情况导致 ,重新提交云端打包并提供appid,我们查下云端打包日志(云端打包日志只保留2天,请在回复appid前提交云端打包)
回复 DCloud_App_Array: [HBuilder] 14:21:19.901 项目 test [UNI5095011]打包成功: 14:21:21.487 [HBuilder] 14:21:21.488 类型: iOS Appstore 下载地址: https://app.liuyingyong.cn/build/download/54755ca0-9cd0-11ef-8291-89a9dec23de7 (注意该地址为临时下载地址,只能下载5次) [一键上传到uniCloud(更优惠的cdn、长期稳定)] [HBuilder] 14:21:21.488 uni升级中心可为您的App提供简单、统一的版本管理、升级检测功能,建议集成。详情: https://uniapp.dcloud.io/uniCloud/upgrade-center [HBuilder] 14:21:21.488 HBuilderX已支持App cli自动化打包, 详情参考: https://hx.dcloud.net.cn/cli/pack [不再提示] [HBuilder] 14:21:21.488 uni升级中心可为您的App提供简单、统一的版本管理、升级检测功能,建议集成。详情: https://uniapp.dcloud.io/uniCloud/upgrade-center [HBuilder] 14:21:21.488 HBuilderX已支持App cli自动化打包, 详情参考: https://hx.dcloud.net.cn/cli/pack [不再提示] [HBuilder] 14:21:21.489 【云端打包提示信息】 ** 打包证书不是 App Store 生产证书(Production),不能提交到 App Store 上架审核!
回复 DCloud_App_Array: 测试项目地址 https://github.com/machinee2024/test
回复 新的大菠萝: 确认是因为勾选了Camera&Gallery(相机和相册)使用到了录音权限。因为相机可能需要用于录像会用到录音权限,目前没有细分相机相册模块的权限,暂时只能通过离线打包来解决。
回复 DCloud_App_Array: 离线打包,在info.plist里不声明麦克风NSMicrophoneUsageDescription,打包上传的时候会被机审提示,包上传不通过,无法提交。在info.plist添加描述,但是没有使用的入口,审核人员找不到功能点…希望能单出一个选图和拍照的库,这样离线和云打包都不会用到麦克风权限了
传统打包,没勾选录音模块,
[HBuilder] 19:22:34.165 项目 uni-bbb [UNI47FD551]的打包状态:
[HBuilder] 19:22:34.166 时间: 2024-10-25 13:05:56 类型: iOS Appstore 打包成功 下载地址: https://app.liuyingyong.cn/build/download/d0b43ec0-928e-11ef-bf5b-bba74131957e [一键上传到uniCloud(更优惠的cdn、长期稳定)]
[HBuilder] 19:22:34.169 uni升级中心可为您的App提供简单、统一的版本管理、升级检测功能,建议集成。详情: https://uniapp.dcloud.io/uniCloud/upgrade-center
[HBuilder] 19:22:34.169 HBuilderX已支持App cli自动化打包, 详情参考: https://hx.dcloud.net.cn/cli/pack [不再提示]
[HBuilder] 19:22:34.169 uni升级中心可为您的App提供简单、统一的版本管理、升级检测功能,建议集成。详情: https://uniapp.dcloud.io/uniCloud/upgrade-center
[HBuilder] 19:22:34.170 HBuilderX已支持App cli自动化打包, 详情参考: https://hx.dcloud.net.cn/cli/pack [不再提示]
[HBuilder] 19:22:34.170 【云端打包提示信息】
** 打包证书不是 App Store 生产证书(Production),不能提交到 App Store 上架审核!
使用开发证书 “iPhone Developer: Zhaohu Li (GD59774A8A)” 打包,只能安装到测试设备
在uni-app进行iOS云打包时,如果只使用了相册和相机拍照功能,但打出的包却包含了不必要的麦克风权限,这通常是由于项目配置或代码中存在与麦克风相关的权限请求。为了解决这个问题,可以从以下几个方面进行检查和调整:
-
检查manifest.json配置: 确保
manifest.json
文件中没有错误地配置了麦克风权限。在mp-weixin
、mp-alipay
、app-plus
等配置中,应该只包含相册和相机相关的权限声明。{ "mp-weixin": { "requiredPrivateInfos": [] // 确保这里没有麦克风相关的权限 }, "app-plus": { "distribute": { "ios": { "permissions": { "photos": {}, // 相册权限 "camera": {} // 相机权限 // 确保没有 "microphone": {} } } } } }
-
检查代码中的权限请求: 在代码中检查是否有调用请求麦克风权限的API。例如,使用uni-app的
plus.io.resolveLocalFileSystemURL
或plus.device.getMicrophoneIDs
等API可能会触发麦克风权限请求。如果找到类似代码,请将其移除或注释掉。例如:
// 注释掉或移除以下代码 // plus.device.getMicrophoneIDs(function(e) { // console.log('Microphone IDs:', e.ids); // });
-
清理项目依赖: 有时候,第三方库或插件可能会引入不必要的权限请求。检查
package.json
,确保所有依赖都是必要的,并且没有引入麦克风权限。 -
重新云打包: 在进行了上述修改后,重新进行iOS云打包,确保新的包不再包含麦克风权限。
-
验证包内容: 下载新的iOS包,使用Xcode或其他工具查看应用的
Info.plist
文件,确认其中没有包含NSMicrophoneUsageDescription
键,这个键是用于描述麦克风权限用途的,如果不存在该键,则表示应用没有请求麦克风权限。
通过上述步骤,你应该能够解决uni-app iOS云打包中不必要的麦克风权限问题。如果问题仍然存在,可能需要更深入地检查代码和配置,或者考虑咨询uni-app的官方支持。