无法在Config.xml中修改NSCameraUsageDescription的技术求助
解决Cordova iOS应用NSCameraUsageDescription自定义提示不生效的问题
我之前碰到过完全一样的坑,卡了好几天没法提交App Store,试了一堆方法才解决,给你几个针对性的方案:
1. 移除冲突的Preference设置
你当前的iOS平台配置里,先删掉这两行带空默认值的Preference:
<preference name="CAMERA_USAGE_DESCRIPTION" default=" " /> <preference name="PHOTOLIBRARY_USAGE_DESCRIPTION" default=" " />
这些空值的Preference会优先覆盖你后面用<config-file>或<edit-config>设置的自定义描述,是最常见的坑之一。
2. 使用正确的<edit-config>语法(Cordova CLI 7+推荐)
替换掉你原来的<config-file>配置,改用<edit-config>,并且确保放在<platform name="ios">标签内部:
<platform name="ios"> <edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="overwrite"> <string>Camera is used for uploading activation photos and profile pictures.</string> </edit-config> <edit-config target="NSPhotoLibraryUsageDescription" file="*-Info.plist" mode="overwrite"> <string>Photo Library is used for uploading activation photos and profile pictures.</string> </edit-config> </platform>
这里mode="overwrite"会强制覆盖相机插件自带的默认描述,避免配置冲突。
3. 彻底清理缓存后重新构建
旧的构建缓存经常会导致配置不生效,执行以下命令清理后再重新构建:
cordova clean ios cordova build ios --release
4. 验证最终的Info.plist文件
构建完成后,去platforms/ios/你的应用名称/你的应用名称-Info.plist文件里检查,确认NSCameraUsageDescription和NSPhotoLibraryUsageDescription已经正确设置为你的自定义文本。如果还是没生效,可以手动打开这个plist文件(用Xcode或文本编辑器)直接修改,然后重新打包ipa。
修改后的完整Config.xml关键部分示例
<platform name="ios"> <edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="overwrite"> <string>Camera is used for uploading activation photos and profile pictures.</string> </edit-config> <edit-config target="NSPhotoLibraryUsageDescription" file="*-Info.plist" mode="overwrite"> <string>Photo Library is used for uploading activation photos and profile pictures.</string> </edit-config> </platform> <!-- 保留你其他的插件和基础配置 --> <gap:plugin name="cordova-plugin-camera" version="4.0.3" source="npm" /> <!-- ...其他插件配置... -->
按照这个步骤来,应该就能解决你的问题了,我当时就是这么搞定的。
内容的提问来源于stack exchange,提问作者Greg4572
相关产品推荐
相关产品推荐

