Apple이 개인 API 사용을 자동으로 확인하기 위해 일종의 정적 분석을 실행 했으므로 Three20 라이브러리로 인해 많은 사람들이 발견되었습니다. 필자는 코드에서 직접 컴파일 한 타사 라이브러리를 사용하며 Apple에 제출하기 전에 비공개 API 사용을 자동으로 감사하여 해당 부분을 제거/다시 작성할 수 있습니다.제 3 자 라이브러리에서 개인 API 사용을 탐지하고 피하는 방법
내 응용 프로그램 실행 파일에 nm
을 실행하면 기호 목록이 표시되고 거기에 사용하지 않는 기호가 표시됩니다. 예를 들어 _AudioServicesPlaySystemSound를보고 XCode에서 "AudioServicesPlaySystemSound"를 검색하면 결과가 표시되지 않습니다. 자동으로 개인 API에 대한 호출을 식별 할 수있는 방법이 있습니까? 예를 들어 Apple이 초기 밑줄로 이름을 지정하는 습관이 있음을 알 수 있습니다.
그러나 개인 API에 대한 호출을 의도적으로 포함하면 nm
의 출력에 나타나지 않지만 이진에서 strings
을 실행하면 표시됩니다. 이를 바탕으로 내가 가진 한 가지 아이디어는 모든 개인 API 호출의 거대한 목록을 거대한 테이블로 컴파일하고 문자열 출력에서 자동으로 검색하는 것이 었습니다. 나는 아직 그 짓을하지 않았다.
아무도이 물건을 자동으로 잡는 방법에 대한 조언이 없으므로 한 번만 검토 과정을 거 칩니 까?
그들은 Three20에 반대합니까? 실제로 iPhone 용 Facebook 앱을 만든 개발자가 작성한 것입니다. 귀하의 애플 리케이션이 Three20으로 인해 거부 된 경우, Facebook 응용 프로그램도 있어야합니다 ... Heh. 그냥 선생님 ;-) –
예 ... http://groups.google.com/group/three20/browse_thread/thread/c442af6e39a918b0/6d5046771539d139 –
다음에 Facebook에서 업데이트를 제출하면 거부 될 것이라고 생각합니다. Apple 정책을 준수하는 최신 버전을 사용하지 않습니다. – bpapa