uni-app 苹果隐私弹框语言与系统语言不一致,导致 app 上架审核失败。

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

uni-app 苹果隐私弹框语言与系统语言不一致,导致 app 上架审核失败。

操作步骤:

  1. 将系统语音设置为英文或其他语言。
  2. 打开 app 点击位置、相机、蓝牙等权限请求。
  3. 弹出系统隐私权限申请弹框

预期结果:

隐私弹框中显示的文字跟随系统语言或显示为设置的默认语言(英语),或者为我自定义的隐私描述。

实际结果:

隐私弹框中显示的隐私描述文字为中文

bug描述:

苹果隐私弹框语言与系统语言不一致(见附件 2),导致 app 上架审核失败(见附件1)。 我的配置是默认配置,既默认语言为 英文、默认回退语音 英文,具体见附件 4. 你们可以用你们官方提供的 hello uni-app、Hello uni-app x 进行测试,必现。 或者可看 附件3 视频中,我测试的结果

信息类别 信息内容
产品分类 uniapp/App
PC开发环境 Mac
PC开发环境版本 13.3.1 (22E261)
HBuilderX类型 正式
HBuilderX版本 4.26
手机系统 iOS
手机系统版本 iOS 17
手机厂商 苹果
手机机型 14
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

Image 1 Image 2 Image 3 未命名.mp4_.zip


1 回复

针对您提到的uni-app在苹果设备上隐私弹框语言与系统语言不一致的问题,这通常涉及到应用的本地化配置以及iOS系统对隐私权限请求的处理。以下是一个可能的解决方案,通过修改uni-app的配置和代码来确保隐私弹框的语言与系统语言一致。请注意,实际操作可能需要根据您的项目具体情况进行调整。

解决方案

  1. 确保项目支持多语言

    首先,确保您的uni-app项目已经配置了多语言支持。在pages.json中配置支持的语言列表,例如:

    "globalStyle": {
        "language": ["zh-CN", "en-US"]  // 根据需要添加更多语言
    }
    
  2. 使用iOS原生插件处理隐私请求

    uni-app在iOS上处理隐私权限请求时,可能会遇到语言不一致的问题。为了解决这个问题,可以考虑使用iOS原生插件来直接处理隐私权限请求,这样可以确保弹框语言与系统语言一致。

    以下是一个使用Swift编写的iOS原生插件示例,用于请求相机权限:

    import UIKit
    import AVFoundation
    
    [@objc](/user/objc)(CameraPermissionHandler)
    class CameraPermissionHandler: NSObject {
        [@objc](/user/objc) func requestCameraPermission(callback: @escaping (Bool) -> Void) {
            AVCaptureDevice.requestAccess(for: .video) { granted in
                callback(granted)
            }
        }
    }
    

    然后,在uni-app中使用该插件:

    #ifdef APP-PLUS
    plus.bridge.exec('CameraPermissionHandler', 'requestCameraPermission', [], function(granted) {
        if (granted) {
            console.log('Camera permission granted');
        } else {
            console.error('Camera permission denied');
        }
    });
    #endif
    
  3. 确保应用正确读取系统语言

    在iOS中,应用通常会根据系统的语言设置自动调整界面语言。如果您的应用没有正确读取系统语言,可能需要检查应用的本地化配置文件(如InfoPlist.strings)是否正确设置。

  4. 测试与验证

    在完成上述修改后,务必在多种语言环境下测试应用,确保隐私弹框的语言与系统语言一致。可以使用Xcode的模拟器或真机进行测试。

注意事项

  • 使用原生插件可能需要一定的iOS开发经验。
  • 确保在提交应用审核前,已经全面测试了所有相关功能。
  • 如果问题依旧存在,建议查阅Apple的官方文档或联系Apple开发者支持获取更具体的帮助。
回到顶部