1、前言
最近App Store审核被拒,2. 5 Performance: Software Requirements,Guideline 2.5.2 - Performance - Software Requirements
,遇到这样的问题,回信问苹果,肯定得不到答案,苹果就是礼貌
的回复。经过一个星期的重复被拒,只能自己找问题,热更新问题,苹果拒审信一直长这样:
….
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.
…
从中找到了一些关键点:
1 | dlopen(), dlsym(), respondsToSelector:, performSelector:, method_exchangeImplementations(), |
然后在 「iOS」热更新审核被拒的解决方法 文章中,找到可以打印下第三方的.a文件看看,看有没有 dlopen(), dlsym(),命令行:
1 | nm -u libwechaat.a >> xxx.txt |
注:nm -u path
:Display only undefined symbols。更多 nm
命令可查看我之前总结的文章 Mac查看文件内容常用的命令小结