Неможливо запустити програму в Simulator: під час запуску сталася помилка (Domain = LaunchServicesError, Code = 0)


91

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

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

Якщо хтось знайшов можливу причину (або вирішення !!), крім цих , будь ласка, допоможіть. Дякую


було б корисно, якщо б ви могли перелічити те, що ви намагалися виключити з цих рекомендацій.
donmarkusi

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

3
«Продукт -> Чистий» у мене спрацював.
nshuman

У мене була ця проблема: stackoverflow.com/questions/27037589 / ...
derpoliuk

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

Відповіді:


175

"Скинути вміст і налаштування" в меню меню Simutalor і запустити симулятор після виходу вирішило мою проблему.

Скиньте вміст і налаштування


6
Набагато краще, ніж початкова відповідь. Повинен бути позначений як рішення.
denislexic

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

Ця вимога вже згадується у моїй відповіді @jfredsilva.
Sauvik Dolui

1
Також видалення програми, якщо ви раніше її встановили на симуляторі
danywarner

Працюй для мене. Дякую
Nikhil Chaurasiya

125

Очищення папки складання вирішило проблему для мене. Сподіваюся, це комусь допоможе!

(Утримуючи натиснутою клавішу Alt : Product> Clean build folder )


1
YA YA YA,
вирішено

1
Це спрацювало для мене після того, як я оновив для використання Cocoapods та .xcworkspace.
Іван Цар

3
Це потрібно зробити після оновлення до Cocoapods v1.0.0
Anconia

Додамо лише, це єдине, що вирішило цю проблему для мене після оновлення до Cocoapods v1.0.0. Жодна з інших відповідей SO не спрацювала.
Andy Rice

Працював, я такий щасливий
anavarroma

33

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

рішення: Це відбувається через компіляцію фреймворку.

Ціль програми -> Фази побудови -> Вбудовувати фреймворки.

Тому позначайте копію лише під час встановлення на. Очистіть проект і запустіть його!

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


Чи можете ви пояснити більше про те, як "Копіювати лише під час встановлення" вирішує проблему?
sethfri

@ sethfri: "Копіювати лише під час встановлення", щоб вказати, що фаза збірки копіює файли лише в збірках встановлення продукту. developer.apple.com/library/mac/recipes/…
AG

3
Я розумію, що означають слова "Копіювати лише під час встановлення". Я запитую, як це вирішує проблему, з якою стикається автор запитання.
sethfri

28

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


Я щойно додав shareKit, і у мене така сама проблема.
dirkoneill

24
Якщо це комусь допомагає: Ви можете отримати доступ до системного журналу, набравши Console у центрі уваги.
Nate Cook

Для мене це було MixpanelAppExtension
villy393

Дякую, це мені допомогло. XCode 7.3.1 і мій журнал показав "ErrorDescription = Не вдалося скопіювати жорстке посилання". Я встановлював версію, але не збирав номер збірки в Target -> General -> Identity. Після того, як я включив значення для побудови, проблема зникла.
Вільям Сміт,

Щоб перевірити системний журнал, спробуйте цю команду в Terminal: tail -f /var/log/system.logiOS Simulator друкує безпосередньо в stdout, щоб ви могли бачити журнали, змішані з системними журналами.
vhong

16

Якщо хтось має цю проблему в поєднанні зі стручками какао, ці кроки допомогли мені вирішити цю помилку (через кілька годин):

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

... спробуйте побудувати та запустити свій проект.

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

Сподіваюся, це допоможе.


2
Це зробило це. Дякую! Дійсно, це повинна бути прийнята відповідь.
Dan Loewenherz

Це вирішило мою проблему! Безумовно, це повинна бути прийнята відповідь!
Віктор Олівейра Антоніно

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.)
JeroenJK

@JeroenJK Так, це Cmd.
Dharmbir Singh

Ого, зміна посвідчення пакета - це те, що нарешті спрацювало для мене. Дякую!
ArtSabintsev

6

Може бути пов’язане з цією проблемою: проблема „Ця програма містить розширення програми з нелегальним ідентифікатором набору”

Мені довелося відформатувати ідентифікатори набору для мого додатка та розширення наступним чином:

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

Те ж саме. Я змінив ідентифікатор пакета, оскільки розширення (віджет) не відображалося, і це спричинило його. Довелося знизити версію розширення з 9,2 до 8,2 та змінити комплект, як зазначено вище.

Дякую, саме моя проблема!
Андрес

5
  1. Спочатку "Скинути вміст і налаштування"
  2. Якщо ви не заповнили номер збірки, заповніть його та запустіть.

Це вирішено для мене.


4

Якщо ви змінили ім'я наданого класу, InterfaceControllerвстановленого за замовчуванням, під час запуску нового проекту. Цей клас посилається на Info.plistпід ключем RemoteInterfacePrincipalClass. У моєму випадку я отримав помилку, згадану в OP, поки не зафіксував там назву класу (див. Знімок екрана).

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


Це справді допомогло! Дякую!
Лонклі,

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: я також отримую це, що є рішенням? не використовує на годинниковому наборі або watchOS
Абхішек Тапліал

1

Я користувач adMob, і я вирішив увімкнути функцію "Копіювати лише під час встановлення" у програмі призначення -> Фази побудови -> Вбудовувати фреймворки.


1

Виникає та сама проблема після локалізації мого додатка. Особливо Info.plist. Здається , у мене було порожньо CFBundleShortVersionStringпісля прибуття InfoPlist.strings, після фіксації , що тренажер почав працювати належним чином.


Це теж була моя проблема. Якщо ви бачите, що спробуйте видалити всі файли, які не потребують локалізації, із ваших файлів InfoPlist.strings. У моєму випадку видалення ключів нижче фіксоване все: CFBundleName CFBundleShortVersionString CFBundleVersion
Лазарев

1

Я отримав цю проблему, додавши посилання на папку з назвою "Ресурси".

Якщо я дам йому інше ім'я, то воно працює!


1
Це вирішило мені подібне питання! Я вбудовував dylib, і це спричинило загадкове повідомлення "помилка встановлення CFBundleIdentifier у його Info.plist". Змінивши папку Resources на щось інше, вона знову запрацювала
Sagi Iltus

Два птахи одним каменем;)
Лось

1

Існує ряд речей, які можуть спричинити цю помилку. Найкраща загальна відповідь - це пошук у журналі консолі CoreSimulator, оскільки симулятор реєструє основну проблему, коли відображає це повідомлення.


1

Дякуємо, що вказали на це @Miki та похвала. У мене була та ж проблема, що і у вас вчора (і я додав ShareKit 3.0.0 із CocoaPods до програми кілька днів тому). Я підозрював, що ShareKit дав мені цю проблему, але тепер я можу бути впевненим, яка саме бібліотека спричиняє це. Ось що я знайшов у своєму журналі (якщо це може принести користь іншим):

Error Domain = LaunchServicesError Code = 0 "Операцію не вдалося виконати. (Помилка LaunchServicesError 0.)" UserInfo = 0x7fa836097aa0 {Error = PackageInspectionFailed, ErrorDescription = Не вдалося завантажити Info.plist із набору за адресою path / Users / {UserName} / Library / Developer / CoreSimulator / Devices / 99FEB34E-6F00-4EFA-861A-A6985AFE96D8 / data / Library / Caches / com.apple.mobile.installd.staging / temp.X7eead / extracted / {AppName} .app / Frameworks / LiveSDK. каркас}


1
з вашого журналу, як ви можете знати, що ShareKit викликає помилку?
chipbk10

1
у мене в журналі є те саме, але видалення тренажерів та їх додавання назад не допомагає ... як ви виправили помилку?
Амітай

1

Якщо ви встановили будь-які бібліотеки, які використовували, CocoaPodsпоки XCode був відкритий, все, що вам потрібно зробити, це закрити XCode і видалити бібліотеку з Podфайлу, виконати команду, яка видалить pod installцю бібліотеку. потім встановіть бібліотеку знову. Переконайтесь, що XCode завжди закритий під час встановлення та видалення бібліотек.


0

Я ненавиджу точно таку ж проблему, і це був ShareKit.

На тренажері у мене було "Домен помилки = LaunchServicesError Code = 0".

На пристрої iPhone6 ​​у мене було "Не вдалося встановити програму Не вдалося перевірити пакет програм".

Коли я видалив ShareKit, це спрацювало.


0

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


0

Цьому можуть бути різні речі. Погляд на консоль цілком може дати вам підказку.

У моєму випадку - проблема полягала в розширенні, створеному до того, як я змінив назву продукту. Xcode не видалив старий, а потім зазнав напруги в двох розширеннях з однаковим ідентифікатором пакета.

(Видалення папки складання вирішило мою особливу проблему).


0

У моєму випадку проблема виникла в наборі значків, доданому, де відсутні деякі зображення. Одного разу я замінив набір іконок на інший і видалив програму в тренажері; Я зміг запустити його знову.


0

Я видалив усі свої файли pod і замінив їх усі, здається, проблемою для мене було те, що фреймворк болтів був старим і спричинив цю помилку. Я зробив чистий і скинути вміст, і тепер це все добре.


0

Не додавайте фреймворк Google Maps до вбудованого розділу lib, це вирішило мою розрив збірки.


Видалення вбудованого фреймворку, який не був необхідним, щоб бути там, також виправило мою проблему
manman

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.