跨平台应用开发进阶 (二十五) :uni-app 实现 IOS 云打包解决 IOS 提交审核相册等隐私描述语导致审核失败问题
一、问题描述
Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage We noticed that your app requests the user’s consent to access the camera, but doesn’t sufficiently explain the use of the camera in the purpose string. To help users make informed decisions about how their data is used, permission request alerts need to explain and include an example of how your app will use the requested information.Next Steps Please revise the purpose string in your app’s Info.plistfile for the camera to explain why your app needs access and includean example of how the user's data will be used. You can modify yourapp's Info.plist file using the property list editor in Xcode.
Resources
See examples of helpful, informative purpose strings.
Review a list of relevant property list keys. Please see attached screenshots for details.
大致是:请修改应用程序中的相关目的字符串信息列表文件指定应用程序需要访问用户相机和照片的原因。确保目的字符串包含如何使用用户数据的示例。
二、问题分析
原来默认的目的字符串描述只是比如“读取相册”,请求用户授权,并没有说读取相册用来干嘛;而矫情的 IOS 就是要你给用户写清楚你读取相册是用来干嘛的。
解决方案就是要描述清楚。比如一个外卖应用,获取定位后需要展示附近的美食信息。那么,相应的定位权限描述,应当是类似“获取定位信息用于为用户提供附近的美食信息”这样的描述。而不应当是,“获取用户当前位置信息”这种没有明确描述定位用处的信息。
三、解决方案:IOS 云打包修改权限提示语
打包提交appstore
如果用到了如下权限需要修改提示语,详细描述使用这个权限的原因,如不修改提示语appstore
审核可能会被拒绝。
Apple
的审核原则是,如果一个app
想要申请用户同意某个隐私信息访问许可,需要给用户明确的申请权限的原因,能给用户带来什么价值。
所以要求开发者填写这个原因,并且在iOS
向手机用户弹出是否允许app
访问某隐私信息时,会同时展示开发者填写的这个描述,以帮助用户判断,是否有必要同意这个app
访问隐私信息。
3.1 IOS 隐私信息
通讯录
NSContactsUsageDescription
麦克风
NSMicrophoneUsageDescription
相机
NSCameraUsageDescription
相册(访问)
NSPhotoLibraryUsageDescription
相册(保存图片到相册)
NSPhotoLibraryAddUsageDescription
定位(使用时获取地理位置)
NSLocationWhenInUseUsageDescription
定位(持续获取地理位置)
NSLocationAlwaysUsageDescription
新版本 IOS 11.3 上对定位权限进行了合并 使用定位需要增加一个新的声明
定位(iOS11.3 及以上版本)
NSLocationAlwaysAndWhenInUseUsageDescription
蓝牙
NSBluetoothPeripheralUsageDescription
语音转文字
NSSpeechRecognitionUsageDescription
日历
NSCalendarsUsageDescription
3.2 设置方法
使用视图方式打开manifest.json
文件, 在plus->distribute->apple
节点(uni-app
项目为:app-plus -> distribute -> ios节点
)下添加plistcmds
,数据类型为Array
,开发者可复制以下代码到manifest.json
文件中并根据实际使用情况进行增减。
HBuilderX1.1
起,在manifest
可视化视图-模块权限配置里,可方便的输入提示语,不用再进代码视图操作。
注意⚠️:通过上面方法修改提示语后需要重新打包,调试基座的提示语不会变化。
四、拓展阅读
版权声明: 本文为 InfoQ 作者【No Silver Bullet】的原创文章。
原文链接:【http://xie.infoq.cn/article/0e7c746fb01409bc24bf1bc62】。文章转载请联系作者。
评论