Pytanie Dlaczego instrumenty nie wykonują mojej aplikacji Monotouch?


Próbuję użyć instrumentów, aby przyjrzeć się wykorzystaniu zasobów w mojej aplikacji Monotouch. Jednak nie mogę uruchomić aplikacji za pomocą instrumentów.

Kiedy klikam przycisk nagrywania w Instruments, aplikacja uruchamia się na moim iPhonie, buzzes (co oznacza, że ​​jest to kompilacja debugowania), a następnie zawiesza się - i raporty Instruments:

Target failed to run: Remote exception encountered : 'Failed to get task for pid 384'

Aplikacja działa poprawnie po uruchomieniu bezpośrednio na telefonie.

Próbowałem go z kompilacji debugowania i kompilacji ad hoc (przy użyciu parametrów zdefiniowanych na Strona wsparcia Monotouch). Zawsze to samo.

Używam Monotouch 3.2.5, iOS 4.3.1 (na 3GS), Xcode 4 i Snow Leopard.

Widzę to wydane w kilku miejscach w internecie, ale nie widziałem rozwiązania. Ktoś wie, jak to rozwiązać?


13
2018-03-26 12:29


pochodzenie




Odpowiedzi:


Jest to problem z podpisywaniem: aby uruchomić pod kontrolą Instruments, aplikacja jest skompilowana z ustawieniami Release Build, a nie z ustawieniami kompilacji Debug, co zwykle oznacza, że ​​aplikacja jest podpisana certyfikatem Distribution zamiast certyfikatem programisty. Aby mieć nad nią kontrolę, aplikacja musi być podpisana za pomocą certyfikatu programisty Instrumentów. Zmień opcję podpisywania na Developer w wersji Release i powinno być dobrze.


17
2018-04-01 13:12





Wpadłem też na ten problem z Xcode 4. Dla mnie zadziałało ...

Z Xcode 4, uruchom na podłączonym urządzeniu iOS. Ręcznie uruchom aplikację Instruments. Wybierz mój szablon (w tym przypadku Profiler TIme). Wybierz moją aplikację z menu Cel (po prawej stronie przycisku Nagraj). Kliknij przycisk Nagraj.

Proponowane rozwiązanie Entitlements nie działa dla mnie (ponieważ uprawnienia są ewidentnie już nie wymagane w Xcode 4).

Proponowane rozwiązanie podpisywania również nie działa. Ponadto byłoby niewygodne zmienianie tego za każdym razem, gdy chciałem testować z Instruments.


3
2017-07-06 15:54





Sprawdź swoją listę Entitlements.plist dla podpisanej aplikacji. Gdyby get-task-allow jest false, zapobiegnie dołączaniu przyrządów do procesu.


2
2018-03-30 17:55





Co powiesz na uruchamianie instrumentów z poziomu XCode? Jeśli używasz Xcode 3, znajduje się on w menu Build, a następnie Run with performance tools. Spowoduje to uruchomienie instrumentów i automatyczne rozpoczęcie nagrywania.


0
2018-03-29 12:17



Używam MonoTouch, więc kod jest w innym IDE (MonoDevelop). - dommer
Niestety, całkowicie pominęłeś odniesienie do Monotouch w swoim tytule. - detra83