App提交审核检查指南

一、APP检查

1、info.plist 权限配置

确保相机、相册等权限key添加了,并且是真的使用到了,未使用不要添加。同时确保描述内容要包含具体的功能

1.1、plist文件添加权限key

    NSAppleMusicUsageDescription
    此 App 需要您的同意才能访问媒体资料库
    NSCalendarsUsageDescription
    此 App 需要您的同意才能使用日历安排日程功能
    NSCameraUsageDescription
    此 App 需要您的同意才能使用摄像头权限实现二维码扫描或拍照等功能
    NSContactsUsageDescription
    此 App 需要您的同意才能使用通讯录权限实现保存联系人到手机的功能
    NSLocationAlwaysAndWhenInUseUsageDescription
    此 App 需要您的同意才能使用地理位置权限实现打卡定位功能
    NSLocationAlwaysUsageDescription
    此 App 需要您的同意才能使用地理位置权限实现打卡定位功能
    NSLocationWhenInUseUsageDescription
    此 App 需要您的同意才能使用地理位置权限实现打卡定位功能
    NSMicrophoneUsageDescription
    此 App 需要您的同意才能访问使用话筒权限实现聊天时发送语音消息等功能
    NSPhotoLibraryUsageDescription
    此 App 需要您的同意才能使用相册权限实现聊天发送照片功能NSPhotoLibraryAddUsageDescription
    此 App需要您的同意才能将图片保存到相册
    NSRemindersUsageDescription
    此 App 需要您的同意才能访问提醒事项
       

1.2、权限申请描述

描述需要说明什么功能需要使用相机相册等权限
如:APP的扫描二维码需要使用您的相机权限等


2、检查UIWebview

grep -r UIWebview . 
  • 确保项目没有直接使用UIWebview
  • AFNetworking是否去掉UIWebview的分类


3、应用检测时提示文案

第三方登录、支付、分享,未安装应用时,不能有引导去下载第3方APP的文案


4、https的问题:以下代码有风险

NSAppTransportSecurity

    NSAllowsArbitraryLoads
    

从 2017 年 1 月 1 日起,所有的新提交 app 默认是不允许使用 NSAllowsArbitraryLoads 来绕过 ATS 限制的,也就是说,我们最好保证 app 的所有网络请求都是 HTTPS 加密的,否则可能会在应用审核时遇到麻烦。


5、检查是否用了隐藏功能

如果APP没有用到微信支付、阿里支付,请删除

//检查是否用了微信支付
grep -r weixin . 
//检查是否用了阿里支付
grep -r alipay . 


6、私有API


7、私有URL scheme

在引导APP用户设置权限时,经常通过openURL,指定URL的方式,打开APP权限设置界面,如:

@"prefs:root= LOCATION_SERVICES
@"prefs:root= Bluetooth"

使用“prefs:root”做跳转 以及 在info.plist中加入URL scheme值为prefs:在提交审核时,都会被拒。

1、移除以下类型的url scheme

"prefs:root" 
"App-Prefs:root"

2、跳转到APP的权限设置界面使用如下方式:

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];                
if([[UIApplicationsharedApplication]canOpenURL:url]) {
   [[UIApplicationsharedApplication]openURL:url];               
}


二、隐私政策

1、App Store Connect 网站

需要提供隐私政策网址

2、App登录界面

需要提供隐私政策入口
最好是勾选的方式,不勾选不让过


三、App Store Connect 网站APP信息

1、各个屏幕的尺寸的截图
2、图标一定要有1024的非圆角的图标
3、隐私政策网址
4、APP有登陆的,需要提供测试账号
确保提交审核的账号和密码能正常登录,并功能正常
确保不要配置广告
确保没有支付功能


四、Xcode打包

1、使用符合要求的xcode版本打包
2、检查scheme的Archive是否为Release

Edit Scheme -> Archive ->Build Configuration ->Release

1、确保xcode10打包
2、确保是release包、distribute证书
3、确保版本号和build号
4、确保选择Generic iOS Device
5、确保网络请求和H5地址:使用线上环境
6、确保版本更新debug模式关掉,并且审核期间不要打开版本更新
7、确保微信小程序支付id是否正确,否则不能正常跳转
8、确保推送bundleid是否ok


五、ipv6服务器检查:

使用如下命令:不报错,就表示支持ipv6

dig +nocmd +nostats 域名 AAAA

具体的测试结果如下:

>dig +nocmd +nostats https://www.baidu.com AAAA
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 8533
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;https://www.baidu.com.     IN  AAAA

;; AUTHORITY SECTION:
baidu.com.      896 IN  SOA dns.baidu.com. sa.baidu.com. 2012141806 300 300 2592000 7200

六、iOS14 local network 拒绝

最近更新应用,iOS14后被拒绝了,被拒拒原因如下;

Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage  

We noticed that your app requests the user’s consent to access the local network information but does not clarify the use of the local network information in the applicable purpose string.  

To help users understand why your app is requesting access to their personal data, all permission request alerts in your app should specify how your app will use the requested feature.  

Next Steps  

Please revise the relevant purpose string in your app’s Info.plist file to specify why the app is requesting access to the local network information.  

You can modify your app's Info.plist file using the property list editor in Xcode.  

解决办法:
参考文章:https://www.cnblogs.com/qizhuo/p/13846430.html
1、检查项目第三方sdk,目前大部分新版本SDK都移除了相关代码,已经不需要相应权限,更新SDK就可以了。
2、如果确实需要就在plist中增加NSLocalNetworkUsageDescription 及相应的用途说明。





参考文章

iOS APP 上架审核过程中常见问题整理
iOS iPv6审核被拒

你可能感兴趣的:(App提交审核检查指南)