今天早上起床发现我们的app被下架了,奇怪的时候我们昨晚提交审核的新版本竟然审核通过了,结果一发布新版本又遭下架了。。。
苹果给的反馈如下:
We are writing to let you know about new information regarding your app currently live on the App Store.
Upon re-evaluation, we found that your app is not in compliance with the App Store Review Guidelines. Specifically, we found:
Performance - 2.5.2
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.
For this reason, your app will be removed from sale on the App Store at this time.
Deliberate disregard of the App Store Review Guidelines and attempts to deceive users or undermine the review process are unacceptable and is a direct violation Section 3.2(f) of the Apple Developer Program License Agreement. Continuing to violate the Terms & Conditions of the Apple Developer Program will result in the termination of your account, as well as any related or linked accounts, and the removal of all your associated apps from the App Store.
Future submissions of this app may require a longer review time, and this app will not be eligible for an expedited review.
If you have any questions about this information, please reply to this message to let us know.
大致原因就是说我们使用热更新、调用了一些私有方法或功能隐藏,排除掉热更新和功能隐藏,于是在我们工程里对所有的库文件排查,发现以下4个Framework中均调用了dlsym()
Bugly
Fabric
Crashlytics
NIMSDK_LITE
具体排查方式如下:
在终端中进入到framework根目录(或.a文件的上层目录)下
输入如下命令:
nm -n Bugly >> Bugly.text
在新输出的Bugly.text中查找是否使用了苹果禁用的私有方法dlopen、dlsym, respondsToSelector、performSelector、 method_exchangeImplementations
但还不确定我们此次下架是否是因为我们使用的第三方库中使用了这些私有的方法导致,只能先删除有嫌疑的库文件再上架看看是否有效。