uni-app iOS云打包,只使用了相册和相机拍照功能,但打出的包却包含麦克风权限

发布于 1周前 作者 sinazl 来自 Uni-App

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

9 回复

首先确认是安心打包还是传统打包?安心打包可能使用了上次的缓存,可以尝试使用传统打包。 另外确认是否使用了插件后勾选了录音模块?插件或录音模块会自动添加麦克风权限。 请提供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云打包时,如果只使用了相册和相机拍照功能,但打出的包却包含了不必要的麦克风权限,这通常是由于项目配置或代码中存在与麦克风相关的权限请求。为了解决这个问题,可以从以下几个方面进行检查和调整:

  1. 检查manifest.json配置: 确保manifest.json文件中没有错误地配置了麦克风权限。在mp-weixinmp-alipayapp-plus等配置中,应该只包含相册和相机相关的权限声明。

    {
      "mp-weixin": {
        "requiredPrivateInfos": [] // 确保这里没有麦克风相关的权限
      },
      "app-plus": {
        "distribute": {
          "ios": {
            "permissions": {
              "photos": {}, // 相册权限
              "camera": {}  // 相机权限
              // 确保没有 "microphone": {}
            }
          }
        }
      }
    }
    
  2. 检查代码中的权限请求: 在代码中检查是否有调用请求麦克风权限的API。例如,使用uni-app的plus.io.resolveLocalFileSystemURLplus.device.getMicrophoneIDs等API可能会触发麦克风权限请求。

    如果找到类似代码,请将其移除或注释掉。例如:

    // 注释掉或移除以下代码
    // plus.device.getMicrophoneIDs(function(e) {
    //   console.log('Microphone IDs:', e.ids);
    // });
    
  3. 清理项目依赖: 有时候,第三方库或插件可能会引入不必要的权限请求。检查package.json,确保所有依赖都是必要的,并且没有引入麦克风权限。

  4. 重新云打包: 在进行了上述修改后,重新进行iOS云打包,确保新的包不再包含麦克风权限。

  5. 验证包内容: 下载新的iOS包,使用Xcode或其他工具查看应用的Info.plist文件,确认其中没有包含NSMicrophoneUsageDescription键,这个键是用于描述麦克风权限用途的,如果不存在该键,则表示应用没有请求麦克风权限。

通过上述步骤,你应该能够解决uni-app iOS云打包中不必要的麦克风权限问题。如果问题仍然存在,可能需要更深入地检查代码和配置,或者考虑咨询uni-app的官方支持。

回到顶部