Debugowanie iPhone'a: ​​jak rozwiązać problem „nie udało się pobrać zadania dla procesu”?


158

Właśnie dodałem profil aprowizacji do XCode (potrzebny do obsługi powiadomień i zakupu aplikacji), skonfigurowałem w razie potrzeby konfigurację kompilacji do dystrybucji ad hoc i próbowałem uruchomić aplikację na urządzeniu (robiłem to kilka razy w przeszłości , bez problemu).

Aplikacja jest zainstalowana, ale się nie uruchamia. Na konsoli widzę następujący komunikat:

Error launching remote program: failed to get the task for process 82.
Error launching remote program: failed to get the task for process 82.
The program being debugged is not being run.
The program being debugged is not being run.

Jeśli jednak uruchomię aplikację na urządzeniu ręcznie, działa zgodnie z oczekiwaniami. Niedawno zainstalowałem najnowszą wersję XCode 3.2 dla systemu Snow Leopard. Czy to znany błąd tej wersji XCode, czy robię coś nie tak?

EDYCJA: Działa dobrze z dystrybucją wydania przy użyciu profilu udostępniania deweloperskiego. Ponownie sprawdziłem profil aprowizacji ad hoc, aby upewnić się, że zawiera urządzenie, którego używam.


również to może pomóc: przejdź do Organizatora -> Projekty -> DerivedData usuń i wyczyść. Upewnij się, że wszystkie podpisy w Project i Target są ustawione konsekwentnie i poprawnie - to pomogło w moim przypadku ...
user387184

Odpowiedzi:


110

Miałem problemy z debugowaniem plików binarnych na urządzeniu za pośrednictwem XCode, gdy aplikacja zawiera plik Entitlements.plist, którego nie trzeba instalować na urządzeniu w celu debugowania. Ogólnie rzecz biorąc, dołączyłem ten plik do kompilacji wydań (gdzie jest to wymagane dla App Store) i usunąłem go do debugowania (więc mogę debugować aplikację z XCode). To może być twój problem tutaj.

Aktualizacja : (np., Dystrybucja za pośrednictwem App Store) Zgodnie z (co najmniej) sierpnia 2010 (iPhone SDK 4.1) Do Entitlements.plist nie jest już konieczne do uwzględnienia w swojej aplikacji w wielu przypadkach Zobacz tutaj , aby uzyskać więcej informacji na temat przypadków, gdy Entitlements.plist jest wymagane:

WAŻNE: Plik uprawnień jest zwykle potrzebny tylko w przypadku tworzenia do dystrybucji ad hoc lub włączania udostępniania danych pęku kluczy. Jeśli żadne z powyższych nie jest prawdziwe, usuń wpis w Uprawnieniach do podpisywania kodu. (podkreślenie moje)


Masz rację, zweryfikowałem, że rzeczywiście wartość logiczna get-task-allow ustawiona na false w Entitlements.plist zapobiega debugowaniu. Dziękuję Ci.
Massimo Cafaro

1
FYI, miałem dokładnie ten sam problem i tym, co go rozwiązało, było DODAWANIE pliku uprawnień z ustawieniem get-task-allow na TAK ... więc jeśli masz ten sam problem i nie masz pliku uprawnień, spróbuj go dodać ...: P
Alex Zak

Od wersji iOS 8.1.3 lista uprawnia do uprawniania jest wymagana również w przypadku aplikacji podpisanych dla przedsiębiorstw.
Roy K.

289

Profil ad-hoc nie obsługuje debugowania. Musisz debugować za pomocą profilu deweloperskiego i używać profilu Ad-hoc tylko do dystrybucji kopii, których nie można debugować.


O ile wiem, nie widziałem tych informacji w portalu programu dla deweloperów. Ale mój komentarz do fbrereto wyjaśnia, dlaczego tak jest: nie mamy pliku Entitlements.plist ani w debugowaniu, ani w konfiguracjach wydania.
Massimo Cafaro

5
Miałem ten sam problem po tym, jak przypadkowo ustawiłem tożsamość podpisywania kodu na dystrybucję iPhone'a w XCode 4
cpungaliya

1
jak przełączyć profil z powrotem na debugowanie, jeśli
kliknę

To kolejna z tych małych pułapek, które Apple postawił przed tobą. Stało się to właśnie po ponownym utworzeniu wszystkich moich profili i certyfikatów dzięki błędowi portalu ... westchnij. Dzięki za informację, rozwiązałem mój problem.
n13

To była odpowiedź na mój problem. Nie miałem nic do zrobienia z uprawnieniami.
DOOManiac

37

Miałem ten sam problem, ale rozwiązałem go, wykonując proste następujące czynności:

  1. Upewnij się, że wybrałeś debugowanie zamiast wydania.
  2. W konfiguracjach debugowania w ustawieniach projektu należy wybrać profil programisty i nie ma potrzeby określania plist uprawnień.
  3. Te same ustawienia są dostępne w: Cele:, jeśli nie, zmień je ręcznie na powyższe dla konfiguracji debugowania. To będzie działać.

Wszystkiego najlepszego.


Powodem, dla którego to zadziałało jest prawie na pewno, że twoja konfiguracja debugowania ma ustawioną opcję get-task-allow w Entitlements.plist, podczas gdy wersja Release nie - ma to na celu powstrzymanie ludzi przed dołączaniem debugera do kopii, którą pobierają z App Store (patrz- także odpowiedź Kaia poniżej na temat ustawienia go na tak, aby działał ..)
dsmudger

Zrobiłem to dla mnie. W jakiś sposób kompilacja została ustawiona na „wydanie”, a profile wydania nie były poprawnie skonfigurowane.
KPK,

19

Zajęło mi to trochę czasu, zanim zrozumiałem.

Jeśli używasz dystrybucji / ad hoc / profilu, nie możesz jej przetestować za pomocą xcode. Pojawi się błąd: Debugowany program nie jest uruchamiany.

Możesz zbudować aplikację, przejść do folderu produktów w swojej aplikacji w xcode, kliknąć plik z nazwą projektu i wybrać ujawnij w wyszukiwarce. Możesz przeciągnąć tę aplikację do iTunes i zsynchronizować, a wtedy możesz przetestować swoją aplikację na swoim urządzeniu.


Tak, to był mój problem. Nie miałem pliku uprawnień, ale zmieniłem konfigurację kompilacji debugowania na profil dystrybucji. Przejście na profil deweloperski naprawiło wszystko.
vocaro,

1
Chciałbym, żeby XCode był bardziej bezpośredni w tej sprawie. Nie jest wcale oczywiste, że nie możesz przetestować kompilacji dystrybucji na urządzeniu, będąc połączonym z XCode. To częsty przypadek użycia.
user798719

13

Jeśli otrzymujesz taki błąd, jedynym powodem może być używanie profilu dystrybucyjnego zamiast profilu programistycznego w Xcode lub brakująca właściwość uprawnienia. Jeśli nie używasz Entitlements.plist, jedynym możliwym błędem może być spakowanie aplikacji z profilem dystrybucyjnym. Możesz to zweryfikować, potwierdzając dzienniki kompilacji. Aby to zmienić, przejdź do ustawienia kompilacji projektu i sprawdź ustawienie jednostki podpisującej kod. Aby debugowanie działało, to ustawienie powinno być profilem programisty dla aktualnie używanej konfiguracji.

https://developer.apple.com/library/ios/#qa/qa1682/_index.html

Aby uzyskać natychmiastowe wyniki, usuń wszystkie mobilne profile udostępniania z xcode i zainstaluj profil programisty, którego zamierzasz używać.


13

Prawie 2 godziny w tej sprawie! I w końcu rozwiązałem to, zastępując plik

Programista iPhone'a

do

Programista iPhone'a: ​​nazwa mojego konta deweloperskiego

dla debugowania CODE_SIGN_IDENTITY:

  1. Wybierz Cel projektu
  2. Ustawienia kompilacji
  3. Szukaj według „znaku kodu”
  4. Zmień wiersz Debug w sekcji CODE_SIGN_IDENTITY wpisując „iPhone Developer: My Dev Account Name” , a nie tylko „iPhone Developer” .

Nie mam pojęcia, dlaczego to działa, ale działa! Przynajmniej dla mnie!


Środowisko: Xcode 5.0 (5A1412).


to też działało dla mnie, dzięki. musiał bawić się dokładnie, jakich tożsamości użyć, ale ostatecznie spodobało mu się pewne połączenie. Xcode 6 naprawdę potrzebuje funkcji "automatycznej korekty" do tego typu rzeczy, dużo sprzątania, na które nie mam czasu !!
John Contarino

1
Żeby dodać do tego to, co zrobiłem, było podobne, ale inne - zmieniłem profil na profil zespołu (który jest używany do debugowania), co ustawiło podpisującego kod na „automatyczny” - w XCode 5+ naprawdę powinieneś być wybranie profilu dla kompilacji i pozostawienie mu na tej podstawie decyzji, którego sygnatariusza użyć.
Kendall Helmstetter Gelner,

@KendallHelmstetterGelner thx, może to być pomocne dla innych! : D
Kjuly

Powinienem też dodać, że zmieniłem profil zespołu dla kompilacji „Debug”, która jest używana do uruchamiania na urządzeniu z poziomu XCode (chyba że zmienisz ustawienia schematu)
Kendall Helmstetter Gelner

1
To rozwiązało mój problem z tym problemem, nie robiąc niczego innego niż przebudowanie z inną tożsamością podpisującą kod. Dziękuję Ci! W moim przypadku używałem tożsamości dystrybucyjnej ad hoc.
Sean Michael Dorian

12

Sprawdź sekcję podpisywania kodu ur. Upewnij się, że podpis jest podpisem kodu iPhoneDeveloper


Zrobiło to moje - z jakiegoś powodu w moim Celu „Zespół” zmienił się na „Brak” - zmiana z powrotem ją uporządkowała. Pozdrawiam
Ralpharoo,

9

Otwórz Entitlements.plist i ustaw wartość logiczną get-task-allow na YES - debugger może dołączyć teraz!


ya, próbowałem tego wiele razy i nie rozumiem, dlaczego to nie rozwiązuje problemu. byłaby to najlepsza metoda, gdybyś nadal chciał włączyć aplikację testflightapp
owen gerig Kwietnia

Mój schemat uruchamiania jest ustawiony na debugowanie. Tylko to rozwiązanie naprawiło to za mnie! Dziękuję Ci.
Pieter,

Dzięki, Naprawdę mi pomóż!
Amir Hudani

4

Przejdź do Edit Schemes i w Run -> Info -> Build Configuration, zmień Ad-Hoc na Debug. Kliknij OK, aby zapisać.


1

Możliwe, że masz wygasły profil deweloperski w telefonie.

Mój programistyczny profil aprowizacji wygasł kilka dni temu i musiałem go odnowić. Zainstalowałem nowy profil w telefonie i przy próbie uruchomienia aplikacji pojawił się ten sam komunikat o błędzie. Kiedy spojrzałem na ustawienia profilu na moim telefonie, zauważyłem wygasły profil i usunąłem go. To usunęło błąd.


1

Otrzymałem ten błąd, gdy próbowałem uruchomić aplikację z Xcode, ponieważ pomyślałem, że wybrałem tylko profil dystrybucji. Kompilacja się powiodła, więc utworzyłem plik .ipa. Użyłem testflightapp.com do uruchomienia aplikacji. Możesz także użyć iTunes.


1

Jak stwierdziła firma Buffernet, do debugowania nie można używać dystrybucyjnego profilu informacyjnego. Po przełączeniu się na profil informacyjny programisty pojawił się komunikat o błędzie „Nie znaleziono prawidłowego profilu obsługi administracyjnej dla tego pliku wykonywalnego”.

Szybkie wygooglowanie w tym celu doprowadziło mnie do artykułu wymienionego poniżej. Stamtąd zdałem sobie sprawę, że nie mam prawidłowego profilu obsługi deweloperskiej, ponieważ mój iPhone nie został dodany do portalu obsługi administracyjnej i wszystkich innych związanych z nim rzeczy.

Upewnij się, że prowadzisz profil aprowizacji dewelopera telefonu iPhone, a Twoje urządzenie zostało dodane do portalu obsługi administracyjnej!

http://iosdevelopertips.com/xcode/a-valid-provisioning-profile-for-this-executable-was-not-found.html


0

Tak, profile obsługi administracyjnej przeznaczone do celów dystrybucyjnych, tj. Profile obsługi administracyjnej dystrybucji nie obsługują debugowania i powoduje wystąpienie tego błędu. Po prostu utwórz profil informacyjny do debugowania i użyj go (zwróć uwagę podczas tworzenia profilu informacyjnego z konta developer.apple.com).


0

Właśnie zmieniłem nazwę identyfikatora pakietu, to chyba załatwiło sprawę.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.