odrzucona aplikacja na iOS: Niepubliczne API
Ta sama aplikacja została już zatwierdzona dwa razy wcześniej, ale po pewnych zmianach, takich jak ustawianie widoku obrazu i ponowne przesyłanie aplikacji, Apple odrzuciło moją aplikację za następujące błędy:
Wydajność-2.5.1
Twoja aplikacja używa lub odwołuje się do następujących niepublicznych interfejsów API:
SetResult: nextStarIndex
[2]} Korzystanie z niepublicznych interfejsów API nie jest dozwolone w App Store, ponieważ może to prowadzić do słabego doświadczenia użytkownika, jeśli te interfejsy API zmiana.
Jak użytkownik może przetestować swoją aplikację, jeśli zawiera prywatne API?
Nie używam setResult:
i nextStarIndex
kodu nigdzie w moim projekcie, więc co powinienem zrobić?
5 answers
Ostatni raz spotkałem się z tym z powodu kolizji przestrzeni nazw między metodami w moim kodzie i metodami prywatnymi w Cocoa API. Możesz również użyć grep
, aby dowiedzieć się, gdzie dokładnie używasz tych selektorów:
grep -R 'setResult:' *
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-12 14:17:22
Miałem taką samą sytuację z Tobą. Teraz aplikacja jest gotowa do sprzedaży. Mam nadzieję, że pomogę ci rozwiązać ten problem.
"Twoja aplikacja używa lub odwołuje się do następujących niepublicznych interfejsów API: cancelAction:, defaultInstance "Moje rozwiązane kroki:
(1) grep -r 'defaultInstance' *
CrashReporterSDK pasuje, więc go usuwam .
(2) grep-R ' cancelAction:' * pasuje do niektórych nazw funkcji projektu. Ja też je rozwiązuję.
(3) I sugeruj, że przed użyciem "grep-r" powinieneś usunąć "Pliki dokumentów budowania" projektu, więc "grep-r" da nam więcej przydatnych informacji.
Zakończone
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-25 02:42:06
Jeśli nie znajdziesz odnośnika przeszukując projekt, problem jest najbardziej podobny do skompilowanej biblioteki stron trzecich. Możesz użyć " nm " do wyświetlania symboli w skompilowanych bibliotekach.
Jedna z moich aplikacji została odrzucona z tej samej przyczyny. Zaktualizowałem mój projekt o najnowszy Facebook SDK (w tym czasie 4.15.1), a aplikacja przeszła recenzję.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-14 08:13:59
Jeśli potrzebujesz sprawdzić w swojej aplikacji, przejdź tylko do ścieżki katalogu projektu w terminalu i spróbuj poniżej polecenia.
grep -R 'setResult:' .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-28 14:02:00
Uruchom otool na excutable.
Przejdź do katalogu build:
AppName / build / AppName.build/Release-iphoneos/AppName.build / Objects-normal/ armv6 /
And run
Strings AppName / grep 'setResult' aby wiedzieć, który framework użył tej konkretnej metody.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-12 05:51:05