This app attempts to access privacy-sensitive data without a usage description

本文分享了一位开发者在向App Store提交iOS应用时遇到的问题:应用尝试访问敏感数据但未提供使用描述。文章详细解释了解决方案,即在Info.plist文件中添加必要的权限说明。
今天在提交项目到itunes时,遇到了上传后,文件却神秘消失了,同时还收到了一封邮件:

Dear developer,

We have discovered one or more issues with your recent delivery for "*****". To process your delivery, the following issues must be corrected:

This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data.

This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.

Once these issues have been corrected, you can then redeliver the corrected binary.

Regards,

The App Store team



百度里一下,大致上是说需要在info.plist里面添加说明,然后就一大堆的添加,
突然觉得好多好多好多......
但是呢,苹果还是很人性的,你只要在info里面添加了邮件里指出的权限说明即可(以上红色)。

提供的参考引用未涉及解决kiroAgent中“Unable to fetch account usage data: read ECONNRESET”问题的方法。一般而言,“read ECONNRESET”错误通常表示在读取数据时,连接被对方重置,以下是一些可能的解决方法: ### 网络层面 - **检查网络连接**:确保网络连接稳定,没有丢包、延迟过高的情况。可以使用`ping`命令检查与目标服务器的连通性,使用`traceroute`命令查看网络路径是否存在问题。 ```bash ping target_server_ip traceroute target_server_ip ``` - **防火墙设置**:检查本地和目标服务器的防火墙设置,确保相关端口是开放的。可以临时关闭防火墙进行测试,如果问题解决,则需要调整防火墙规则。 ```bash # 以CentOS为例,临时关闭防火墙 systemctl stop firewalld ``` ### 服务器层面 - **目标服务器负载**:检查目标服务器的负载情况,如果服务器负载过高,可能会导致连接被重置。可以使用`top`、`htop`等工具查看服务器的CPU、内存、磁盘I/O等使用情况。 ```bash top ``` - **服务器配置**:检查目标服务器的配置,确保其可以处理大量的连接请求。例如,调整服务器的最大连接数、超时时间等参数。 ### 代码层面 - **重试机制**:在代码中添加重试机制,当出现“read ECONNRESET”错误时,进行重试。以下是一个简单的Python示例: ```python import requests import time max_retries = 3 retry_delay = 5 for i in range(max_retries): try: response = requests.get('your_api_url') break except requests.exceptions.ConnectionError as e: if i < max_retries - 1: print(f"Connection error: {e}. Retrying in {retry_delay} seconds...") time.sleep(retry_delay) else: print(f"Failed after {max_retries} attempts.") ``` - **连接超时设置**:在代码中设置合理的连接超时时间,避免长时间等待无响应的连接。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值