Apple 如何知道你使用了私有API

大约有三种方式

otool -L

这个工具可以清晰的列出你链接所有的库 像IO.Kit是不允许使用的

nm -u

这个工具可以清晰的列出你所有链接符号
如 C方法 OC方法

检查所有Selecter的字符串
OCClass Selector是放在一个特殊区的 所以你只要用了私有API 苹果都能检测到

如果你真的想使用私有API 用runtime解决

dlopen, dlsym

objc_getClass, sel_registerName, objc_msgSend

valueForKey; object_getInstanceVariable, object_getlvar,etc.

API检测工具 https://github.com/nomenas/APIChecker

你可能感兴趣的:(iso)