2014-09-02 3 views
65

При попытке запустить мое приложение в iOS Simulator с Xcode 6 я получил ошибку (Domain = LaunchServicesError, Code = 0). Я искал решение в google, но я не нашел ничего практичного.Ошибка при запуске (Domain = LaunchServicesError, Code = 0)

Что означает эта ошибка?

+1

Перезапуск тренажера решил мою проблему – Bhavesh

ответ

41

Включает ли ваш проект виджет или расширение? Если это так, проблема может быть идентификатором связки вашего виджета/расширения. Он должен быть таким же, как и главная цель, добавляется с периодом и дополнительной строкой. Так, например:

Главная цель: com.mycompany.myapp

Виджет должен быть: com.mycompany.myapp.widget

+1

Это сделало трюк для меня, спасибо! – Jason

+0

Это произошло со мной после «отключения» незавершенного расширения iOS 8, удалив его из целевых зависимостей. Кажется, этого недостаточно, чтобы сделать Xcode счастливым. – Rivera

+1

Awesome !! Решил это! – ajay

2

Попробуйте положить некоторое количество в [ЗАДАЧ] - [Общие] - [Идентичность] - [Version (или построить)], если они пусты.

Это сработало для меня.

Я надеюсь, что это вам поможет.

38

Я зафиксировал его путем сброса тренажера:

IOS Simulator> Сброс содержимого и настроек ...

+0

Это работает для меня. Спасибо –

+2

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

+0

Сброс симулятора занимает много времени в iOS9. В большинстве случаев вам, возможно, удастся просто удалить ваше приложение внутри симулятора. –

117

Эта ошибка указывает, что возникла проблема с установкой. К сожалению, Xcode фактически не печатает содержимое сообщения об ошибке, которое бы дало вам больше информации, но вы можете посмотреть ~/Library/Logs/CoreSimulator/CoreSimulator.log, чтобы просмотреть остальную часть сведений об ошибке. Также будет больше информации о проблеме в системном журнале имитируемого устройства (~/Library/Logs/CoreSimulator/[Device UDID] /system.log); искать сообщения от installd во время ошибки).

Общие причины этого включают пучки, отсутствующие в Info.plist, отсутствующие ключи в Info.plist вашего пакета или значения для некоторых ключей в Info.plist не допускаются.

Если в Info.plist вашего приложения нет действительной пары ключ/значение CFBundleVersion, возможно, что приложение сможет правильно установить его в первый раз, но не обновить. Многие пользователи, похоже, работают вокруг этого, выполняя «Сбросить содержимое & Настройки» после каждой установки, но лучше исправить основную причину, установив соответствующую CFBundleVersion в Info.plist. Я считаю, что iOS 8.2 теперь корректно возвращает ошибку при первой установке в этом случае, а не только обновления, поэтому, надеюсь, эта проблема будет более очевидной.

Пользователи с домашними каталогами в файловых системах, которые не поддерживают жесткие ссылки (например, сетевые домашние каталоги через AFP, SMB или некоторые серверы NFS), также могут сталкиваться с проблемами, связанными с жесткой привязкой. Если это так, я предлагаю вам создать путь на вашей локальной файловой системе HFS + для разработки симулятора (например:/var/simulator/[user]) и создать символическую ссылку на этот путь из ~/Library/Developer/CoreSimulator. Эта конкретная проблема была исправлена ​​в одном из бета-версий iOS 8.2.

В другом случае выполнение Сборка & Запуск всегда будет выполняться с первой попытки, но последующие попытки иногда терпят неудачу из-за измененного Info.plist (например: поскольку чьи-то настройки системы сборки приводят к тому, что CFBundleVersion отличается на каждой итерации) , Обычно вы можете восстановить, удалив установленное приложение (используя длительное нажатие с главного экрана или xcrun simctl uninstall [Device UDID] [app identifier]) или стирание устройства обратно в состояние по умолчанию. Чтобы стереть устройство, выполните xcrun simctl erase [Device UDID] с терминала или выберите Erase Contents & Settings из меню iOS Simulator. Эта конкретная проблема была исправлена ​​в одном из бета-версий iOS 8.2.

Более новый экземпляр этой проблемы возникает для пользователей Xcode 6.2. Если у вас есть приложение WatchKit App Extension, входящее в состав вашего приложения, оно не будет установлено в версии среды выполнения iOS Simulator старше iOS 8.2. В качестве обходного пути вам нужно будет вручную отключить расширение приложения от установки, когда вы хотите протестировать с помощью iOS 8.1 и более ранних версий.

Если вам нужна дополнительная помощь, предоставьте полное сообщение об ошибке из CoreSimulator.log и любые сообщения из installd и CoreSimulatorBridge, которые появляются примерно в то же время в ~/Library/Logs/CoreSimulator/[Device UDID]/system.log, поскольку это покажет основную проблему.

+2

Очень полезно. Благодаря! – Pat

+2

Эта ошибка может быть вызвана многими причинами. И этот ответ дал общий способ решить эту проблему. Благодарю. – WeZZard

+2

Перейдите в раскрывающийся список «iOS Simulator» в приложении для симулятора (OS X) и выберите «Сбросить содержимое и настройки ...» ... сделано! – TNBtech

1

Так что это определенно проблема .plist. В моем случае это было пустым NSExtensionMainStoryboard, удаление этого свойства устраняло проблему

+0

также проверить NSExtensionPrincipalClass – dwery

5

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

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

18

Для меня просто очистить проект, и она работала -> Продукция -> Clean

+0

Эта ошибка произошла со мной при переключении между Xcode 6.1.1 и Xcode 6.2 beta 5. Чистка исправила его. –

0

enter image description here

Удаление тренажера и регенерировать один.

Это работает для меня.

12

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

Reset Content and Settings

3

Еще одна вещь, чтобы попробовать, что работал для меня, после перезагрузки тренажера и делает чистый билд не помогло, это очистка производные данные. Чтобы сделать это: перейдите на вкладку «Организатор», нажмите кнопку «Удалить», чтобы удалить данные. У меня это было после продолжительной работы над расширением, и он вернулся к регулярной ветке. Надеюсь это поможет.

3

Это и послужило причиной для меня проблемы: номер сборки для основного приложения и расширения был другим (я увеличил основной номер сборки приложения до 1.0.1.03, но оставил расширение на 1.0.1.02).

Выполнение этих задач устраняет проблему.

9

В XCode 6

An error was encountered while running (Domain = LaunchServicesError, Code = 0)

Я имел эту ошибку после внесения некоторых существенных изменений коды для размещения iPhone 6 экранов.в Xcode 6 (iOS8)

Я следовал выше вариантам и обнаружил, что единственный способ, чтобы действительно получить это исправило, выполнив следующие действия:

  1. удалил полученные данные [перейти в окно >> Органайзер> > (Найдите приложение) Нажмите кнопку Удалить рядом с Derived Data]
  2. продукт >> Чистый
  3. Сброс содержимого и настроек в симуляторе
  4. изменили Bundle Версия 1.4.1 от 1.4 в Plist

    Благодарим вас за все предыдущие ответы, которые привели меня на этот этап. Это сработало очарование!

2

У меня также есть эта ошибка. В моем случае журнал ~/Library/Logs/CoreSimulator/CoreSimulator.log было что-то вроде этого:

Could not hardlink copy /Users/myUser/Library/Developer/CoreSimulator/Devices/60E569E7-6750-428A-A401-841BB081xxxx/data/Containers/Bundle/Application/70F24DDC-7954-46BF-B799-F807FD98yyyy/myApp.app to /Users/myUser/Library/Developer/CoreSimulator/Devices/60E569E7-6750-428A-A401-841BB081xxxx/data/Library/Caches/com.apple.mobile.installd.staging/temp.kOrJ9G/extracted/Payload/myApp.app with manifest /Users/myUser/Library/Developer/CoreSimulator/Devices/60E569E7-6750-428A-A401-841BB081xxxx/data/Library/Caches/com.apple.mobile.installd.staging/temp.kOrJ9G/extracted/com.apple.deltainstallcommands.com.mycompagny.myapp

благодаря этому answer В взглянуть на мое приложение info.plist. ключ CFBundleVersion отсутствовал, поэтому я добавляю его, и теперь все работает!

3

Откройте приложение консоли и посмотрите там. В моем случае он точно рассказал мне, что делать. Я видел: значение NSExtension.NSExtensionAttributes.WKAppBundleIdentifier

ErrorDescription = WatchKit 2 приложения внутреннего абонент не соответствует расслоению ID WatchKit приложения (найдено "com.myCompany.MyApp.MyApp.watchkitapp", как ожидается «com.myCompany.MyApp.watchkitapp «).

Итак, я подошел к каждому plist и проверил все элементы, связанные с BundleID. Затем очистить, перезапустить и т. Д.

+0

Спасибо, это помогло мне. – Noura

+0

Вы сохраняете мою жизнь, предлагая CONSOLE –

0

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

+0

Какой именно «ключ»? –

0

Это работало для меня: В настройках проекта -> вкладка «Общие» -> раздел «Идентификация». Я изменил номер версии с чего-то вроде 2.0.2 (три цифры) на 2.0 (две цифры), после чего я удалил приложение в симуляторе и снова запустить проект. После этого больше не возникает ошибок.

1

У меня была эта ошибка, пытаясь построить проект Lister Xcode от Apple и запустить его на симуляторе.

Основы исправляющие это для меня были:

1) BundleID для IOS App и расширения IOS должны были быть разными 2) Я обеспечиваю ICloud и App групп для обеих целей 3) я использовал Xcode-х «Исправить проблему», чтобы исправить проблемы

После этого я мог создавать и запускать приложение без предупреждений или ошибок.

Ключ из файла журнала был»... LegacyErrorString = DuplicateIdentifier, FunctionName = - [MIInstallableBundle performPreflightWithError:], SourceFileLine = 450, NSLocalizedDescription = Родитель пучок имеет тот же идентификатор (com.ACMECompany.Lister) в качестве суб -bundle в /Users/stephen/Library/Developer/CoreSimulator/Devices/5329928B-946B-40A4-B666-EFD11B96D11F/data/Library/Caches/com.apple.mobile.installd.staging/temp.HQ5d9X/extracted/Lister. приложение/Plugins/Lister.апелляционный «

3

У меня есть приложение, которое настроено на использование разных идентификаторов пакетов на основе конфигурации сборки. При создании моего расширения Apple Watch Xcode генерировал все, используя мой идентификатор Release, поэтому мне пришлось пройти и изменить все это . вручную для отладки Вот все места, которые я должен был изменить его:

  • WatchKit Extension «s Build Settings -> Packaging -> Product Bundle Identifier
  • WatchKit Extension» s Info.plist -> NSExtension -> NSExtensionAttributes -> WKAppBundleIdentifier (это необходимо использовать один и тот же префикс, как ваш компаньон приложение)
  • WatchKit App «ю.ш. Info.plist -> WKCompanionAppBundleIdentifier

Последняя мне потребовалось некоторое время, так как WatchKit App «s информация не отображается в качестве вкладки при просмотре параметров цели, я должен был идти прямо к самому Info.plist файла.

+0

все это правильно, и я до сих пор получаю эту ошибку !!!! –

2

Ни одно из вышеперечисленного не работает для меня, но это сделал:

Я просто удалил IceCream.xcworkspace/xcuserdata/xcuserdatad, а затем сбросить тренажер и снова побежал приложение. (Сброс только на симуляторе, не работал для меня.)

+0

спасибо Роберту Васвари за этот! –

+0

MAN !! ЗДОРОВО!! Это прекрасно сработало для меня :) –

2

Отличное объяснение Джереми по крайней мере поставило меня в правильном направлении, но, несмотря на то, что все идентификаторы и версии комплекта установлены правильно, ошибка по-прежнему сохраняется. Затем я проверил Apple documentation, который показывает, что расширение WatchKit (на этапе Copy Bundle Resources) копирует приложение WatchKit. Это приложение WatchKit было названо точно так же, как и мое приложение iOS, в результате чего Xcode запутал их и запустил неправильный plist, считая, что идентификатор пакета неверен. Переименование продукта приложения WatchKit для чего-то определенного, наконец, решило его для меня.

+0

Приветствую, даже подумал, что Apple может быть сплошной ссылкой, было бы лучше включить важную часть ссылки в качестве цитаты в свой ответ, используя кнопку редактирования ссылки! – ForceMagic

+0

Спасибо ForceMagic, я обращу внимание на это в будущем. Я немного новичок в публикации в stackoverflow. –

+0

Нет проблем! Что круто с SO, это то, что он автоматически управляется сообществом, и он спроектирован так, что каждый пост является улучшаемым :) Вот почему вы всегда можете редактировать свой собственный пост и улучшать его! Просто нажмите на ссылку редактирования ссылки ниже этого! ;) – ForceMagic

2

Мое дело было о каркасе компиляции. «Только при установке копии» вариант из мишеней сборки Phases- Embedded Frameworks- enter image description here

1

Имел неправильную версию приложения установить в InfoPlist.stringsлокализации файла Я позволил. Urgh!

Прошел час!

0

одно возможное решение, чтобы добавить ко всем другим, что, несомненно, будет оставаться выше моим;)

Я удалил & позже восстановлена ​​цель Сегодня Extension удерживающую исходные файлы, но после попытки всех решений под солнцем , Я понял, что у него нет источников или ресурсов в своей цели! Вы можете столкнуться с этим, если ваша подробная ошибка служб запуска не может найти файл скомпилированного приложения.

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

0

я имел следующее в моем журнале ...

<Error>: Error Domain=LaunchServicesError Code=0 "(null)" UserInfo={Error=ExecutableTwiddleFailed... 

Это был связан как нет никаких исходных файлов, добавленных в проекте расширения.

25

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

Проблема в том, что существуют разные причины для одного и того же сообщения об ошибке, и правильным решением является открытие ~/Library/Logs/CoreSimulator/CoreSimulator.log и просмотр там для последнего сообщения. Это сообщение дает вам хороший ключ и задает вам правильный путь решения вашей проблемы (иногда это идентификаторы пакетов, иногда это недостающий или дополнительный атрибут в Info.plist, но вы всегда получаете хороший, описательный ключ).

Вот как вы сужаете проблему и в конечном итоге можете ее исправить.

Успехов и жесткие нервы с Xcode.)

Z.

+2

Это первый логический и рациональный подход, который я видел ... +100 Спасибо за обмен. Просто хвост журнала, и это довольно очевидно, что вам нужно для Google после этого. –

+0

Я не могу найти файл, вы можете объяснить мне, где он размещен или должен быть. Спасибо – IgniteCoders

+0

Конечно. Знак '~' означает домашний каталог пользователя. Так, например, мой пользователь// Пользователи/pallzoltan'. Поэтому файл находится в '/ Users/pallzoltan/Library/Logs/CoreSimulator/CoreSimulator.log'. Дайте мне знать, если вы его нашли. Z. –

0

Эта ошибка появляется в моей системе, когда не было места на жестком диске доступны. Я освободил место в моей системе, чтобы он работал.

0

Моя проблема заключалась в том, что расширение оболочки для целевого проекта было отменено.

Чтобы исправить я должен был пойти в целевой проект ->настройки сборки ->упаковки ->Упаковочный Extension.

Установите это «приложение» (без кавычек)

Это устранило проблему для меня

0

У меня была эта проблема тоже, оказывается, один из моих info.plist был назначен на цели конкретно, когда его предположим, что ему не присвоено ни одного. На самом деле есть предупреждение о рекомендациях по настройке Xcode, которое я использовал и принял изменения. Это решило проблему.

15

TLDR: очистите свою папку для создания проекта - и вы будете свободны от этой боли.

(плюс я зарегистрировал это как ошибка с Apple, так как они должны найти способ, чтобы исправить это в Xcode)

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

Потом я увидел через другой SO вопрос, который, к сожалению, я не могу найти ссылку, если вы:

  1. Удерживая клавишу опции затем продукт-> Clean опция становится Clean Build Folder
  2. Press, что и наслаждайтесь с вашей ошибкой исчезните
+1

Это работает для меня, это должна быть «Чистая папка для сборки», а не обычные чистые. Примечание: клавиша опции - клавиша ALT на клавиатуре Windows. – Wappenull

2

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

+1

Только что начал с React Native, и это помогло мне, когда «реагировать-родной run-ios» имел неожиданные результаты. «Сбросить содержимое и настройки», а затем выйти из симулятора и ctrl + w, чтобы закрыть терминал реактора-упаковщика и перезапустить «реагировать-native run-ios». – SMT

+0

У меня также была эта проблема с React Native, и я также решил это для меня. Благодаря :) – TheLukeMcCarthy

 Смежные вопросы

  • Нет связанных вопросов^_^