Как обнаружить и избежать использования частных API в сторонних библиотеках
Теперь, когда Apple проводит какой-то статический анализ, чтобы автоматически проверять частное использование API, многие люди были пойманы из-за библиотеки Three20. Я использую другую стороннюю библиотеку (которую я сам компилирую из кода), и я хотел бы автоматически проверять ее на предмет использования частного API перед отправкой в Apple, чтобы я мог исключить / переписать эти части.
Если я бегуnm
в моем исполняемом приложении я получаю список символов и вижу там символы, которые я не использую. Например, я вижу _AudioServicesPlaySystemSound, и если я ищу «AudioServicesPlaySystemSound» в XCode, я не получаю никаких результатов. Есть ли способ автоматически различать вызовы к частным API, например, я заметил, что у Apple есть привычка называть их начальным подчеркиванием.
Однако: если я намеренно включаю вызов в частный API, он не отображается в выводеnm
, но он появляется, если я бегуstrings
на двоичном Исходя из этого, у меня была одна идея - собрать огромный список всех частных вызовов API в огромную таблицу и автоматически искать их в выводе строк. Я этого еще не сделал.
У кого-нибудь есть какие-либо советы о том, как автоматически поймать этот материал, так что я проверяю процесс только один раз?