Apple은 iOS 앱에서 비공개 또는 문서화되지 않은 API 사용을 금지합니다. 비공개 또는 문서화되지 않은 API 메소드와 이름이 같은 메소드에 대한 호출은 호출되는 메소드가 사용자가 직접 정의한 것이더라도 비공개 API 사용으로 플래그 지정됩니다.
App Loader는 초기 스캔을 수행하여 메서드 이름, 인스턴스 변수 액세스 및 개인 메서드 이름이있는 @selector 사용을 확인합니다. App Loader가 항상 훌륭한 작업을 수행하는 것은 아닙니다. 소스 파일이 많을수록 생성 된 API 분석 파일이 "너무 크다"는 경고가 표시 될 가능성이 높습니다.
다행히도 경고에도 불구하고 신청서를 제출할 수 있습니다. Apple은 내부적으로이를 확인하고 중복 된 이름으로 인해 문제가 발생하면 다시 검토 과정을 거쳐야합니다.
Erika Sadun은 사용자를 위해 스캔을 수행 할 API Kit라는 앱을 만들려고했지만 작업을 포기하고 웹 사이트에서 응용 프로그램의 흔적을 제거한 것으로 보입니다.
Chimp Studios 는 동일한 작업을 수행하기 위해 App Scanner 를 만들었지 만 2011 년 이후로 업데이트되지 않았습니다. 안타깝게도 대규모 프로젝트 (CocoaPods의 추가 포드가 많은 프로젝트 포함)의 경우 현재 (2014 년) 좋은 것은 없습니다. 개인 API 메소드 및 인스턴스 이름과 충돌하지 않도록 사전에 이름을 지정하는 것 외에이 문제를 해결하는 방법입니다.
Apple의 Cocoa Naming Conventions 에 대해 사전에 배우고 예상 할 수 있습니다. 그것은 미래의 두통을 줄일 것입니다. 그러나 Apple이 네임 스페이스와 같은 것을 도입 할 때까지 우리는 때때로이 문제에 직면 할 수 있습니다.
"잘못된 바이너리"오류는 여러 원인에서 발생할 수 있지만 App Loader에서 생성 한 API 분석 문서와는 전혀 관련이 없습니다.
스캔을해도 비공개 / 문서화되지 않은 API 사용에 대한 금지를 피할 수있는 방법이 여전히 있다는 것을 알아야합니다. :)