Mam zamiar przesłać moją pierwszą aplikację na Maca do Apple Store
Naprawiono wszystkie błędy walidacji ikony, kategorii ...
Ale potem przeszedłem walidację z ostrzeżeniem:
The resulting API analysis file is too large. We were unable to validate your API usage prior to delivery. This is just an informational message.
Moje przesłane pliki zostały odrzucone z powodu: „Nieprawidłowy plik binarny”
Czy ktoś ma doświadczenie w tej sprawie?
UPDATE: to ostrzeżenie nie jest powodem odrzucenia, może to być problem z archiwizacją aplikacji. Udało mi się udostępnić moją aplikację do sklepu.
Więc możemy to spokojnie zignorować.
Odpowiedzi:
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. :)
źródło
Po pierwszym pojawieniu się tego problemu w moim pierwszym projekcie Swift wygląda na to, że najczęstszą odpowiedzią na to pytanie jest teraz:
Jeśli używasz Swift 2.xi XCode 7, pojawi się ten błąd. Po prostu to zignoruj.
[AKTUALIZACJA: Wydaje się, że wdrożenie XCode 7.3 i iOS 9.3 rozwiązało ten problem!]
źródło
Oto prosty sposób na obejście ich ... zapisz nazwę selektora w odwrotnej kolejności, na przykład "dlroWolleH", a następnie odwróć łańcuch przed wywołaniem metody.
Jeśli Apple zrozumie, możesz je zaszyfrować.
źródło