wg689 / Solve-App-Store-Review-Problem
- вторник, 23 августа 2016 г. в 03:14:04
Objective-C
a collection to solve app store review problem (ipv6,后台定位等审核问题的终极解决方案汇总)
app审核指南中英文对照版
另外:被拒绝了不用想着去给苹果打电话,网上的电话打过去是不解决审核问题的,笔者以前打过,审核问题只有他们心情好的时候,给你打电话你接听的份!
appstore 审核遇到有问题欢迎给我提issue 或者咨询appstore审核问答群,问问题请复制苹果拒绝的内容到群(类似下面的被拒描述的内容),更方便别人帮助解答,369250107`(欢饮加入)
[审核]ipv6 最全的拒绝解决方案(QQ群至少有10位ipv6被拒绝了,都是用这个方案解决了)
[审核]后台定位被拒绝的终极解决方案(6种情况说明,让天下没有解决不了的后台定位问题)
[审核]没有填写耗电的描述被拒绝
[审核]广告勾选错误被拒
[审核]app崩溃(Crash)问题
[问题]app下载速度很慢的问题啊,我们上线的应用下载好慢?
[问题]提交审核无法选择文件
苹果邮件描述
被拒的描述1:
From Apple
2. 1 PERFORMANCE: APP COMPLETENESS
2. 3 PERFORMANCE: ACCURATE METADATA
Performance - 2.1
We were unable to review your app as it crashed on launch. We have attached detailed crash logs to help troubleshoot this issue.
Next Steps
Please revise your app and test it on a device while connected to an IPv6 network (all apps must support IPv6) to ensure it will launch without crashing.
Resources
For additional information about supporting IPv6 Networks, please refer to Supporting IPv6 DNS64/NAT64 Networks and Supporting IPv6-only Networks.
For a networking overview, please see About Networking.
For information on how to symbolicate and read a crash log, please see Tech Note TN2151 Understanding and Analyzing iPhone OS Application Crash Reports.
If you have difficulty reproducing this issue, please try testing the workflow described in Testing Workflow with Xcode's Archive feature.
If you have code-level questions after utilizing the above resources, you may wish to consult with Apple Developer Technical Support. When the DTS engineer follows up with you, please be ready to provide:
- complete details of your rejection issue(s)
- screenshots
- steps to reproduce the issue(s)
- symbolicated crash logs - if your issue results in a crash log
被拒描述2:
We discovered one or more bugs in your app when reviewed on iPhone running iOS 9.3.4 on Wi-Fi connected to an IPv6 network.
At launch, the app crashes or display message as “请检查网络连接”.
We've attached screenshot(s) for your reference.
Next Steps
Please run your app on a device while connected to an IPv6 network (all apps must support IPv6) to identify the issue(s), then revise and resubmit your app for review.
被拒描述3
We discovered one or more bugs in your app when reviewed on iPad and iPhone running iOS 9.3.4 on Wi-Fi connected to an IPv6 network. Specifically,
we were unable to load the video contents. The loading icon kept spinning. No mote further action was taken.
We've attached screenshot(s) for your reference.
被拒的描述4 发件人 Apple
2. 1 PERFORMANCE: APP COMPLETENESS
2. 3 PERFORMANCE: ACCURATE METADATA
2. 4 PERFORMANCE: HARDWARE COMPATIBILITY
4. DESIGN: PREAMBLE
Performance - 2.1
We discovered one or more bugs in your app when reviewed on iPhone running iOS 9.3.4 on Wi-Fi connected to an IPv6 network.
被拒的描述5.
Performance - 2.1
We discovered one or more bugs in your app when reviewed on iPhone running iOS 9.3.4 on Wi-Fi connected to an IPv6 network.
被拒的描述6....
Performance - 2.4.1
We noticed that your app did not run at iPhone resolution when reviewed on iPad running iOS 9.3.4. Specifically, we were not able to log in from an iPad as an error message displayed.
We've attached screenshot(s) for your reference.
aNext Steps
Please revise your app to ensure it runs and displays properly at iPhone resolution on iPad.
Resources
For information on iOS device screen sizes and resolutions, please see the iOS Human Interface Guidelines as well as the Points versus Pixels in the View Programming Guide for iOS.
被拒的描述7....*只要苹果拒绝邮件含有ipv6就需要适配ipv6,就需要搭建ipv6 环境测试自己的app *
解决方案上面的描述不一样, 解决方案都一样,都需要支持ipv6 只要苹果拒绝邮件含有ipv6就需要适配ipv6,就需要搭建ipv6 环境测试自己的app ,没说也有可能需要检查ipv6如被拒描述6所示!为啥?被拒描述6所示:说在9.3.4下无法连接,最近啥问题会导致一大片的app无法连接?ipv6 啊,既然有无法连接的问题,是不是该检查下ipv6 是否ok?
搭建ipv6 环境,搭建好的ipv6 ,环境会有一个共享wifi, 具体如何搭建ipv6测试环境参考本地如何搭建IPv6环境测试你的APP
如果搭建ipv6 遇到问题,热点连不上,别人教程的选项我没有怎么办?
多找找 如何搭建ipv6的帖子(我第一次搭建看了好几篇帖子,试了好几种方法,搭建ipv6环境需要的网络可以是插的网线,也可以是wifi),如果都不行这里有很多如何搭建ipv6 的文章,你需要做的是注意一些细节问题,比如苹果系统是10.11.5 以上,测试的手机最好不是iphon5 以下,笔者亲测iphone5 连不上ipv6 .
如果搭建的过程中试了无数的方法,ipv6访问app服务器访问不了,你需要测试下你的服务器是否支持ipv6,怎么验证参考这篇文章 简单的理解(已验证,项目已经上线)**
app连上搭建好的共享wifi测试你的app,会发现某些 模块无法连接网络, 更换相应的模块即可,让测试人员把所有的模块功能都点一下,最好在搭建好的ipv6下使用iOS9.3.0以上的系统测试,苹果审核使用iOS9.3.0以上的系统审核,这样就会某些模块网络出现无法联网的异常或者崩溃,一般需要更换两种模块
需要更换那些SDK 可以参考我的博客 适配IPV6需要替换的第三方SDK
如果你的友盟,shareSDk是6.1号之前集成的,一定要去更换这些SDK,6.5号左右友盟出了最新的SDk适配ipv6
比如使用ASI或者AFN的版本太低,使用最新的AFN即可解决问题
注意确认:ipv6 搭建连接是否正确 ?所有功能是否在ipv6下都测试了,app安装在iphon6 以上的机器测试,iphon5 可能连不上ipv6 wifi,搭建ipv6 可以使用mac连接网线和mac连无线,两种方法都可以试试,
ipv6测试 这个连接可以进行ipv6 测试 大家可以试试
理论上上面这些解决方案就足够了,下面的方案不用看了,但是为了通过率再提高提高,
答案:建议:用VPN,在IPV6下,用美帝的线路访问服务端试一试,因为有些人在自己搭建的ipv6下可以请求数据,但是在美帝的线路访问服务端IPV6无法连接
如果上面的解决方案还不行,努力尝试过,你觉得适配了ipv6 ,苹果那边说你没适配ipv6,参考这个帅哥的做法,审核的时候给你拒绝说明的英文,有个地方可以回复的,给他们你适配了ipv6的截图甚至视频,视频传到youtoobe,群里面有网友啥都没修改,只是在拒绝的描述哪里reply 一下就通过了. 详情参考这个链接,有详细例子如何拍视频,点击查看
如果上面的的方案都不能解决,那么你就需要下面专业的人帮你了,好像要收费啊,当免费方案都不能解决的时候,哥只能劝你花点小钱让专业的人员帮忙了 ,不怕找老板出!!!,6box肯定有发票吧,买了服务把发票给老板报! 先花299 买个7天的把app搞上线, 作为公司几百块钱相对于app 能上线是小case!! 【链接】转给您身边苹果开发者,IPv6被拒如何破?这是一篇很好的教程!屡次被绝拒绝的,可以看看这篇教程! IPv6解决办法: 专门解决ipv6问题的的网站,6box专门解决ipv6被拒的问题推荐下,
苹果邮件描述
苹果被拒邮件内容:
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.
1)如果你的应用根本不需要使用后台定位,根本不需要定位功能,但是还是在.info.plist 里面添加了 location in the
UIBackgroundModes key ,那么在plist文件里面移除 UIBackgroundModes key 就可以,这中情况较少,新手小白会犯这种错误
2)如果你的应用使用了后台定位模式,而且你的应用只需要短暂的获取少数的用户的位置,比如美团,新闻类的应用需要
获得当前用户的所在城市,,这种情况没必要使用后台定位,这种情况使用后台定位被拒绝,只需要去掉.plist 的文件中的UIBackgroundModes
3)你的应用真的需要使用后台定位,比如考勤打卡类的应用,需要跟踪货车车司机的实时位
置,或者跑步软件之类的应用,那么你不能只是实时获取到用户的无数的定位点传到服务器,而APP没有任何界面展示这些定位数据,这种情况苹果会回复如果没有使用必<br>要使用后台定位需要移除.plist的UIBackgroundModes key ,如果真的需要后台定位需要more feature(更多细节)
,这些更多细节怎么实现?大家观察
appstore 的可以使用后台定位的软件,基本上有一个共同的特点,他们后台定位的数据要么有一个绘制的轨迹,或者有一个界面展示出所有定位的点,具体详情可以参考
红圈营销(考勤类的app),他们后台定位的点用tableView 展示出来了,每一个cell就是一个定位的数据,这些数据包含定位的地点(比如北京市天安门2号楼),时间到
几分几秒.所以如果你想实现后台定位功能也需要通过表格或者轨迹展示出后台定位的数据,再提交审核的时候告诉苹果那个功能需要后台定位,具体展示后台定位的
数据在那个界面,最后需要Continued use of GPS running in the background can dramatically decrease <br>battery life
加到app描述里
面,可以参考滴滴出行的描述,否则也会被拒绝
3.1)最近有一哥们因为需要把订单准确的投放给用户,然后确定用户当前就是在订单投放的范围内才能收到一
条推送,需要使用后台定位,被拒绝了几次了,现在他想了一个方案,做一个导航,然后那个backgroundmode就能通过了。然后那个定位的问题也能用了,这也是一种可
以试试的方案,后续会持续跟踪他的解决方案 ,将是否有效告诉大家,最后验证是通过审核了,中间苹果发了邮件要这个哥们告诉在哪里使用了定位,这哥们回了就通过了,这也是一种实现思路总之如果想使用第三种方式解决问题,一定让苹果感觉你有必要使用后台定
位,而不是偷偷地把定位点发给服务器,其他的啥界面啥功能都没有,增加轨迹(学跑步软件),增加列表显示定位数据(学红圈营销),增加导航也可以,有界面
和功能让苹
果感觉你真的需要使用后台定位功能,提交的时候一定要告诉苹果那个功能使用了后台定位
4)如果让用户可以使用后台定位,又不想展示定位数据,就用企业
证书发布,企业签名的ipa发布到蒲公英或者fir.im平台,让用户下载,这样就可以绕过苹果的审核,放肆的使用后台定位了,此方法只适合用户量在3W以下的app,超过3W的用户量
这么干会被封企业证书,更多企业证书相关的问题参考我的博客:企业账号科普15问15答和交流,我负责维护的另外一个
付费的考勤类的app ,为了绕过苹果后台定位审核,另外一个项目比较忙,不想花更多时间在这个付费的考勤类的app上,就是用的企业账号发布的,从此愉快的开启后台定位
5)还有一种方案和老板或者产品经理聊聊,app 是不是一定得要后台定位这个功能,这个功能用户不喜欢,后台持续定位涉及隐私和耗电,我看到至少有3例最后是老板妥协了,主动放弃后台定位的功能
6)可以先传一个不带后台定位的版本,再慢慢解决后台定位的问题,这样只是少一个后台定位的功能,其他的功能用户还可
以正常使用,作为缓兵之计这个方案也是可行的
苹果邮件描述
苹果被拒邮件内容:
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.
苹果邮件描述
Thank you for your response.
After reviewing your reply, it seems your question would be best addressed by Apple Developer Technical Support , who can provide discrete code-level assistance. (你的问题最好提交给通过苹果工程师解决)
To ensure the DTS engineers can best help you, be sure to include any available symbolicated crash logs, screenshots, or steps to reproduce the issues encountered in your request.(为了更好的保证工程师帮助你,你需要提供崩溃日志,截图,重现问题的步骤)
For information on how to read or symbolicate a crash log, please see Tech Note TN2151 Understanding and Analyzing iPhone OS Application Crash (关于如何阅读崩溃日志参考ech Note TN2151 Understanding and Analyzing iPhone OS Application Crash)
by:王员外,8824766
如上英文所述:你的问题最好提交给通过苹果工程师解决,如何联系苹果,网上电话或者邮件,为了更好的保证工程师帮助你,你需要提供崩溃日志,截图,重现问题的步骤,关于如何阅读崩溃日志参考ech Note TN2151 Understanding and Analyzing iPhone OS Application Crash(此文档估计看不懂),如何阅读崩溃日志参考:iOS崩溃crash大解析
删掉重建应用,修改应用bundleid,重新上传,即可提交!qq群网友提供 的解决方案这是一个bug,待苹果修复,
那些商品离不开内购:视频(很多公司卖课程视频),会员,游戏钻石,游戏币,直播礼物等虚拟物品等,卖药卖实物无需走内购
方案1)审核的时候 把需要视频播放的隐藏,通过后再放出来,此招有风险,可能会受到警告信,甚至被封号,如果用户量小就无所谓了,先把app 搞上架! 方案2)学习58同城,让用户去网站购买产品,买了产品的账号到移动端使用功能 方案3)就老老实实的做内购吧.莫别的招了
【链接】苹果审核通过后包体大了200多MB!都是Xcode7的 这个链接可以解答大家的你问
苹果邮件描述