Почему инструменты Monotouch не выполняются?
Я пытаюсь использовать Инструменты, чтобы посмотреть на использование ресурсов в моем приложении Monotouch. Однако я не могу заставить приложение запускать инструменты.
Когда я нажимаю кнопку записи в приложении "Инструменты", приложение запускается на моем iPhone, жужжит (обозначает его сборку отладки), затем сбой - и отчеты "Инструменты":
Target failed to run: Remote exception encountered : 'Failed to get task for pid 384'
Приложение работает нормально, когда я запускаю его непосредственно на телефоне.
Я пробовал его с отладочными сборками и ad hoc-сборками (используя параметры, определенные на странице поддержки Monotouch). Всегда то же самое.
Я использую Monotouch 3.2.5, iOS 4.3.1 (на 3GS), Xcode 4 и Snow Leopard.
Я видел, как это вышло в нескольких местах по всему Интернету, но не видел разрешения. Кто-нибудь знает, как его решить?
Ответы
Ответ 1
Это проблема с подписью: для запуска под управлением инструментов приложение скомпилировано с настройками сборки выпуска, а не с настройками сборки Debug, что обычно означает, что приложение подписано с вашим сертификатом распространения вместо сертификата разработчика.
Приложение должно быть подписано с сертификатом разработчика для инструментов, чтобы иметь возможность контролировать его.
Измените свой вариант подписки на Developer на сборке Release, и все будет в порядке.
Ответ 2
Я также столкнулся с этой проблемой с Xcode 4. Что для меня работало...
Из Xcode 4 запустите на подключенном устройстве iOS.
Запустите приложение "Инструменты" вручную.
Выберите мой шаблон (в данном случае TIme Profiler).
Выберите мое приложение в меню "Цель" (справа от кнопки "Запись" ).
Нажмите кнопку "Запись".
Рекомендуемое решение "Права доступа" не работало для меня (поскольку в Xcode 4 явно не требуются права).
Предлагаемое решение подписи также не работает. Кроме того, было бы неудобно изменять это каждый раз, когда я хотел бы проверить с помощью инструментов.
Ответ 3
Проверьте свой Entitlements.plist для подписанного приложения. Если get-task-allow
false
, это предотвратит присоединение инструментов к процессу.
Ответ 4
Как насчет запуска инструментов изнутри XCode? Если вы используете Xcode 3, он находится в меню "Построение", а затем "Выполнить" с помощью инструментов производительности. Это запустит Инструменты и автоматически начнет запись.