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.

Massimo Cafaro
źródło
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)

fbrereto
źródło
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ć.

cdespinosa
źródło
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.

Aks
źródło
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.

Atma
źródło
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ć.

Varun Bhatia
źródło
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).

Kjuly
źródło
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

user1770342
źródło
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!

Kai
źródło
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ć.

Arunabh Das
źródło
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.

hkatz
źródło
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.

dąbrówka
źródło
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

Jarada
źródło
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).

Rakesh
źródło
0

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

Joe Barbour
źródło
-1

Poprawiłem swój projekt za pomocą JailCoder http://jailcoder.com/ i problem został rozwiązany. Wystarczy go pobrać i przeciągnąć do niego projekt xcode.

Andrés Canavesi
źródło