Невозможно запустить приложение в симуляторе: во время работы произошла ошибка (Domain = LaunchServicesError, Code = 0)


91

После успешной компиляции проекта в Xcode 6 я не могу запустить его в симуляторе с указанным выше сообщением. Я провел все возможные исследования, все перепробовал, но все равно никаких успехов.

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

Если кто - то нашел возможную причину (или решение !!), кроме них , пожалуйста , помогите. Благодарность


Было бы полезно, если бы вы могли перечислить, что вы пытались исключить из этих рекомендаций.
donmarkusi

Проблема теперь решена, но просто для информации я попробовал: - запустить чистую - удалить кеш проекта / производные данные - перезапустить симулятор и Xcode - перезапустить Mac - переустановить Xcode - очистить и переустановить CocoaPods - проверить настройки сборки на наличие редких Внешний вид Ничего не помогло. Не пробовал возиться с именами расширений приложений, так как я их не использую.
Miki

3
«Продукт -> Чистый» у меня сработал.
nshuman

У меня была такая проблема: stackoverflow.com/questions/27037589/…
derpoliuk

Перезапуск симулятора решил мою проблему
Бхавеш

Ответы:


175

«Сброс содержимое и настройки» из IOS Simutalor пунктов меню и запуск тренажера после Выхода решить мою проблему.

Сбросить содержимое и настройки


6
Намного лучше, чем первоначальный ответ. Должен быть отмечен как решение.
denislexic

После этого мне также нужно было выйти и снова открыть симулятор.
jfredsilva

Это требование уже упоминалось в моем ответе @jfredsilva.
Sauvik Dolui

1
Также удаление приложения, если вы ранее установили его на симуляторе
danywarner 07

Работай на меня. Спасибо
Nikhil Chaurasiya

125

Очистка папки сборки решила проблему для меня. Надеюсь, это кому-то поможет!

(Удерживая нажатой клавишу Alt : Продукт> Чистая папка сборки )


1
YA YA YA, проблема исправлена: D
Abo3atef

1
Это сработало для меня после того, как я обновился до использования Cocoapods и .xcworkspace.
Иоанн Король

3
Это необходимо сделать после обновления до Cocoapods v1.0.0
Анкония,

Чтобы добавить, это единственное, что устранило эту проблему для меня после обновления до Cocoapods v1.0.0. Ни один из других ответов SO не работал.
Энди Райс

Работал, я так счастлив
anavarroma

33

Я пробовал любое другое решение, указанное здесь. Итак, я перенес свой проект со Swift 1.2 на Swift 2.0. Приложение зависало даже после долгой отладки и ошибки запуска служб 0.

Решение: Это происходит из-за компиляции фреймворка.

Цель приложения -> Этапы сборки -> Внедрить фреймворки.

Так что отметьте копию только при установке на. Очистите проект и запустите!

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


Не могли бы вы подробнее объяснить, как "Копировать только при установке" решает проблему?
sethfri 08

@ sethfri: «Копировать только при установке», чтобы указать, что на этапе сборки файлы копируются только в установочных сборках продукта. developer.apple.com/library/mac/recipes/…
AG

3
Я понимаю, что означают слова «Копировать только при установке». Я спрашиваю, как это решить проблему, с которой столкнулся автор вопроса.
sethfri

28

Теперь это решено. Проблема была вызвана библиотекой ShareKit, добавленной CocoaPods по соображениям совместимости. После удаления библиотеки и всего связанного кода приложение успешно запустилось в симуляторе. Я рекомендую проверить системный журнал для получения более подробной информации по этой проблеме, поскольку, на мой взгляд, он указал мне правильное направление (указав имя конфликтующей библиотеки).


Я только что добавил shareKit, и у меня такая же проблема.
dirkoneill

24
Если это кому-то поможет: вы можете получить доступ к системному журналу, набрав Консоль в Spotlight.
Нейт Кук,

Для меня это было MixpanelAppExtension
villy393

Спасибо, это помогло мне. XCode 7.3.1 и мой журнал показал «ErrorDescription = Не удалось скопировать жесткую ссылку». Я устанавливал версию, но не номер сборки в Target -> General -> Identity. Как только я добавил значение для Build, проблема исчезла.
Уильям Смит

Чтобы проверить системный журнал, попробуйте эту команду в Терминале: tail -f /var/log/system.logiOS Simulator печатает непосредственно в stdout, чтобы вы могли видеть журналы, смешанные с системными журналами.
vhong 09

16

Если у кого-то есть эта проблема в сочетании со стручками какао, эти шаги помогли мне решить эту ошибку (через несколько часов):

  • бегать pod cache clean
  • из SRC_ROOT запустить rm -rf Pods(опционально rm Podfile.lock)
  • Щелкните приложение Simulator , щелкните Simulator -> Reset Content and Settings ...
  • Войдите в Xcode, в строке меню нажмите Product -> Clean (или нажмите Shift + Command + K). Это очистит ваш проект Xcode.
  • Создайте новую оболочку терминала (в строке меню нажмите «Оболочка» -> «Новое окно»)
  • бегать rm -rf ~/Library/Developer/Xcode/DerivedData/

... затем попробуйте собрать и запустить свой проект.

Примечание. SRC_ROOT можно найти, войдя в навигатор , щелкнув проект, снова щелкнув проект в списке проектов и целей , войдя в настройки сборки , прокрутившись до самого низа до раздела , определяемого пользователем , и SRC_ROOT. будет обозначен как PODS_ROOT. Возьмите это, скопируйте его вербально в Терминал и перейдите к шагу 2 из списка выше.

Надеюсь, это поможет.


2
Это сделало это. Спасибо! На самом деле должен быть принятый ответ.
Дэн Лёвенгерц

Это решило мою проблему! Определенно это должен быть принятый ответ!
Виктор Оливейра Антонино

15

Я избавляюсь от проблемы с помощью данных шагов для симулятора

1. Способ

  1. Сбросить содержимое и настройки симулятора .
  2. Очистите свой проект с помощью Cmd + Shift + K .
  3. Очистите производные данные .
  4. Последний, который более важен, измените свой идентификатор пакета на "com.yourcompanyname.projectname", например "com.facebook.Facebook"

2 пути

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

Последний, который более важен, измените свой идентификатор пакета на "com.yourcompanyname.projectname", например "com.facebook.Facebook"

Спасибо и наслаждайтесь программированием.


Вы имеете в виду cmdвместо win? ;) (Или, может быть, вы используете клавиатуру Windows.)
Jeroen

@JeroenJK Да, это Cmd.
Дхармбир Сингх 06

Вау, изменение идентификатора пакета - это то, что наконец-то сработало для меня. Благодарность!
ArtSabintsev

6

Может быть связано с этой проблемой: «Это приложение содержит расширение приложения с недопустимым идентификатором пакета».

Мне пришлось отформатировать идентификаторы пакетов для моего приложения и расширения следующим образом:

com.company.AppName
com.company.AppName.Extension

Тоже самое. Я изменил идентификатор пакета, потому что расширение (виджет) не отображалось, и это вызвало его. Пришлось понизить версию расширения с 9.2 до 8.2 и изменить комплект, как указано выше.

Спасибо, именно моя проблема!
Андрес

5
  1. Сначала «Сбросить содержимое и настройки»
  2. Если вы не заполняли номер сборки и не заполняете его и запускаете.

Для меня это решено.


4

Если вы измените имя предоставленного класса, InterfaceControllerустановленного по умолчанию при запуске нового проекта. На этот класс есть ссылка в Info.plistразделе RemoteInterfacePrincipalClass. В моем случае я получал ошибку, упомянутую OP, пока я не исправил имя класса там (см. Снимок экрана).

Info.plist: установить основной класс


Это действительно помогло! Благодарность!
Lonkly

2

Если у вас возникли проблемы с интеграцией с WatchOS 2.0, перейдите по ссылке - ~/Library/Logs/CoreSimulator/[Device UDID]/system.logи, если что-то вроде WatchKit 2 app has frameworks; that's not allowed.этого, перейдите по ссылке ниже.

http://zyafa.me/blog/watchos-2-and-embedded-frameworks


1
Спасибо, что указали мне на файл журнала симулятора. В моем случае файл журнала на ~/Library/Logs/CoreSimulator/CoreSimulator.logпоказал, что у моего связанного фреймворка не было CFBundleIdentifierв его Info.plist
Берби

framework не имел CFBundleIdentifier в его Info.plist: я также понимаю, что это решение? не используется в watchkit или watchOS
Абхишек Таплиял


1

Та же проблема возникает после локализации моего приложения. Тем более Info.plist. Кажется , у меня было пусто CFBundleShortVersionStringпо прибытии InfoPlist.strings, после фиксации , что тренажер начал работать должным образом.


Это тоже была моя проблема. Если вы видите это, попробуйте удалить все ключи, не требующие локализации, из ваших файлов InfoPlist.strings. В моем случае удаление ключей ниже исправило все: CFBundleName CFBundleShortVersionString CFBundleVersion
лазарев

1

Я получил эту проблему, добавив ссылку на папку с именем «Ресурсы».

Если я дам ему другое имя, он запустится!


1
Этот решил мне аналогичную проблему! Я встраивал dylib, и это вызвало загадочную ошибку установки «не было CFBundleIdentifier в его Info.plist». После изменения папки «Ресурсы» на что-то еще она снова начала работать
Саги Илтус

Два
Moose

1

Есть несколько причин, которые могут вызвать эту ошибку. Лучший общий ответ - поиск в журнале консоли CoreSimulator, поскольку симулятор регистрирует основную проблему при отображении этого сообщения.


1

Спасибо, что указали на это @Miki и слава вам. У меня была та же проблема, что и у вас вчера (и я добавил в приложение ShareKit 3.0.0 из CocoaPods несколько дней назад). Я подозревал, что ShareKit дает мне эту проблему, но теперь я могу быть уверен, какая именно библиотека вызывает это. Вот что я нашел в своем журнале (если это может принести пользу другим):

Error Domain = LaunchServicesError Code = 0 «Операция не может быть завершена. (Ошибка LaunchServicesError 0.)» UserInfo = 0x7fa836097aa0 {Error = PackageInspectionFailed, ErrorDescription = Не удалось загрузить Info.plist из пакета по пути / Users / {UserName} / Библиотека / Разработчик / CoreSimulator / Devices / 99FEB34E-6F00-4EFA-861A-A6985AFE96D8 / data / Library / Caches / com.apple.mobile.installd.staging / temp.X7eead / extract / {AppName} .app / Frameworks / LiveSDK. фреймворк}


1
из журнала, как узнать, что ShareKit вызывает ошибку?
chipbk10

1
у меня то же самое в моем журнале, но удаление симуляторов и их добавление обратно не помогает ... как вы исправили ошибку?
Амитай

1

Если вы установили какие-либо библиотеки, используя, CocoaPodsкогда XCode был открыт, все, что вам нужно сделать, это закрыть XCode и удалить библиотеку из Podфайла, запустить команду, pod installкоторая удалит эту библиотеку. затем снова установите библиотеку. Убедитесь, что XCode всегда закрыт при установке и удалении библиотек.


0

У меня была точно такая же проблема, и это был ShareKit.

На симуляторе у меня было «Error Domain = LaunchServicesError Code = 0».

На устройстве iPhone6 ​​у меня было сообщение «Ошибка установки приложения. Не удалось проверить пакет приложения».

Когда я удалил ShareKit, все заработало.


0

У меня возникла эта проблема, когда я добавил в свое приложение цель Apple Watch и случайно удалил файл InterfaceController.m. Добавление файла в цель устранило проблему.


0

Это может быть вызвано разными вещами. Взгляд в консоль может дать вам ключ к разгадке.

В моем случае проблема заключалась в расширении, созданном до того, как я изменил название продукта. Xcode не очистил старую версию, а затем столкнулся с проблемой двух расширений с одинаковым идентификатором пакета.

(Удаление папки сборки устранило мою проблему).


0

В моем случае проблема возникла из-за того, что добавлен набор значков, в котором отсутствуют некоторые изображения. Как только я заменил набор значков другим и удалил приложение в симуляторе; Я смог запустить его снова.


0

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


0

Не добавляйте фреймворк Google Maps в раздел встроенных библиотек, это решило мою проблему с сборкой.


Удаление встроенного фреймворка, в котором не было необходимости, также
устранило

0

У меня была эта ошибка при разработке приложения для Apple Watch после добавления в Info.plist: «Настройки безопасности транспорта приложений» и «Разрешить произвольные нагрузки» = ДА. (В приложении WatchKit, в WatchKit Extension это хорошо !!) Удалив эти две строки, он продолжает работать.

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


0

Для меня проблема возникает из-за того, что я добавил свою структуру ( GoogleMobileAds.frameworkв моем случае) во встроенные бинарные файлы , а не в связанные платформы и библиотеки .

К вашему сведению, AdMob рекомендует использовать Add Files to "Your Project"меню в Xcode, но мне было лень подчиняться инструкции.


0

У меня возникла эта проблема при попытке запустить тесты пользовательского интерфейса в проекте, содержащем AWS Cognito.

Вот как я это решил.

  1. Выберите цель теста пользовательского интерфейса.
  2. Щелкните раздел "Фазы сборки".
  3. Щелкните значок плюса, чтобы добавить этап копирования файлов. Этап добавления файлов копирования
  4. На этапе копирования файлов измените место назначения на Frameworks (см. Последнее изображение)
  5. Нажмите на плюс под этапом копирования файлов.
  6. Выберите платформу, для которой вы получаете сообщение об ошибке, и нажмите кнопку «Добавить» (ваш, вероятно, не будет первым элементом в иерархии вашего проекта). Выберите Framework для копирования В итоге должно получиться вот так. Конечный результат
  7. Повторите шаги 5 и 6 для всех фреймворков, в которых возникает ошибка.
  8. Проведите свои тесты.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.