Coder Social home page Coder Social logo

hutuyingxiong / solve-app-store-review-problem Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wg689/solve-app-store-review-problem

0.0 2.0 0.0 11.64 MB

a collection to solve app store review problem (ipv6,后台定位等审核问题的终极解决方案汇总)

Objective-C 96.82% Shell 3.18%

solve-app-store-review-problem's Introduction

#ipv6被拒绝,后台定位被拒绝,免费的终极解决方案,大家齐心协力让天下没有解决不了的ipv6问题! 文中有不妥的欢迎提issue或者去审核问答群找群主反馈,我会重视每一个意见!

最近本仓库被广大网友star,每一个star的网友github账号我都看得到,在此表示谢谢!你们的关注和star我会坚持更新!

#上架前认真阅读app审核指南 app审核指南中英文对照版
苹果审核的电话:14089961010,被拒绝了不用想着去给苹果打电话,网上的电话打过去是不解决审核问题的,笔者以前打过,审核问题只有他们心情好的时候,给你打电话你接听,你无法因为被拒了主动联系到苹果审核人员!
appstore 审核遇到有问题欢迎给我提issue 或者咨询appstore审核问答群,问问题请复制苹果拒绝的内容到群(类似下面的被拒描述的内容),更方便别人帮助解答,369250107`(群较活跃,欢迎加入)

敬请右上角Star,你的star是我持续更新的动力,(据说star的人,提交都过了 哈哈哈😃~~~)谢谢

######开玩笑的,祝大家都早日通过,免得老板天天催催......! #目录:

[审核]ipv6 最全的拒绝解决方案(QQ群至少有10位ipv6被拒绝了,都是用这个方案解决了)

[审核]后台定位被拒绝的终极解决方案(6种情况说明,让天下没有解决不了的后台定位问题)

[审核]没有填写耗电的描述被拒绝

[审核]广告勾选错误被拒

[审核]app崩溃(Crash)问题

[问题]app下载速度很慢的问题啊,我们上线的应用下载好慢?

[问题]提交审核无法选择文件

[审核]卖商品不想走内购怎么办?(内购被拒绝)

[问题]苹果审核通过后包体大了200多MB?怎么回事?


#📣问题:ipv6被拒绝 (近2个月苹果审核拒绝的app,据笔者估计ipv6占75%以上,内购占10%,其他占15%)

苹果邮件描述
被拒的描述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....** 我见过超过10种描述了,我就不贴了,只要苹果拒绝邮件含有ipv6就需要适配ipv6,就需要搭建ipv6 环境测试自己的app **

##解决方案:


解决方案上面的描述不一样, 解决方案都一样,都需要支持ipv6 **只要苹果拒绝邮件含有ipv6就需要适配ipv6,就需要搭建ipv6 环境测试自己的app ,拒绝邮件没有包含"ipv6"但是告诉你网络加载失败,加载不出来,登录就崩溃等现象,**如被拒描述6所示!为啥?被拒描述6所示:"说在9.3.4下无法连接",最近啥问题会导致一大片的app无法连接?ipv6 啊,既然有无法连接的问题,是不是该检查下ipv6 是否ok?下面告诉你如何检查!

###1)搭建ipv6 环境


搭建ipv6 环境,搭建好的ipv6 ,环境会有一个共享wifi, 具体如何搭建ipv6测试环境参考本地如何搭建IPv6环境测试你的APP
如果搭建ipv6 遇到问题,热点连不上,别人教程的选项我没有怎么办? 多找找 如何搭建ipv6的帖子(我第一次搭建看了好几篇帖子,试了好几种方法,搭建ipv6环境需要的网络可以是插的网线,也可以是wifi),如果都不行这里有很多如何搭建ipv6 的文章,你需要做的是注意一些细节问题,比如苹果系统是10.11.5 以上,测试的手机最好不是iphon5 以下,笔者亲测iphone5连不上ipv6,是个例还是普遍现象有待进一步考证 #####1.1)检查服务器是否支持ipv6(这是一个大问题啊) 笔者公司用的阿里云,6.8号以后项目上线,服务器一行代码也没就修改项目照常上线,自己公司搭建的和其他小服务器厂商需要重点关注下,比如拍云以前就不支持,现在支持了.如果使用第三方服务器请咨询服务器提供商,是否适配ipv6,自己公司的服务器人员需要怎么修改,询问有时候可以快速获得最佳的答案!
如果搭建的过程中试了无数的方法,ipv6访问app服务器访问不了,你需要测试下你的服务器是否支持ipv6,怎么验证参考这三篇文章中一篇吧!
简单的理解(已验证,项目已经上线),
另外这个网址也可以测试ipv6连接是否正常,
ipv6测试 这3个测试可以进行ipv6 测试 大家可以选其中一个试试 #####1.2)服务器不支持ipv6,怎么解决(群里面有部分网友问到) 让服务器开发人员修改到上面的测试ipv6通过为止,如果服务器不会修改怎么办?找专业的人员帮忙,有可能需要购买中专服务,本解决方案的花钱找人帮忙部分有介绍.关于ipv6审核给你点借鉴此文介绍了一些服务器如何适配ipv6,需要添加aaaa中转,这种中转有付费和免费的,详情见链接原文!更多关于ipv6的原理,服务器如何支持ipv6,如何花钱让别人使你的服务器是否支持ipv6,请参考这篇文章

###2)app连上搭建好的共享wifi测试你的app,每个界面都点一下!


app连上搭建好的共享wifi测试你的app,会发现某些 模块无法连接网络, 更换相应的模块即可,让测试人员把所有的模块功能都点一下,最好在搭建好的ipv6下使用iOS9.3.0以上的系统测试,苹果审核使用iOS9.3.0以上的系统审核,这样就会某些模块网络出现无法联网的异常或者崩溃,一般需要更换两种模块 #####2.1)更换第三方SDk 需要更换那些SDK 可以参考我的博客 适配IPV6需要替换的第三方SDK
如果你的友盟,shareSDk是6.1号之前集成的,一定要去更换这些SDK,6.1号后,各个SDK提供商(友盟,环信等等)陆续出了最新的SDk适配ipv6
#####2.2)比较老的网络请求函数 比如使用ASI或者AFN的版本太低,使用最新的AFN即可解决问题
注意确认:ipv6 搭建连接是否正确 ?所有功能是否在ipv6下都测试了,app安装在iphon6 以上的机器测试,iphon5 可能连不上ipv6 wifi,搭建ipv6 可以使用mac连接网线和mac连无线,两种方法都可以试试,

#####2.3)增加通过率的小招-用VPN在美国的线路访问服务端 理论上上面这些解决方案就足够了,下面的方案不用看了,但是为了通过率再提高提高,实际上上面这些做了还是会有很大的概率被拒绝!为了增加通过率建议:用VPN在美国的线路访问服务端试一试,因为有些人在自己搭建的ipv6下可以请求数据,但是在美国的线路访问服务端IPV6无法连接,我知道的有超过5位网友遇到过VPN下美国的线路无法连接服务器,不适用VPN 测试的ipv6 是可以正常连接的.

###3)ipv6被拒后的补救措施(顺序操作哦)


如果你的应用已经搭建过ipv6测试环境,那么你就按照下面的方法解决
#####3.1)措施1 用VPN在美国的线路访问服务端试一试,因为有些人在自己搭建的ipv6下可以请求数据,但是在美国的线路访问服务端IPV6无法连接,我知道的有超过5位网友遇到过:"VPN下美国的线路无法连接服务器,不用VPN "测试的ipv6 是可以正常连接的现象"的".这里有问题你就修复这里的问题重新打包ipa提交,不是Reply哦! #####3.2)措施2 措施1中的在VPN下使用美国的线路测试发现ipv6访问服务器一切正常,苹果那边说你没适配ipv6,你拍个视频给审核人员详情参考这个链接,有详细例子如何拍视频,点击查看,最近被人咨询的比较多的问题我回答下:
问题:如何拍视频啊? 答:拿个安卓或者iOS手机拍摄.个人觉得不应该是录制屏幕,录制屏幕不能很好的反映出你适配ipv6的过程
问题:怎么拍 答:先拍你搭建环境的过程,ipv6环境搭建好了,wifi有箭头吧,ipv6 的DNS是:隔开的,iPv4 的DNS 是隔开的,手机正确连接电脑wifi的过程也需要拍摄的,这些标志你搭建ipv6环境搭建成功的画面都需要 拍,在拍的时候把自己的app所有界面(都可以加载数据)运行良好的状态拍一下
问题:拍好的视频怎么传给苹果审核人员? 答:拍好的视频传到youtwobe,(不推荐传到优酷,万一美国的审核人员没有耐心等待你的视频加载,又给你打回来 了,美国访问**的网速会比**访问**的网速要慢) 如果你重新提交新版本,就把链接贴在备注的描述 下,平时在这个描述里写这个app.如果你的app 你觉得没任何问题,不想再上传ipa包,登录苹果开发者账号 找到苹果拒绝的描述,这个描述是可以回复的(Reply),在这个Reply里面贴上你的视频链接,写上大致意思 是:"我真的适配了ipv6,我把适配和测试过程都排了,麻烦你再审一遍"的话,如果是2016年5月以前申诉比重新提交节省4-5天的时间重新进入审核,现在申诉和重新提交进入再次审核的时间区别不大,所以选择重新提交和 Reply 都可以! #####3.3)措施3 大部分是不需要措施3的,上面的这些做了还是被拒绝怎么办,措施1试过,措施2也试过,还是不管用,我只能建议你继续提交了,stakeoverflow上面有人说,自己测试了都是没问题,怎么苹果还是拒绝,苹果的工程师告诉他你就继续提交吧,这是审核人员的bug,其实这种情况国内的开发者(包括笔者)也遇到过,你明明提供了app的测试账号,他说你没提供,你回复下就好了!他们人工审核也会有失误的时候,只是这个失误被你碰到了!这就是为什么有部分网友啥都没修改,只是在拒绝的描述哪里reply 一下就通过了.


问题:被拒绝后我是Reply还是重新提交呢
Reply:是指在开发者中心的苹果拒绝描述的哪里,可以回复苹果,那里是reply 重新提交:重新填写版本号,重新填写信息,点击提交以供审核按钮. 当你修改了应用的内容的时候,比如修改了代码,修改了版本号,必须重新提交,提交最好让版本号增加,提交审核网页的中间部分还需要选择你上传的ipa,如果没做任何修改就Reply 一下.

###4)花钱找人帮忙(对ipv6无计可适的时候可以考虑)


如果上面的的方案都不能解决,那么你就需要下面专业的人帮你了,好像要收费啊,收费好,既然收了你的钱,人家肯定得有技术支持教你怎么适配吧,当免费方案都不能解决的时候,我只能劝你花点小钱让专业的人员帮忙了,6box肯定有发票吧,买了服务把发票给老板报! 先花299买个7天的服务把app搞上线, 作为公司几百块钱相对于app 能上线是小case!! 【链接】转给您身边苹果开发者,IPv6被拒如何破?这是一篇6box很好的教程!屡次被绝拒绝的,可以看看这篇教程! IPv6解决办法: 专门解决ipv6问题的的网站,6box专门解决ipv6被拒的问题推荐下,你付了费给6box,我拿不到任何报酬,我之所以推荐他们是因为他们的服务能帮助开发者,能解决开发者的痛点! ###5)致此,最全面的ipv6 解决方案诞生了,希望可以帮到大家,喜欢请star!



#📣问题: 后台定位被拒

苹果邮件描述
苹果被拒邮件内容:
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)可以先传一个不带后台定位的版本,再慢慢解决后台定位的问题,这样只是少一个后台定位的功能,其他的功能用户还可
以正常使用,作为缓兵之计这个方案也是可行的



#📣问题:没有填写耗电的描述被拒绝

苹果邮件描述
1

##解决方案: #1)添加描述的位置 添加描述的位置

#2如何描述的例子) 如何描述的例子 #3)需要在plist告诉用户的 需要在plist告诉用户的



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

苹果邮件描述
苹果被拒邮件内容:
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.

##解决方案: app没有做广告,是否有广告的勾,就不要打勾了如图片中所示,重新上传! 图片就可解决



#📣问题:app崩溃(Crash)问题

苹果邮件描述
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大解析


#📣问题:app下载速度很慢的问题啊,我们上线的应用下载好慢?

##解决方案:过段时间就好了,下载量多了就快了



#📣问题:提交审核无法选择文件

##解决方案: 删掉重建应用,修改应用bundleid,重新上传,即可提交!qq群网友提供 的解决方案这是一个bug,待苹果修复,



#📣问题:卖商品不想走内购怎么办?(内购被拒绝) 那些商品离不开内购:视频(很多公司卖课程视频),会员,游戏钻石,游戏币,直播礼物等虚拟物品等,卖药卖实物无需走内购

##解决方案: 方案1)审核的时候 把需要视频播放的隐藏,通过后再放出来,此招有风险,可能会受到警告信,甚至被封号,如果用户量小就无所谓了,先把app 搞上架! 方案2)学习58同城,让用户去网站购买产品,买了产品的账号到移动端使用功能 方案3)就老老实实的做内购吧.莫别的招了


#📣问题:苹果审核通过后包体大了200多MB?怎么回事?

##答案: 【链接】苹果审核通过后包体大了200多MB!都是Xcode7的 这个链接可以解答大家的你问



#📣问题:

苹果邮件描述

##解决方案:


敬请Star,你的star是我持续更新的动力,谢谢

solve-app-store-review-problem's People

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.