常见【 审核被拒问题 】收集 以及 解决方案

引言:

苹果的三种审核机制!

预审核---

扫描api,及plist文件字符缺失等;此处分两步,第一步为上传时苹果Application Loador等应用对于适配icon等的检查,第二步为上传后苹果的功能性检查,例如配置了Push功能但有缺失或者未打开功能,则会邮件提示等等;

机审---

此处扫描支付SDK等,及马甲情况,机器扫描主要看代码块,可参考百度蜘蛛抓取网站模块原理;如遇部分无法过机审情况可尝试加速绕过机审(不是100%成功);

人工审核---

此处主要检测功能或者App体验测试,例如用测试账号登录App体验功能,或其他是否明显bug等,ipv6也在此处检测;


# 一. Design - 4.3

4.3是功能或者应用程序重复出现在App Store,包括相同类型产品功能较一致,以及上传马甲或者分包导致的被拒回复,以下方案希望能帮到大家处理此类问题!

# 1. 问题原因

itunesConnect.apple关于4.3的被拒回复:

Guideline 4.3 - Design Your app duplicates the content and functionality of apps currently available on the App Store. Apps that simply duplicate content or functionality create clutter, diminish the overall experience for the end user, and reduce the ability of developers to market their apps. Next Steps We encourage you to review your app concept and incorporate different content and features that are in compliance with the App Store Review Guidelines. For app design information, check out the following videos: "Best Practices for Great iOS UI Design" and "Designing Intuitive User Experiences," available on the Apple Developer website. You may also want to review the ios Human Interface Guidelines for more information on how to create a great user experience in your app. If you cannot - or choose not to - revise your app to be in compliance with the App Store Review Guidelines, you may wish to build an HTML5 web app instead. You can distribute web apps directly on your web site; the App Store does not accept or distribute web apps. html5 is the major new version of HTML and enables audio and video to play natively in the browser without requiring proprietary plug-ins. Using Html5, web apps can look and behave like native iPhone and iPad apps, and using HTML5's Offline Application Cache, a web app can work even when the device is offline. With web apps, you have flexibility to deliver as much or as little functionality as you desire. To get started with iPhone or iPad web apps, please review the Safari Client-Side Storage and Offline Applications Programming Guide. For a description of the HTML elements and attributes you can use in Safari on iPhone, check out Safari HTML Reference: Introduction.

苹果审核条款,针对4.3的条款说明!

# 2. 修改方案

# A. 元数据方面修改方案:

  1. 修改应用程序价格,打造与原产品不同的价格级别;
  2. 修改应用程序发布地区,打造与原产品不同的售卖地区或分不同地区运营;
  3. 修改产品分类,打造与原产品不同的产品侧重属性分类;
  4. 回复苹果产品设计理念等,表述产品情怀,希望打造独一无二的产品,比如功能目前会跟其他类似,会有相同情况;然后提出产品内某功能加以细节性说明,比如功能在市场上其他人还没做等等(此做法请慎重,描述好了ok,描述差了打脸);

修改后回复内容可参考如下: (主要表述方面侧重在于用户体验,及满足不同用户细化体验等方面):

尊敬的苹果开发者审核, 您好,针对于贵方提出的4.3相关问题,我方目前已修改“地区/售价/分类”,主要目的在于针对不同的人群属性做运营方面的区分,我们希望给予用户不同的产品体验,包括应用程序内的功能侧重点,展现给用户的内容等等;希望贵方能重新审核,及时给予我方App通过审核并发布至App Store。 诚挚的问候!

# B. 二进制方面修改方案:

  1. 升级version,升级一个版本号提交审核;
  2. 换bundle id,换一个包再提交审核;
  3. 换开发者账号,换不同账号提交审核;
  4. 修改素材及UI色调等,修改logo,修改主色调;
  5. 修改功能界面等,此处可改功能可做小开关;
  6. 添加垃圾代码或者注释块,此处主要防苹果机审扫描;

# 二. PLA - 1.2

最近不少小伙伴反应因违反 PLA 1.2 规则而导致了审核被拒,并且多集中于电商、金融类APP。对此CC君整理了论坛(原贴地址)和其他一些资源,希望能对大家有所帮助。

# 1. 问题原因

邮件:

PLA 1.2 The seller and company names associated with your app do not reflect the retailer names in the app or its metadata, as required by section 1.2 of the Apple Developer Program License Agreement. Next Steps Your app must be published under a seller name and company name that reflects the retailer brands. If you have developed these apps on behalf of a client, please advise your client to add you to the development team of their Apple Developer account. Once created, you cannot change your seller name or company name in iTunes Connect. For assistance with changing your company name or seller name, you will need to contact iTunes Connect through the Contact Us page.

谷歌翻译:

PLA 1.2 与您的应用程序相关联的卖家和公司名称不反映应用程序或其元数据中的零售商名称,如Apple开发人员计划许可协议第1.2条所要求。 下一步 您的应用程式必须以反映零售商品牌的卖家名称和公司名称发布。 如果您代表客户开发了这些应用程序,请告知您的客户将您添加到他们的Apple开发者帐户的开发团队。 创建后,您不能在iTunes Connect中更改卖家名称或公司名称。 有关更改公司名称或卖家名称的帮助,您需要通过联系我们页面联系iTunes Connect

# 2. 解决方案

pigkiss:

账号是个人账号吧 以前看到过一个帖子,也是因为这个拒绝了,后面说是换成公司的账号就可以了。

柠檬不酸:

不是个人的,上传的营业执照,也有电子产品技术开发及销售。 我确实使用公司账号提交的,前一个版本就没问题,昨天改了几个小问题,提交了一个新版本,然后悲剧了。

wtt0415:

我之前两个项目全部因为这个被下架,折腾了一两个月后才重新上架了。主要原因就是类似这种涉及到品牌的app,苹果要求我们提供该app是我们公司合法app的相关文件,另外提供该品牌是我们公司旗下的品牌才可以。但是有些app我们提供不了这些,最后只能改app的名称,把app名改为开发者账号中的公司名,例如淘宝是淘宝公司的产品,qq是腾讯公司的产品,我的两个app这样修改后都可以了。

toss156_:

版权里面填公司的名字,然后如果App有注册商标的话,提供给苹果看下应该就可以了。

sliever:

如果App的名称和开发者账号的公司名称没有很大关系的话,将技术支持网址填写公司官网地址即可。

苍穹不死鸟:

之前遇到过,表示换成公司的就好了

柠檬不酸: 已经过了,过得经验是,在提交的时候在备注里声明了一下app内的店铺信息是通过线下加入到我们平台的,并且在关于我们增加了免责声明以及规则说明着重又强调了一下。其他人有说发营业执照和软著的等各种证明的,这也是一种办法,公司账号应该是比较好过得。

舞小月: 金融类的app不能包含别人的产品,必须全部是自己的产品,这就恶心了,只能让后台先弄一套假数据换成全部自己的产品,而且要提供相关证明,证明这产品是你们公司的,一般需要上传一些相关文件图片。必须用公司账号(这个就不多说)。

changnan: 前两个星期也被这个问题拒过,账号是公司的,回复免责声明没用,还是被拒,后面做两张假图替换相应页面,等上线后通过后台又改回来!


# 三. 后台定位

# 1. 苹果邮件描述

your app declares support for location in the UIBackgroundModes key in your Info.plist file but still does not declare any features that require persistent location. Apps that declare support for location in the UIBackgroundModes key in your Info.plist file must have features that require persistent location. Next Steps Please revise your app to include features that require the persistent use of real-time location updates while the app is in the background. Please also add the following battery use disclaimer in your Application Description: "Continued use of GPS running in the background can dramatically decrease battery life." If your app does not require persistent real-time location updates, please remove the "location" setting from the UIBackgroundModes key. You may wish to use the significant-change location service or the region monitoring location service if persistent real-time location updates are not required for your app features.

# 2. 解决方案

  • 如果你的应用根本不需要使用后台定位,根本不需要定位功能,但是还是在.info.plist 里面添加了 location in the UIBackgroundModes key,那么在plist文件里面移除 UIBackgroundModes key 就可以,这中情况较少,新手小白会犯这种错误

  • 如果你的应用使用了后台定位模式,而且你的应用只需要短暂的获取少数的用户的位置,比如美团,新闻类的应用需要获得当前用户的所在城市,这种情况没必要使用后台定位,这种情况使用后台定位被拒绝,只需要去掉.plist 的文件中的UIBackgroundModes

  • 你的应用真的需要使用后台定位,比如考勤打卡类的应用,需要跟踪货车车司机的实时位置,或者跑步软件之类的应用,那么你不能只是实时获取到用户的无数的定位点传到服务器,而APP没有任何界面展示这些定位数据,这种情况苹果会回复 如果没有使用必要使用后台定位需要移除.plist的UIBackgroundModes key ,如果真的需要后台定位需要more feature(更多细节) ,这些更多细节怎么实现?大家观察 appstore 的可以使用后台定位的软件,基本上有一个共同的特点,他们后台定位的数据要么有一个绘制的轨迹,或者有一个界面展示出所有定位的点,具体详情可以参考红圈营销(考勤类的app),他们后台定位的点用tableView 展示出来了,每一个cell就是一个定位的数据,这些数据包含定位的地点(比如北京市天安门2号楼),时间到几分几秒.所以如果你想实现后台定位功能也需要通过表格或者轨迹展示出后台定位的数据,再提交审核的时候告诉苹果那个功能需要后台定位,具体展示后台定位的数据在那个界面,最后需要 Continued use of GPS running in the background can dramatically decrease battery life 加到app描述里面,可以参考滴滴出行的描述,否则也会被拒绝

  • 最近有一哥们因为需要把订单准确的投放给用户,然后确定用户当前就是在订单投放的范围内才能收到一条推送,需要使用后台定位,被拒绝了几次了,现在他想了一个方案,做一个导航,然后那个backgroundmode就能通过了。然后那个定位的问题也能用了,这也是一种可以试试的方案,后续会持续跟踪他的解决方案 ,将是否有效告诉大家,最后验证是通过审核了,中间苹果发了邮件要这个哥们告诉在哪里使用了定位,这哥们回了就通过了,这也是一种实现思路总之如果想使用第三种方式解决问题,一定让苹果感觉你有必要使用后台定位,而不是偷偷地把定位点发给服务器,其他的啥界面啥功能都没有,增加轨迹(学跑步软件),增加列表显示定位数据(学红圈营销),增加导航也可以,有 界面 和功能让苹果感觉你真的需要使用后台定位功能,提交的时候一定要告诉苹果那个功能使用了后台定位

  • 如果让用户可以使用后台定位,又不想展示定位数据,就用企业证书发布,企业签名的ipa发布到蒲公英或者fir.im平台,让用户下载,这样就可以绕过苹果的审核,放肆的使用后台定位了,此方法只适合用户量在3W以下的app,超过3W的用户量这么干会被封企业证书,更多企业证书相关的问题参考我的博客:企业账号科普15问15答和交流,我负责维护的另外一个付费的考勤类的app ,为了绕过苹果后台定位审核,另外一个项目比较忙,不想花更多时间在这个付费的考勤类的app上,就是用的企业账号发布的,从此愉快的开启后台定位

  • 还有一种方案和老板或者产品经理聊聊,app 是不是一定得要后台定位这个功能,这个功能用户不喜欢,后台持续定位涉及隐私和耗电,我看到至少有3例最后是老板妥协了,主动放弃后台定位的功能

  • 可以先传一个不带后台定位的版本,再慢慢解决后台定位的问题,这样只是少一个后台定位的功能,其他的功能用户还可 以正常使用,作为缓兵之计这个方案也是可行的


# 四. 广告勾选错误被拒

# 1. 问题描述:

广告勾选错误被拒,一妹纸提交审核的时候,苹果问是否有广告,结果这妹纸想以后可能有广告,勾选了,结果被拒了

苹果被拒邮件内容:

We found that your app uses the Advertising Identifier but does not include ad functionality. This does not comply with the terms of the Apple Developer Program License Agreement, as required by the App Store Review Guidelines. Specifically, section 3.3.12 of the Apple Developer Program License Agreement states: ”You and Your Applications (and any third party with whom you have contracted to serve advertising) may use the Advertising Identifier, and any information obtained through the use of the Advertising Identifier, only for the purpose of serving advertising. If a user resets the Advertising Identifier, then You agree not to combine, correlate, link or otherwise associate, either directly or indirectly, the prior Advertising Identifier and any derived information with the reset Advertising Identifier." If your app is serving ads, please:

  • Ensure that you have tested your app on a device, not just the simulator, and that you have removed all previous versions of your app prior to testing
  • Provide us the steps to locate ads in your app If your app does not serve ads, please check your code - including any third-party libraries - to remove any instances of: class: ASIdentifierManager selector: advertisingIdentifier framework: AdSupport.framework If you are planning to incorporate ads in a future version, please remove the Advertising Identifier from your app until you have included ad functionality. To help locate the Advertising Identifier, use the "nm" tool. For information on the "nm" tool, please see the nm man page. If you do not have access to the libraries' source, you may be able to search the compiled binary using the "strings" or "otool" command line tools. The "strings" tool lists the methods that the library calls, and "otool -ov" will list the Objective-C class structures and their defined methods. These techniques can help you narrow down where the problematic code resides.

# 2. 解决方案:

app没有做广告,是否有广告的勾,就不要打勾了如图片中所示,重新上传!