2016-09-09 16 views
7

Ta sama aplikacja została już zatwierdzona dwa razy wcześniej, ale po kilku zmianach, jak ustawić widok obrazu i ponownie składając aplikację Apple odrzucił moją aplikację dla następujących błędów:iOS odrzuconych: API niepubliczne

wydajności - 2.5.1

Twoja aplikacja korzysta lub referencje następujące API niepubliczne:

setResult: nextStarIndex

wykorzystanie API niepublicznych nie jest dozwolona na App Store B ecause może to doprowadzić do pogorszenia wrażenia użytkownika w przypadku zmiany tych interfejsów API.

W jaki sposób użytkownik może przetestować swoją aplikację, jeśli zawiera prywatne interfejsy API?

Nie używam kodu setResult: i nextStarIndex w dowolnym miejscu mojego projektu, więc co mam zrobić?

+0

Czy masz zależności od innych podmiotów, które mogą używać metody o nazwie tak? – HAS

+0

Używam facebook api i nie wiem, że fb używa tej nazwy metody, czy nie @HAS –

+0

Może to być problem, zobacz https://github.com/googlevr/gvr-unity-sdk/issues/296 – HAS

Odpowiedz

7

Ostatni raz napotkałem to z powodu kolizji przestrzeni nazw między metodami w moim kodzie a metodami prywatnymi w API Cocoa. Można również użyć grep aby dowiedzieć się dokładnie, gdzie używasz tych selektorów:

grep -R 'setResult:' * 
+0

uratował mi życie! Dziękuję Ci! :-) –

0

Uruchomienie otworu na wyjściu.

Przejdź do katalogu build:

NazwaAp/build/AppName.build/release-iPhoneOS/AppName.build/Przedmioty normalny/armv6/

i uruchomić

ciągi NazwaAp | grep 'setResult' , aby dowiedzieć się, który framework użył tej konkretnej metody.

1

Jeśli nie znaleźć odniesienie wyszukując swój projekt, kwestia jest najbardziej likeley w skompilowanej biblioteki osób trzecich. Możesz użyć "nm", aby wyświetlić symbole w skompilowanych bibliotekach.

Jedna z moich aplikacji została odrzucona z dokładnie tej samej przyczyny. Zaktualizowałem swój projekt za pomocą najnowszego pakietu SDK Facebooka (w tym czasie 4.15.1), a aplikacja przesłała recenzję.

3

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 korzysta lub referencje następujące API niepubliczne: cancelAction :, defaultInstance"

Moi rozwiązane Kroki:

(1) grep -R 'defaultInstance' *

enter image description here CrashReporterSDK pasuje, więc go usunąć.

(2) grep -R 'cancelAction:' * dopasowuje niektóre nazwy funkcji projektu. Ja też je rozwiązuję.

(3) Proponuję, aby przed użyciem "grep -R" usunąć "pliki z dokumentami budowy" projektu, aby "grep -R" dał nam więcej przydatnych informacji.

zakończeniu

0

Jeśli trzeba sprawdzić w aplikacji przejść tylko do ścieżki katalogu projektu w terminalu i spróbuj poniżej polecenia.

grep -R 'setResult:' . 
Powiązane problemy