由于某些原因,昨天晚上凌晨 1 点才把服务器更新完成,然后提交 iOS 版本到 iTunes Connect 审核。不过提交之后我总有一种不祥的预感,总感觉会被拒绝。
虽然我很不愿意相信我的预感,但是当我上班打开 iTunes Connect 后,看到了 app 的拒绝提示
拒绝信息如下:
2017年6月1日 上午8:16
发件人 Apple
2. 1 Performance: App Completeness
2. 5 Performance: Software Requirements
Guideline 2.1 - Performance - App Completeness
We discovered one or more bugs in your app when reviewed on iPhone and iPad running iOS 10.3.2 on Wi-Fi connected to an IPv6 network.
Specifically, your app displayed a network error message upon launch and we were unable to access your app's features.
Please see attached screenshots for details.
Next Steps
To resolve this issue, please run your app on a device while connected to an IPv6 network (all apps must support IPv6) to identify any issues, then revise and resubmit your app for review.
If we misunderstood the intended behavior of your app, please reply to this message in Resolution Center to provide information on how these features were intended to work.
For new apps, uninstall all previous versions of your app from a device, then install and follow the steps to reproduce the issue. For updates, install the new version as an update to the previous version, then follow the steps to reproduce the issue.
Resources
For information about supporting IPv6 Networks, please review Supporting IPv6 DNS64/NAT64 Networks and About Networking.
Guideline 2.5.2 - Performance - Software Requirements
Your app, extension, or linked framework appears to contain code designed explicitly with the capability to change your app’s behavior or functionality after App Review approval, which is not in compliance with App Store Review Guideline 2.5.2 and section 3.3.2 of the Apple Developer Program License Agreement.
This code, combined with a remote resource, can facilitate significant changes to your app’s behavior compared to when it was initially reviewed for the App Store. While you may not be using this functionality currently, it has the potential to load private frameworks, private methods, and enable future feature changes. This includes any code which passes arbitrary parameters to dynamic methods such as dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations(), and running remote scripts in order to change app behavior and/or call SPI, based on the contents of the downloaded script. Even if the remote resource is not intentionally malicious, it could easily be hijacked via a Man In The Middle (MiTM) attack, which can pose a serious security vulnerability to users of your app.
Next Steps
To resolve this issue, please perform an in-depth review of your app and remove any code, frameworks, or SDKs that fall in line with the functionality described above and resubmit your app’s binary for review.
概括来说,苹果指出我们的 app 存在着两个问题:
1、我们 app 在 ipv6 的网络环境下无法正常打开。(苹果还给我们提供了两张截图)
2、检测到我们 app 中有类似于热更新的 api ,用于动态修改 app 的内容配置等。
我们并不是第一个碰到这样问题的团队,在开发群中早就有很多人碰到过这样的问题。下面来说一下我们的解决过程。
1、用自己的 iMac 共享 WiFi 模拟 ipv6 环境从新测试了一遍 app 。(如何使用 iMac 共享 WiFi 模拟 ipv6 环境)经测试我们这里使用 Ipv6 网络打开我们 app 是没有问题的。
2、自从上次苹果大力打击热更新之后,我们早已经把热更新的 SDK 移除掉了,不过由于业务需要,这个版本中引入了百度的SDK,不过也不确定是不是由于这个 SDK 引起的,也有可能是苹果误测了。我们决定先不管这个问题,申述一下再说。
申述文案如下:
尊敬的苹果审核委员会,您们好!
关于本次“南方Plus”app在IPV6环境下无法启动进入app的问题,我们进行了测试,测试平台:iPhone6 PLUS、iPhone6s、iPhone7 PLUS,系统版本:iOS 10.3.2,网络环境:IPV6,测试地点:中国-广州,在此环境下,我们可以正常进入app,包括第一次安装app(卸载旧版本的)和直接升级app(覆盖安装)两种情况下,均能正常使用app的各项功能。附件为本次测试的一些截图。审核委员在昨天审核我们app的时候,我们昨晚服务器是有出现异常,很可能正好这个时候审核委员正在审核我们的app,造成连接不上服务器,出现无法进入app的情况,现后台已抢修恢复,可以正常访问。恳请审核委员,再次审核我们的app,重新验证,如还有问题,我们一定改正,谢谢!
此外,审核委员还提到,我们的app有使用私有API和脚本下发功能的嫌疑,对于这一点我们已经仔细检查过代码,在前几个版本将原来使用的热更新功能全部移除掉,目前不存在这个问题,如果审核委员有检测到我们使用了这些违规的方法,恳请审核委员给我们提供具体违规的位置和信息,方便我们快速改进,谢谢!
祝各位审核委员工作顺利!
至此,申述告一段落,接下来就是等。。。。。。。。。。。等苹果有回复或者通过之后接着更新本文。
(前两天忙,现在补上-----6月4号)
隔天有收到了苹果的拒绝信息,和当初的第二点一样,还是说我们有使用热更新相关的东西;虽然审核没通过,但是说明我们的 申述也成功了一半,ipv6 的问题已经解决了;接下来好好检查一下涉及到热更新的 SDK ,我首先想到的还是百度统计的那个 SDK,又在网上查了一下关于百度统计被拒的信息
问题果然是出现在这里,项目使用的是4.3.0版本,去百度统计官网下载最新版本 SDK 更新,提交审核,第二天审核通过了,这次提交完美完成。