设计注意
- App的设置界面、按钮使用了类似iPhone的操作方式以及icon的圆角设计。
- App的年龄设置—》不能太低。
- App里有实物奖励—》要做一个免责声明,和苹果无关。
- app界面设计不像某个网页会被拒
图片限制
- 图片上不能出现苹果手机,苹果产品,苹果logo
- 图片不能是其他知名企业logo,比如:新浪,腾讯,京东。。。
- 图片不能含有色情、暴力、烟酒、毒品、管制刀具等一些图片,解决办法:调整应用年龄限制等级,并加入举报功能。
文字限制
- 测试文字不能出现,不如:测试,test等字眼
- 不能出现iPhone,苹果等
- 不能出现攻击行语言,不能出现为其他应用做广告,宣传的语言
第三方框架引入问题
分享(shareSDK)
- 要特别注意当分享失败的时候出现的提示框,例如:当手机上没有要分享的QQ,微信等客户端,这时要分享的话就会出现错误提醒
分享失败,{失败信息:。。。。。}
,出现英文失败提醒信息,当遇见这样的情况的时候,可以在分享失败的代码里把分享失败的message自定义下信息,如下
[ShareSDK showShareActionSheet:nil //要显示菜单的视图, iPad版中此参数作为弹出菜单的参照视图,只有传这个才可以弹出我们的分享菜单,可以传分享的按钮对象或者自己创建小的view 对象,iPhone可以传nil不会影响
items:nil
shareParams:shareParams
onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
switch (state) {
case SSDKResponseStateSuccess:
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功"
message:nil
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alertView show];
break;
}
case SSDKResponseStateFail:
{
NSLog(@"%@",error);
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示"
message:@"请检查设备是否有相应平台的客户端"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil, nil];
[alert show];
break;
}
default:
break;
}
}
];
返回被拒信息10.6 Details
-
10.6 Details(您的应用程序包括一个更新按钮或提醒用户更新应用程序,为避免用户混淆,APP版本更新必须使用IOS内置的更新机制),2015-3月份,要求关闭所有app内的检查更新功能,苹果Appstore将向用户自动提示更新,所以在项目里最好不要出现更新按钮,可以用一个UILabel代替,label.text = @”当前版本:1.0.0”,这样写也可以,或者就直接用苹果自带的更新机制,可以参考我的博客文:
应用的两种更新方法:
http://blog.csdn.net/icandyss/article/details/50663259返回被拒信息2.5.4
- 在应用中使用了定位功能,因为没有添加提醒的副标题被拒,要在提醒框里添加附加解释信息,最好还要在提交应用的时候在iTunes里添加提示信息,如下图所示:
- 在应用中使用了定位功能,因为没有添加提醒的副标题被拒,要在提醒框里添加附加解释信息,最好还要在提交应用的时候在iTunes里添加提示信息,如下图所示:
返回被拒信息2.8
- 2.8 (安装或运行其他可执行代码的应用会拒),这个可能是你的项目里有的第三方库里有自带的更新功能,或者跳转其他应用功能,我的一个项目里是因为云测的这个第三方库,把云测删了就OK了。
私有API调用被拒
- 第三方静态库包含私有API的调用,解决办法:联系第三方库的技术支持,更新第三方库
找项目里哪个第三方用了私有API:
第一种方法
1. 打开终端,cd至目标文件夹
2. 执行执行 find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep uniqueIdentifier
3. 这里uniqueIdentifier是方法名,分别查询苹果给出的几个方法确定在哪个a文件里
第二种方法
@https://segmentfault.com/a/1190000003956100
第三方登陆
- APP内的第三方登陆通过内置浏览器跳转出去被拒,修改成WebView登陆
数据存储被拒
数据存储被拒,网络下载的资源不能直接放在Documents目录下,下面是整理出来的数据存放规则:
- 只有用户生产的数据应该放在Documents里,
- 下载可以重用的东西放在Library/Caches里
- 临时的放/tmp,不用的时候要记得删掉
- 用do not back up 标记需要留在设备上的数据集,
获取数据存储文件的路径:
@http://blog.csdn.net/enuola/article/details/8076221
苹果官方的数据存储指南 :
@https://developer.apple.com/icloud/documentation/data-storage/index.html
其他原因
- app有打分的功能->评分按钮上的文字不能使用诱导性或欺骗性语言,可以看下酷狗音乐上面的评分功能,酷狗上写的是:@“赐我好评吧”,有的应用是@“去APPSTORE评分”,也可以通过
- app有location,但没有提示用户允许或拒绝的提示框,会被拒
- 做浏览器的应用,分级必须选17+
- 某个button或者控件的响应,没有与说明描述的一致,被拒
- 审核的时候一直提示无法连接到服务器,可能是Reachability返回无法连接,改用request返回数据判断后审核通过
- 提交视屏类客户端,因为没有视频直播的版权被拒,提供版权说明后通过审核
- APP内如果涉及到登陆或者需要和硬件设备连接才能继续操作的,需要提供测试账号,或者操作视频。
- 应用里点击某个功能,提示正在下载,被拒,改为正在加载,过了
- 苹果是不允许应用程序遮盖状态栏的
- 11.13—–>应用中如果提供了IAP以外的收费或订阅机制,如:“buy”按钮,跳转到一个购买电子书的web页面,会被拒。
- QR CODE(二维码)里有Android的下载地址被拒,直接跳转iTunes后通过。
- AppStore显示名字和软件名称不相符
- 和电信合作的应用(因有电信Logo)被拒,需要提供电信合作协议书。
- 上架期间服务器正好在维护,苹果拒绝理由:登陆注册都不能用
- app里使用广告标识符,但没发现有使用广告标识符订的地方,解决:移除了ADsupport框架(不知道啥时候加的)
- 评级问题:提交的时候是评级4星,后来被拒,改为12星,通过审核了
- 开放了文件document分享功能plist文件里的设置(Application supports iTunes file sharing)设置为了yes,被拒,理由:不需要分享,为何开发了。回复邮件说明理由后上线。
- 审核人员打开app无法加载内容,一般是因为国内服务器的问题,解决办法:录个app的操作视频,放到youtube上,发个苹果就ok了
- 界面太丑,被拒(无语。。。)
- 不能点击的图标要置灰,或直接隐藏
- 技术支持地址写的微博地址,被拒理由:不能将需要登录才能访问的网址作为技术支持地址
- 地图应用,Google地图下面的logo被遮挡了,调整位置后OK
- app介绍最好用中文,有例子是应为app介绍用英文人家审核人员看不懂被拒了,审核人员的英语水平真标准啊。。
- IAP(内购)价格不能超过99美元
苹果应用上架审核文档
点击这个链接,看苹果官方的审核文档,自己多研究下吧。
@ http://wenku.baidu.com/link?url=gg8ts3jAn28nDfA_AKoQhecN2umV7wVqUMlj7XOlqsXg6XKHQfoRJRcv3Mj3RFsL13za2YfMXDkon8GHvVH0CJ4-wRe3Cqr8kklmgn4QrIu
内购 (IAP)
在一个应用里,特别是游戏应用,刚开始上线的是免费的,过一段时间更新版本后,有的功能需要购买才能使用,这就是内购,下面是内购的使用教程:
@http://mobile.51cto.com/iphone-410162.htm