Не удалось подключиться к идентификатору процесса Xcode

113

Кто-нибудь сталкивался с этой проблемой? Вчера я все еще могу запустить свое приложение в симуляторе, но теперь я не могу запустить свое приложение, поскольку Xcode печатает эту ошибку в консоли:

error: failed to attach to process ID <ID number>

Скриншот с ошибкой

Я попытался переустановить, сделать этот пост и создать новый проект, но мне не повезло. Кто-нибудь может решить эту проблему?

Я использую Xcode 4.5 Preview 2 и пытаюсь запустить симулятор iOS 6

Ренди
источник
Я думаю, что столкнулся с той же проблемой ( stackoverflow.com/questions/11688720/… ) ...
указанная
1
Я описал возможное решение здесь stackoverflow.com/a/12504712/647644
Lindemann
Как ты решил эту проблему? пожалуйста, скажи и мне. мне действительно нужно решение.
ios,
пожалуйста, посмотрите принятый ответ
Рэнди
1
Я бы посоветовал людям попробовать ответ «Сброс содержимого и настроек в симуляторе», прежде чем пытаться принять фактически принятый ответ на изменение отладчика.
dartacus

Ответы:

153

Сброс содержимого и настроек в симуляторе у меня сработал. Это доступно в меню «Симулятор iOS».

Роберт Зам
источник
1
У меня не сработало. Еще показывает черный экран со статусной строкой (даже код почистил). После изменения отладчика на GDB, как упоминал Имран, мое приложение загружается нормально.
user427969
1
После сброса содержимого и настроек выйдите из симулятора и запустите его снова. Работал как шарм.
Justinkoh
45

перейдите в меню «Продукт» и найдите там меню «Редактировать схему».

Находясь в окне Edit Scheme, выберите опцию «Run» в левой части экрана, а затем в правой части измените отладчик с LLDB на GDB.

Имран
источник
6
Я изменил LLDB на GDB, но после этого он всегда отображается как «Присоединение к MYApp» и показывает следующие журналы. GNU gdb 6.3.50-20050815 (версия Apple gdb-1822) (вс, 5 августа, 03:00:42 UTC, 2012 г.) Copyright 2004 Free Software Foundation, Inc. GDB - бесплатное программное обеспечение, на которое распространяется Стандартная общественная лицензия GNU, и вы добро пожаловать, чтобы изменить его и / или распространять его копии при определенных условиях. Введите "показать копирование", чтобы увидеть условия. На GDB нет никаких гарантий. Для получения подробной информации введите "показать гарантию". Этот GDB был настроен как «x86_64-apple-darwin».
iOS_Developer
8
У меня было два симулятора (5.1 и 6.0), выйдите из xcode и сбросьте содержимое обоих симуляторов ........ это странно, но у меня это сработало .... :-)
iOS_Developer
32
-1. Это большой шаг назад. Сброс содержимого симулятора устраняет проблему без необходимости изменения отладчика.
ozz
2
@cdo Сброс контента у меня не сработал, сменил симулятор да
Теофило Исраэль Вискайно Родриг
4
МОЖЕТ ПОМОЧЬ: Я тоже перешел на GDB, запустил приложение один раз, затем вернулся к LLDB, и оно снова заработало! Так что вам не нужно отказываться от преимуществ LLDB! Попробуйте.
Чарльз
22

У меня возникла та же проблема, и через некоторое время я обнаружил, что это произошло из-за того, что мой проект XCode включал ссылку на папку с именем Resources .

Похоже, XCode не любит это имя.

Простое удаление ссылки на папку или переименование папки решило проблему.

Мирко Лучи
источник
1
На это у меня ушел почти день. #fail
Техас
1
Это сработало для меня. После переименования пришлось перезапустить XCode и Simulator.
Suran
21

ДВА МЕТОДА

Метод 1 : Внутри папки Application Support -> iPhone Simulator -> В каждой версии симулятора iOS -> Applications -> Удалите все файлы, присутствующие здесь.

Теперь перейдите в Продукты -> Очистить

Теперь запустите его на любом симуляторе, и он заработает.

Способ 2 :

Нажмите на Сброс

Амбили Б. Менон
источник
2
Это единственный метод, который у меня сработал. Я вызвал проблему, назвав одну из моих папок «Ресурсы», и это убило мой проект, чуть не связавшись с сердцем. Apple действительно должна добиться большего.
Зак Моррис
9

Шаг 1: пинг

$ ping localhost

Это должно вернуть что-то вроде

PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.028 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.048 ms
...

Если это сработает, этот ответ не решит вашу проблему, попробуйте что-нибудь еще.

Если ping возвращает что-то еще, например: ping: cannot resolve localhost: Unknown hostчто-то не так с вашим /etc/hostsфайлом, перейдите к шагу 2

Шаг 2. Проверьте / etc / hosts

Убедитесь, что верхняя часть вашего /etc/hostsфайла выглядит так

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0     localhost

Если этих записей в файле нет, введите их в верхней части файла, очистите кеш DNS с помощью $ dscacheutil -flushcacheи вернитесь к шагу 1 , в противном случае перейдите к шагу 3 .

Шаг 3. Правильный формат файла: он должен быть unix или LF *

$ file /etc/hosts

Это должно вернуться: /etc/hosts: ASCII English text

Если он возвращает что-то подобное, /etc/hosts: ASCII English text, with CR line terminators значит, файл имеет неправильный формат и, вероятно, игнорируется.

Измените окончание строки файла на unix или LF с помощью вашего любимого текстового редактора.

  • В Sublime Text 2 это можно сделать через меню просмотра: View> Line Endings> Unix

Очистите кеш DNS ( $ dscacheutil -flushcache) и вернитесь к шагу 1

Намерения
источник
Попробовав все остальное, это НАКОНЕЦ решило мою проблему! Спасибо!
Иона
Я недавно плохо модифицировал etc / hosts - спасибо за ответ
bdalziel
5

Как и в случае с ответом Fundtimer, похоже, виноват локальный файл hosts.

/etc/hostsПосле непреднамеренного изменения мне пришлось вернуть права доступа к значениям по умолчанию:

sudo chmod 644 /etc/hosts

После этого у меня работал симулятор / LLDB.

Amattn
источник
В моем случае я добавил, что я отредактировал файл hosts, чтобы он имел этот адрес ':: 1 newlocaldomain.local'
subharb
5

Это старая тема, но я считаю, что в последней версии macOS все немного изменилось.

Я наткнулся на эту проблему при попытке запустить набор тестов пользовательского интерфейса для приложения iOS в симуляторе на macOS Mojave Beta и Xcode 9.4.1.

Оказывается, в macOS Mojave codesignинструмент (который является частью самой ОС, а не частью инструментов командной строки или Xcode) подписывает процессы в усиленной среде выполнения, которая включает принудительное подписание кода во время выполнения, проверку библиотеки, жесткое, уничтожение, и ограничения отладки. Вместе с защитой целостности системы в macOS Mojave это предотвращает подключение отладчика lldb к запущенной цели.

Чтобы решить эту проблему, у вас есть варианты:

  1. Очевидный вариант, вероятно, - просто использовать Xcode 10. Кажется, он изящно обрабатывает соединение.

  2. Перезагрузите ОС в режим восстановления и выключите защиту целостности системы в Терминале с помощью csrutil disable. Затем отладчик успешно подключается.

Я потратил немало времени на то, чтобы ломать голову над этим, и смог все решить после прочтения следующей статьи: http://www.lapcatsoftware.com/articles/debugging-mojave.html

Всего два цента. Надеюсь, это кому-то поможет.

еплоко
источник
Но это имеет смысл работать только на симуляторе (то есть на MacOS), верно? Я получаю ошибку на устройстве ...
Дилан Николсон
... что оказалось потому, что я устанавливал .app только после повторной подписи. Как только я установил полный .ipa, все стало нормально.
Дилан Николсон
4

Я каким-то образом удалил или удалил записи из моего файла / etc / hosts и получил ту же ошибку. Вы должны проверить, есть ли в вашем файле / etc / hosts строчка «127.0.0.1 localhost». Это мне помогло!

pedrouan
источник
2
Спасибо. У меня была эта ошибка, я все перепробовал, ничего не получилось. Я проверил свой файл hosts, и он был пуст, за исключением одной строки от антивируса Avast. На самом деле Avast перезаписал мой ранее настроенный файл hosts (WTH?)! Я добавил строку 127.0.0.1 localhost в файл hosts, сохранил ее. Затем я сбросил симулятор iPhone, выполнил «Очистку» в Xcode, и он сразу же запустился, когда я в следующий раз запустил приложение. Для меня больше нет Avast.
Райан
Да, мне тоже не нравится avast
pedrouan
Мне потребовалось время, чтобы узнать, как добраться до папки с хостами. В Finder выберите меню «Перейти» и выберите «Перейти в папку ...», затем введите: /private/etc/hosts.txt
Иона,
На самом деле вам может потребоваться ввести $ sudo / etc / hosts
pedrouan
Я знаю, что это ответ годичной давности. Но я хотел бы знать, есть ли разница между 127.0.0.1 localhost и 127.0.0.1 serverchat.local. Следует ли мне удалить serverchat.local и заменить его на localhost? Совет, пожалуйста ...
Мелвин Лай
4

Я знаю, что это старый вопрос, но он впервые возник у меня, когда я выполнил поиск в Google по запросу «не удалось прикрепить к идентификатору процесса». Я использую Xcode 7. Произошло после того, как была выпущена iOS9, и я обновил свое приложение Swift для Swift 2.

Удаление моего приложения в симуляторе и выполнение новой сборки и запуска очистили его.

Кристофер Ларсен
источник
1
Аналогично и здесь, за исключением того, что я просто щелкнул приложение В симуляторе, и оно появилось, но затем возникли проблемы с остановкой. В конце концов я просто сбросил симулятор.
MCB
2

Я просто удалил приложение из симулятора (как и на реальном устройстве), и когда я его перезапустил, все заработало нормально.

Ник Фостер
источник
2

У меня такая же проблема, и для меня решение: -

Просто удалите приложение из симулятора, а затем очистите и запустите проект.

Пусть это поможет и кому-то еще.

Мухаммад Ризван
источник
1

Я только что разместил это на форуме разработчиков. Это было простое решение, которое может кому-то помочь:

У меня была точно такая же проблема: при использовании любой текущей версии Xcode 4.xx и отладчика LLDB, а также любой версии симулятора XCode постоянно вылетал с ошибкой `` не удалось подключиться к процессу ... '' Моим единственным решением было переключиться на отладчик GDB. Это меня разочаровало, так как я действительно хотел попробовать новый надежный LLDB в XCode 4.6-DP.

А потом я вспомнил; Некоторое время назад я изменил файл хоста сети / сервера в ... etc / hosts, чтобы разместить несколько виртуальных хостов сервера Apache2, т.е. я удалил строку:

127.0.0.1 локахост

Вот и все. После удаления этой строки XCode разбился при подключении к симулятору с помощью LLDB. При восстановлении этой строки XCode отлично работал с LLDB и Simulator.

В любом случае, это может не быть вашей проблемой, но стоит изучить. Насколько я понимаю, это серьезная недокументированная ошибка.

благотворительный фонд
источник
1

У меня была такая же проблема при отладке на устройстве. Приложение вылетало при запуске, но не отображалось как запущенный процесс.

Мое решение - использовать какое-нибудь приложение для просмотра процессов (например, System Status или подобное). Найдите свое устаревшее приложение, а затем найдите идентификатор родительского процесса, который обычно является отладочным сервером .

Перейдите в Xcode, Product -> Attach to Process -> By process id и присоединитесь к PID процесса отладчика . Подождите секунду, а затем нажмите кнопку Stop .

Устаревшие процессы отладочного сервера и приложения исчезнут.

(При использовании симулятора эквивалентным было бы использование терминала ps и уничтожение процесса приложения. Однако я этого не пробовал).

Рамон Пока
источник
Я столкнулся с этой ошибкой до и после того, как бился головой о нее в течение последних получаса или около того, это привело к моему исправлению. Большое спасибо, чувак. '
Gowiem
1

В моем случае решение было другим: режим запуска был «Release». Изменение на «Отладка» исправило это. Xcode 4.5.x не имел с этим проблем.

orip
источник
1

Проблема для меня была вызвана довольно глупой ошибкой: я создал новую цель для своего проекта, продублировав существующую цель, и забыл изменить идентификатор пакета в файле цели info.plist.

Mwidmann
источник
1

Я исправил эту проблему, удалив содержимое данных Xcode Derived.

В поисковике нажмите SHIFT + CMD + G, введите путь ниже и удалите все данные внутри DerivedData:

  ~/Library/Developer/Xcode/DerivedData

введите описание изображения здесь

Также сбросить сборки симулятора

     ~/Library/Application Support/iPhone Simulator/6.0/Applications 
Гуру
источник
1

Приведенный выше ответ мне действительно помог. https://stackoverflow.com/a/12819757/1752988 Потому что в моем XCode я использовал раскадровку и настраиваемый контроллер представления. и в его списке предупреждений, что я видел, что некоторые файлы пера отсутствуют. Я был скучен, увидев это. Однако я увидел этот ответ, и хотя мне не нравилось сбрасывать содержимое моего симулятора приложения, я сделал это, и это действительно сработало для меня.

А также изменение отладчика с Продукта -> Схема -> Изменить схему (Выполнить) с LLDB на GDB у меня тоже не сработало.

Ps: - Простите меня, я добавил этот ответ в качестве комментария службы поддержки к вышеизложенному, так как у меня нет 15 репутации за вышеупомянутый ответ или 50 очков репутации, чтобы прокомментировать выше.

Рандика Вишман
источник
1

Я решил эту проблему, выйдя из XCode и Simulator. Откройте проект заново. Готово.

Джайпракаш Дубей
источник
1

На iOS 9.1 у меня работало следующее:

  1. Просто удалите приложение из симулятора
  2. Выйти из симулятора (Cmd + Q)
  3. Очистите свой проект Xcode
  4. Беги на симуляторе

Примечание: не нужно перезагружать симулятор.

Арджун Шукла
источник
1

Я работаю над приложением Ionic 2, я новичок в этом и даже в Xcode и симуляторе.
Первоначально мое приложение работало на симуляторе, но через некоторое время оно начало генерировать ошибку, например:
такую ​​как ошибка xcode: не удалось подключиться к идентификатору процесса

Я искал, пробовал все вышеперечисленные ответы, но моя проблема не была решена.
Затем я обновил ( Ionic , npm , cordova ) настройку моей машины -

******************************************************
 Dependency warning - for the CLI to run correctly,      
 it is highly recommended to install/upgrade the following:     

 Install ios-deploy to deploy iOS applications to devices.  `npm install -g ios-deploy` (may require sudo)

******************************************************

Your system information:

Cordova CLI: 6.4.0 
Ionic Framework Version: 2.0.0-beta.10
Ionic CLI Version: 2.1.8
Ionic App Lib Version: 2.1.4
ios-deploy version: Not installed
ios-sim version: 5.0.8 
OS: OS X Yosemite
Node Version: v6.2.2
Xcode version: Xcode 7.2 Build version 7C68



******************************************************

После этого я просто запускаю команду из домашнего каталога моего приложения

  1. ионный пробег -l
  2. ионная сборка ios.
  3. импортированный xcode изменяется на xcode.
  4. Сбросить содержимое и установить как-
    введите описание изображения здесь
  5. очистить продукт от xcode,
    введите описание изображения здесь
  6. Запустите Xcode, и теперь он работает на симуляторе.

Рад видеть это !!!

S.Yadav
источник
1

На это так много ответов, и я не видел того, что считаю правильным. Проблема с авторизацией. Введите это в Терминале:

sudo DevToolsSecurity -enable

экипаж
источник
1

В Xcode 9+ сделайте следующее: Перейдите в меню Xcode: Product-Scheme - Edit Scheme и на вкладке Run убедитесь, что установлен флажок Debug Executable ! Это оно!

введите описание изображения здесь

Джоан
источник
Как ни странно для меня,
снятие
0

Просто сбросьте содержимое и настройки симулятора iOS, а затем очистите код, нажав клавиши command + shift + k, чтобы очистить код. Это сработало для меня.

Пустынная роза
источник
0

Как бы то ни было, перезагрузка моего компьютера была единственным решением, которое сработало. Я попытался переключиться с LLDB на GDB, сбросив содержимое симулятора и перезапустив Xcode. Единственное, что сработало, - это перезагрузка моего компьютера, повторное открытие Xcode и повторный запуск приложения.

Джефф Граймс
источник
0

У меня такая же проблема. Я сделал несколько комбинаций полученных ответов, чтобы заставить его работать. :)

очистите папку сборки, щелкнув «Продукт» в строке меню. удерживая нажатой клавишу Alt, щелкните «Очистить папку сборки». Теперь перезапустите свой xcode и симулятор. Теперь должно работать. если нет, также попробуйте изменить идентификатор пакета и «Сброс содержимого» симулятора, а затем перезапустите xcode и симулятор.


источник
0

Пробежал через это сегодня. Я случайно удалил изображения запуска из своих целевых настроек.

PWiggin
источник
0

попробуйте сделать следующие шаги:

  • Перейдите в Product / Scheme / Edit Scheme, затем выберите Run section.
  • Выберите Info Tan и установите Debugger None.
  • Запустить проект. Он должен работать (без отладчика)
  • Вернитесь к Edit Scheme и выберите отладчик LLDB
  • Запустить проект. Это работает.

Возможно, дополнительно вам нужно удалить производные данные и сделать Product / Clean

Филип Дж. Фрай
источник
0

У вас несколько пользователей вошли в систему на вашем компьютере? У меня на ноутбуке есть «личные» и «рабочие» аккаунты. Я получил эту ошибку, когда пытался выполнить отладку из своей личной учетной записи, но я оставил симулятор запущенным в моей рабочей учетной записи. Выход из симулятора в другой учетной записи устранил мою проблему.

булочка
источник
0

и еще один для записи: (ни одно из предложений у меня не сработало)

Горный лев: XCode 4.6.3

  • Я moved the whole Application to Trashи удалил следующие папки
  • /Users/[USERNAME]/Library/Developer
  • /Users/[USERNAME]/Library/Caches/com.apple.dt.XCode
  • /Users/[USERNAME]/Library/Application Support/iPhone Simulator

  • перезагрузите систему и переустановите XCode

Longi
источник
0

Также была такая же проблема сегодня. я использовал Xcode 4.6.3. Я закрыл свой проект и открыл его в Xcode 5, и он работает отлично.

Удивительно, но факт

Мохит
источник
для меня это ответ, потому что он разрешил мой вопрос хорошо
Мохит