ios审核新坑解决,因为需要访问相机权限被拒绝We noticed that your app requests the user’s consent to access their camera

  • 2018年3月14日 上午2:59

    发件人 Apple

      1. 1.1 Legal: Privacy - Data Collection and Storage

    Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage

    We noticed that your app requests the user’s consent to access their camera but does not clarify the use of this feature in the permission modal alert.

    Please see attached screenshots for details.

    Next Steps

    To resolve this issue, please revise the permission modal alert to specify why the app is requesting access to the user's camera.

    Resources

    To learn more about requesting the user’s permission to access app features, visit the iOS Human Interface Guidelines. You may also want to review the Technical Q&A QA1937: Resolving the Privacy-Sensitive Data App Rejection page for details on how to provide a usage description for permission request alerts.

    • [Screenshot-0313-115845.png]

大概意思就是你的app需要访问用户的相机权限,但是呢你并没有描述清楚为什么要访问,用相机要干什么,我以前的说明是:请求访问相册,只要把两个说明改一下就行了,改成:此App会在拍摄藏品照片时访问您的相机权限,然后打包提交什么就ok啦!就这么简单没了。



<think>好的,我现在需要解决用户的问题:如何确保iOS应用的权限请求语言与其当前中文本地化保持一致。首先,我需要理解这个问题的核心。用户希望当应用的语言设置为中文时,系统弹出的权限请求对话框(比如相机、定位等权限)也显示对应的中文描述,而不是默认或其他语言。 首先,我应该回忆iOS权限请求的相关机制。iOS应用在请求权限时,系统会弹出一个对话框,这个对话框的标题和消息是由应用的Info.plist文件中特定的键(如NSLocationWhenInUseUsageDescription)提供的。这些键对应的值就是显示给用户的文本。因此,如果用户没有正确设置这些键的本地化版本,系统会根据设备当前的语言设置来显示默认的文本,可能导致中英文不一致的问题。 接下来,我需要考虑如何本地化这些权限描述。iOS应用的本地化通常是通过在项目中添加本地化文件(如Localizable.strings)来实现的。但权限请求的描述是在Info.plist中定义的,所以需要针对Info.plist进行本地化配置。用户可能没有正确配置Info.plist的本地化,导致系统无法找到对应的中文描述。 然后,我应该检查具体的步骤。首先,用户需要确保项目中已经为Info.plist添加了中文本地化。这通常涉及到在Xcode中为Info.plist创建对应的本地化文件,比如InfoPlist.strings(简体中文),然后在其中为每个权限键设置中文描述。例如,NSLocationWhenInUseUsageDescription对应的值应该是中文的权限请求说明。 此外,用户需要确保应用的本地化配置正确。比如,在项目的设置中,确认已经添加了中文作为支持的语言,并且应用的当前本地化资源包包含了这些中文描述。如果应用动态切换语言,可能需要额外处理,因为系统权限对话框的语言通常跟随系统设置,而不是应用内部设置。这时候,如果应用内切换语言,但系统语言未改变,权限提示可能还是显示系统语言。这种情况下,可能需要引导用户切换系统语言,或者在应用启动时根据应用语言设置调整本地化资源,但iOS的系统权限描述可能不受应用内语言设置的影响,只能依赖系统语言。 另外,用户需要注意Xcode中的本地化配置是否正确。有时候,即使添加了本地化文件,如果没有正确关联到目标或配置错误,也可能导致本地化失效。需要检查每个本地化文件是否被正确包含在构建阶段中,并且键值对是否正确无误。 最后,可能需要建议用户清理构建文件夹并重构建应用,或者删除应用后重安装,以排除缓存导致的问题。同时,使用模拟器或真机测试时,确保设备的语言设置为中文,以验证权限对话框是否显示正确的中文描述。 总结一下,解决方案的关键点在于正确配置Info.plist的本地化文件,确保权限描述键有对应的中文翻译,并且应用的本地化设置正确无误。如果应用支持动态切换语言,可能需要额外处理,但系统权限描述通常依赖系统语言,因此需要用户注意这一点。</think>为确保iOS应用的权限请求语言与当前中文本地化一致,请按以下步骤操作: ### 1. 配置Info.plist本地化文件 - 在Xcode项目中右键点击`Info.plist` - 选择`New File` -> `Strings File`,命名为`InfoPlist.strings` - 在文件属性面板中添加中文本地化(点击`Localize...`选择简体中文) 在中文版`InfoPlist.strings`中添加: ```objective-c NSLocationWhenInUseUsageDescription = "需要访问您的位置以提供周边服务"; NSCameraUsageDescription = "需要相机权限进行扫码和拍照"; ``` ### 2. 验证本地化配置 在项目设置中: - 进入`PROJECT -> Info -> Localizations` - 确保`Chinese (Simplified)`已添加 - 检查`InfoPlist.strings`文件是否包含在中文本地化分组中 ### 3. 动态语言适配处理(可选) 对于应用内切换语言的情况: ```swift // 在语言切换后强制更Bundle if let path = Bundle.main.path(forResource: "zh-Hans", ofType: "lproj"), let bundle = Bundle(path: path) { bundle.load() // 需要重启控制器才能生效 } ``` *注:系统权限弹窗仍会优先使用系统语言[^1]* ### 4. 测试验证 - 在设备设置中将系统语言设为中文 - 清除应用数据并重启动 - 触发权限请求时应显示中文描述 ### 常见问题排查 1. **描述不显示中文** - 检查`InfoPlist.strings`是否加入`Copy Bundle Resources` - 确认键名与`Info.plist`中的完全一致 - 清除DerivedData目录(Xcode -> Preferences -> Locations) 2. **多语言混杂** - 确保未在`Info.plist`中直接设置值 - 检查所有本地化文件是否完整
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值