Jak wykryć i uniknąć korzystania z prywatnych interfejsów API w bibliotekach innych firm

Teraz, gdy Apple uruchamia jakąś statyczną analizę w celu automatycznego sprawdzenia użycia prywatnego interfejsu API, wiele osób zostało złapanych z powodu biblioteki Three20. Używam innej biblioteki innej firmy (którą kompiluję sam z kodu) i chciałbym automatycznie kontrolować ją pod kątem użycia prywatnego interfejsu API przed przesłaniem do Apple, dzięki czemu mogę wyeliminować / ponownie napisać te części.

Jeśli ucieknęnm w moim pliku wykonywalnym otrzymuję listę symboli i widzę tam symbole, których nie używam. Na przykład widzę _AudioServicesPlaySystemSound, a jeśli szukam „AudioServicesPlaySystemSound” w XCode, nie otrzymuję żadnych wyników. Czy jest jakiś sposób na automatyczne rozróżnianie połączeń z prywatnymi interfejsami API, na przykład zauważam, że Apple ma zwyczaj nazywania ich początkowym podkreśleniem.

Jednakże: jeśli świadomie zawrę wywołanie do prywatnego interfejsu API, nie pojawi się on na wyjściunm, ale pojawia się, jeśli biegnęstrings na pliku binarnym. Na tej podstawie, jednym z pomysłów, jakie miałem, było skompilowanie ogromnej listy wszystkich prywatnych wywołań API w ogromny stół i automatyczne wyszukanie ich w wynikach łańcuchów. Jeszcze tego nie zrobiłem.

Czy ktoś ma jakieś wskazówki, jak automatycznie przechwytywać te rzeczy, więc przejdę tylko raz przez proces recenzji?

questionAnswers(2)

yourAnswerToTheQuestion