今天早上起床發現我們的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
WX20181127-134924.png
在新輸出的Bugly.text中查找是否使用了蘋果禁用的私有方法dlopen、dlsym, respondsToSelector、performSelector、 method_exchangeImplementations
WX20181127-135226.png
但還不確定我們此次下架是否是因為我們使用的第三方庫中使用了這些私有的方法導致,只能先刪除有嫌疑的庫文件再上架看看是否有效。