Cómo detectar y evitar el uso de API privadas en bibliotecas de terceros

Ahora que Apple está ejecutando algún tipo de análisis estático para verificar automáticamente el uso privado de la API, varias personas han sido capturadas debido a la biblioteca Three20. Utilizo otra biblioteca de terceros (que me compilo a partir del código) y me gustaría auditarla automáticamente para su uso privado de API antes de enviarla a Apple, para poder eliminar / reescribir esas partes.

Si corronm en mi ejecutable de aplicación, obtengo una lista de símbolos y veo símbolos allí que no uso. Por ejemplo, veo _AudioServicesPlaySystemSound, y si busco "AudioServicesPlaySystemSound" en XCode no obtengo resultados. ¿Hay alguna forma de discriminar automáticamente las llamadas a las API privadas, por ejemplo, me doy cuenta de que Apple tiene el hábito de nombrarlas con un subrayado inicial?

Sin embargo: si incluyo deliberadamente una llamada a una API privada, no aparece en la salida denm, pero se muestra si corrostrings en el binario. Basado en esto, una idea que tuve fue compilar una lista enorme de todas las llamadas API privadas en una tabla enorme, y buscarlas automáticamente en la salida de cadenas. No he hecho eso todavía.

¿Alguien tiene alguna sugerencia sobre cómo atrapar automáticamente estas cosas, por lo que solo estoy revisando el proceso una vez?

Respuestas a la pregunta(2)

Su respuesta a la pregunta