Como detectar e evitar o uso de APIs privadas em bibliotecas de terceiros

Agora que a Apple está executando algum tipo de análise estática para verificar automaticamente o uso privado da API, um número de pessoas foi pego por causa da biblioteca do Three20. Eu uso outra biblioteca de terceiros (que eu compilar do código) e gostaria de auditá-la automaticamente para uso privado da API antes de enviar para a Apple, para que eu possa eliminar / reescrever essas partes.

Se eu corrernm No executável do meu aplicativo, recebo uma lista de símbolos e vejo símbolos que não uso. Por exemplo, vejo _AudioServicesPlaySystemSound e, se eu pesquisar por "AudioServicesPlaySystemSound" no XCode, não obtenho resultados. Existe alguma maneira de discriminar automaticamente as chamadas para APIs privadas, por exemplo, percebo que a Apple tem o hábito de nomeá-los com um sublinhado inicial.

No entanto, se eu incluir deliberadamente uma chamada para uma API privada, ela não aparecerá na saída denm, mas aparece se eu corrostrings no binário. Com base nisso, uma ideia que tive foi compilar uma lista enorme de todas as chamadas de API privadas em uma tabela grande e procurá-las automaticamente na saída de strings. Eu não fiz isso ainda.

Alguém tem alguma dica sobre como capturar esse material automaticamente, então estou apenas passando pelo processo de revisão uma vez?

questionAnswers(2)

yourAnswerToTheQuestion