Apple zabrania używania prywatnych lub nieudokumentowanych interfejsów API w aplikacjach na iOS. Wszelkie wywołania metod, które mają taką samą nazwę jak prywatne lub nieudokumentowane metody API, będą oznaczone jako prywatne użycie interfejsu API, nawet jeśli wywoływana metoda jest czymś, co sam zdefiniowałeś.
App Loader wykonuje wstępne skanowanie, sprawdzając nazwy metod, dostęp do zmiennych instancji, a nawet użycie @selectora z prywatnymi nazwami metod. Narzędzie ładujące aplikacje nie zawsze wykonuje dobrą robotę, a im więcej masz plików źródłowych, tym większe prawdopodobieństwo, że wyświetli ostrzeżenie, że wygenerowany przez niego plik analizy interfejsu API jest „za duży”.
Na szczęście mimo ostrzeżenia nadal możesz złożyć wniosek. Apple sprawdzi to wewnętrznie, a jeśli coś zostanie odrzucone z powodu nakładających się nazw, będziesz musiał ponownie przejść przez proces przeglądu.
Erika Sadun próbowała stworzyć aplikację o nazwie API Kit, która przeprowadziłaby skanowanie za Ciebie, ale wydaje się, że porzuciła swoją pracę i usunęła wszelkie ślady aplikacji ze swojej strony internetowej.
Chimp Studios stworzyło App Scanner, aby zrobić to samo, ale nie był aktualizowany od 2011 roku. Niestety, w przypadku dużych projektów - w tym projektów z dużą ilością dodatkowych strąków z CocoaPods - nie ma obecnie (2014) dobrego sposób rozwiązania tego problemu inny niż proaktywne nazywanie rzeczy w taki sposób, aby nie kolidowały z prywatnymi metodami API i nazwami instancji.
Możesz aktywnie poznawać konwencje nazewnictwa kakao firmy Apple i próbować przewidywać. To zmniejszy przyszłe bóle głowy. Dopóki Apple nie wprowadzi czegoś w rodzaju przestrzeni nazw, od czasu do czasu możemy napotykać ten problem.
Błąd „nieprawidłowy plik binarny” może mieć wiele przyczyn, ale jest całkowicie niezwiązany z dokumentem analizy interfejsu API utworzonym przez narzędzie do ładowania aplikacji.
Powinieneś wiedzieć, że nawet przy skanowaniu nadal istnieją sposoby obejścia zakazu używania prywatnych / nieudokumentowanych interfejsów API. :)