在知乎上留下了联系方式,有一些人问我审核被拒绝怎么弄,特别是后台定位被拒绝的,为了解决这些审核被拒绝的问题我特地建了一个仓库,a collection to solve app store review problem (appstore 审核遇到问题和解决方案的汇总) github地址点我 appstore 审核遇到有问题欢迎给我提issue 或者咨询加appstore审核问答群369250107,尽可能的免费指导:,我汇总到这,并给出解决方案,如果对你有用敬请Star,谢谢
app审核指南中英文对照版
本文内容
- 后台定位被拒绝的终极解决方案(四种情况来说明)
- ipv6 被拒绝解决方案
- 广告标示选择错误被拒绝解决方案
1 | 问题描述 :ipv6被拒 |
---|---|
ipv6 被 拒 |
被拒的描述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. |
解决方案 | 解决方案支持ipv6 1)搭建ipv6 环境,搭建好的ipv6 ,环境会有一个共享wifi, 具体如何搭建ipv6测试环境参考本地如何搭建IPv6环境测试你的APP 2)app连上搭建好的共享wifi测试你的app,会发现某些 模块无法连接网络, 更换相应的模块即可,一般需要更换两种模块有两种: 2.1)第三方SDk 2.2)比较老的网络请求函数,比如使用ASI或者AFN的版本太低,使用最新的AFN即可解决问题 需要更换那些SDK 可以参考我的博客 适配IPV6需要替换的第三方SDK 3)如果你的友盟,shareSDk是6.1号之前集成的,一定要去更换这些SDK,6.5号左右友盟出了最新的SDk适配ipv6 |
2 | 问题描述: 后台定位被拒 |
---|---|
被 拒 描 述 |
苹果被拒邮件内容: 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没有任何界面展示这些定位数据,这种情况苹果会回复 如果没有使用必要使用后台定位需要移除.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描述里面,否则也会被拒绝4)如果让用户可以使用后台定位,又不想展示定位数据,就用企业证书发布,企业签名的ipa发布到蒲公英或者fir.im平台,让用户下载,这样就可以绕过苹果的审核,放肆的使用后台定位了,此方法只适合用户量在3W以下的app,超过3W的用户量这么干会被封企业证书,更多企业证书相关的问题参考我的博客:企业账号科普15问15答和交流,我负责维护的另外一个付费的考勤类的app ,为了绕过苹果后台定位审核,另外一个项目比较忙,不想花更多时间在这个付费的考勤类的app上,就是用的企业账号发布的,从此愉快的开启后台定位 |
3 | 问题描述: 广告勾选错误被拒,一妹纸提交审核的时候,苹果问是否有广告,结果这妹纸想以后可能有广告,勾选了,结果被拒了 |
---|---|
被 拒描述 |
苹果被拒邮件内容: 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没有做广告,是否有广告的勾,就不要打勾了如图片中所示,重新上传! 就可解决 |
- 作者开发经验总结的文章推荐,持续更新学习心得笔记
Runtime 10种用法(没有比这更全的了
成为iOS顶尖高手,你必须来这里(这里有最好的开源项目和文章)
iOS逆向Reveal查看任意app 的界面
JSPatch (实时修复App Store bug)学习(一)
iOS 高级工程师是怎么进阶的(补充版20+点)
扩大按钮(UIButton)点击范围(随意方向扩展哦)
最简单的免证书真机调试(原创)
通过分析微信app,学学如何使用@2x,@3x图片
TableView之MVVM与MVC之对比
使用MVVM减少控制器代码实战(减少56%)
ReactiveCocoa添加cocoapods 配置图文教程及坑总结
网友评论