Xcode: "Наразі цю програму неможливо встановити."


76

Робота з моєю першою заявкою для навчальних цілей. Це добре, але зіткнулося з проблемою Xcode. Коли я намагаюся запустити програму на симуляторі iPhone, завжди з’являється таке повідомлення: «Цю програму неможливо встановити на даний момент».

скріншот

Що не так? Немає помилок при спробі побудувати програму. Спробував почистити збірку. Перевстановіть стручки. Перезапущений Xcode. Видалено всі налаштування пристрою-симулятора, однак проблеми все ще існують.

Повідомлення про помилку не дає мені жодної інформації. Чи є ще один журнал, до якого я міг би заглянути чи щось інше?


1
Що не так, запитаєте ви? Xcode глючить. Часто допомагає вихід із Xcode та його перезапуск.
picciano

3
Ха-ха! Я знайшов душу відразу після публікації цієї публікації. Помилки були в чомусь із файлом plist. Знайшов помилку у файлі журналу, який знаходиться за адресою ~ / Library / Logs / CoreSimulator /
JoakimSjo

2
@PureRushh Чи можете ви дати докладнішу інформацію? Можливо, опишіть те, що сталося, як відповідь на власне запитання. Може допомогти комусь іншому.
matt

Перевірте запущений тренажер, спочатку видаліть програму, яку я встановив. Я вирішую проблему таким чином.
杜 彦 恺

Примусово вийти з симулятора та побудувати та запустити Xcode це працює !!
Йогеш Патель

Відповіді:


83

Мені вдалося знайти проблему. Проблема полягала в тому, що я додав деякі ключі до файлу списку властивостей, який був недійсним. Помилку я знайшов, заглянувши у файл журналу, який знаходився тут: ~ / Library / Logs / CoreSimulator /


Вирішив мою проблему, пов’язану з локалізацією, яка зупинилася, залишивши Info.plist не в тому місці.
Джон

1
Дякую, це було дуже корисно. Можливо, замість того, щоб повідомляти нам про це марне та розчарувальне повідомлення про помилку, Apple може запропонувати перевірити журнали симулятора, навіть якщо розробник визначить точну помилку.
todd412

1
У моєму журналі була основна помилка, через яку я помилився Info.plist. ДЯКУЮ!
Містер Роджерс

4
Файл з іменем: CoreSimulator.logу каталозі ~ / Library / Logs / CoreSimulator /.
Almas Adilbek,

3
Знову натрапив на цю проблему. Журнал тренажера в програмі Simulator не повідомляв про будь-які проблеми. Simulator -> Debug -> Open System Log.... Тільки збираюся CoreSimulator.logз tail -f ~/Library/Logs/CoreSimulator/CoreSimulator.logповідомив про проблему.
Містер Роджерс

76

Скиньте тренажер:

Hardware -> Erase All content and settings...

Очистіть свій проект:

shift+ cmd+K

shift+ opt+ cmd+K

Це має вирішити вашу проблему


6
FWIW: Мені довелося лише очистити проект, щоб програму можна було встановити знову.
lustig

Виправив це для мене. Як надокучливо.
Ітан,

@Там повністю згоден! Щасливий, що я допоміг
опромінив

FWIW: Мені довелося лише скинути симулятор, щоб додаток знову встановити: P
Бруно Елі

11

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

  • Перевірте журнали симулятора, якщо його друк щось корисне. Спочатку виберіть симулятор, а потім у меню відкрийте Налагодження -> Відкрити системні журнали .

  • Переконайтеся, що працює лише 1 симулятор.

  • Видаліть із симулятора стару версію програми.

  • Якщо ви імпортуєте спеціальний фреймворк, переконайтесь, що спеціальний фреймворк-> bundle-id не збігається з currentAppProject-> bundle-id. Якщо ви не впевнені, просто змініть ідентифікатор пакета поточного проекту.

  • Також деякі тренажери можуть помилятися -> Просто змініть тренажер, це може вирішити проблему, для мене зміна тренажера спрацювала.


1
Видалення старої версії програми із симулятора це виправило для мене.
Метью Креншоу,

Для мене проблема виникає знову. Насправді, я створював фреймворк Umbrella, і обидва фреймворки мали однакові ідентифікатори наборів, зміна ідентифікатора набору назавжди виправила мою проблему.
Emy Stats

У моєму випадку я не знаю, чим вони відрізняються, але проект Objective-C працює нормально, але Свіфт ні
quangkid

У моєму випадку "custom framework-> bundle-id" був однаковим для цільового проекту.
Мухаммед Умайр

5

Знайдено питання в ~ / Library / Logs / CoreSimulator // MobileInstallation

Значення NSExtension.NSExtensionAttributes.WKAppBundleIdentifier розширення програми WatchKit 2 не відповідає ідентифікатору набору додатків WatchKit


Дякую за підказку. У мене виникла ця проблема після того, як я змінив ідентифікатор набору, але з якихось причин всередині WKAppBundleIdentifier програми Apple Watch та розширення Apple Watch ідентифікатор був неправильним
marcomoreira92

5

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


Якщо ви спробуєте використовувати символічне посилання на фреймворк, ви можете отримати цю помилку.
sdsykes

5

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


5
rm -rf ~/Library/Developer/Xcode/DerivedData/

4
Поясніть, будь ласка, свою відповідь.
Прамод Море

Я думаю, це пов’язано з кешами Xcode; Моє діалогове повідомлення про помилку (тема цього потоку SO) включало деталі, що щось у папці / caches / не вдалося знайти; Я впізнав наведену вище команду через деякий час назад (не впевнений, чи має вона вирішити ту саму проблему) і запустив її; вирішив проблему для мене; корисна команда, яку потрібно точно зберегти у наборі інструментів xcode.
Reece

4

Змінивши CFBundleShortVersionString в InfoPlist.strings на той, що відповідає тому в info.plist, це виправлено для мене. Мені довелося скористатися симулятором «Стерти весь вміст та налаштування» після внесення змін.

Спроба запуску на симуляторі з iOS 9.0 (замість 11.2) дала цю помилку замість цього, що допомогло мені знайти більше відповідей на те, що, мабуть, та сама проблема:

Операцію не вдалося завершити. (Помилка LaunchServicesError 0.)


4

Я бачив це на всіх симуляторах та всіх пристроях. Видалення програми могло б спрацювати один раз, але мені продовжувало не вдаватися.

Виправлення полягало в тому, щоб знищити всі стручки мого проекту:

pod deintegrate

А потім знову встановіть:

pod install

Це було з XCode 9.3 та iOS 11.2 / 11.3.



3

Це сталося зі мною, коли я міняв гілки з іншим розробником, який використовував іншу версію CocoaPods, видалення папки похідних даних спрацювало!


1
у мене була подібна ситуація, видалення похідних даних спрацювало і мені
MikeG

2

Просто симулятор і почати знову працює для мене. У моєму випадку помилка завжди виникає, якщо я зміню ідентифікатор пакета і запускаю після цього симулятор iPhone X.


2

Я зіткнувся з цією помилкою, але вона не мала нічого спільного з моїми Info.plistчи Cocoapods. Я помилково видалив копію NotificationServiceExtensionгрупи у своєму проекті Xcode, що призвело до того, що в підсумку з’явилася NotificationServiceExtensionціль, яка не мала вихідних файлів (мені потрібен лише один вихідний файл для інтеграції / відмови від багатих сповіщень Urban Airship SDK).

Після скасування фіксації, де я видалив групу дублікатів, а потім видалення правильної групи дублікатів (тієї, яка не вказала вихідний файл як частину цілі), я зміг створити та запустити чудово.


2

Щоб додати трохи додаткової інформації тут. Незважаючи на те, що Xcode абсолютно непотрібно розповісти, чому програму не вдалося встановити, консоль має досить добрі повідомлення про помилки. Просто запустіть Console.app ( Програми> Службові програми> Консоль ) і відфільтруйте вихідні дані за installcoordinationd.

Це дасть вам щось подібне, що описує помилку:

installcoordinationd - [IXSCoordinatedAppInstall _onQueue_acquireAssertionAndDoInstall] _block_invoke: Установка для ідентифікатора: com.acme.location-штуковина UUID: бла-бла-бла-Foo наміри: IXCoordinatorIntentInitiating творець / appDRI: InstallCoordination Простий SPI userInitiated: N стан: IXAppCoordinationStateWaitingForInstall> не вдалося: Помилка домену = MIInstallerErrorDomain Code = 99 "WatchKit v3 додаток заборонено Info.plist ключ: NSLocationUsageDescription" UserInfo = {LegacyErrorString = WatchKitAppIllegalInfoPlistKey, FunctionName = - [MIExecutableBundle hasOnlyAllowedWatchKitAppInfoPlistKeysForWatchKitVersion: помилка:], SourceFileLine = 1841 NSLocalizedDescription = WatchKit v3 додаток заборонений ключ Info.plist : NSLocationUsageDescription }

Сподіваюся, це комусь корисно!


2

Я зіткнувся з цією помилкою під час розробки мого першого додатку WatchKit. Дотримуючись вказівок @PureRushh, @Antonioni та інших, щоб скинути вміст:

~ / Бібліотека / Журнали / CoreSimulator / CoreSimulator.log

Зміст журналу призвів мене до помилки. Я включу подробиці, якщо інші люди зіткнуться з цією помилкою під час розробки програм WatchKit.

Повідомлення журналу :

com.apple.dt.Xcode [89555]: installApplication: withOptions: error :: Error Domain = IXUserPresentableErrorDomain Code = 1 "Зараз цей додаток не вдається встановити. " UserInfo = {NSLocalizedDescription = Цю програму неможливо встановити в цьому time., NSUnderlyingError = 0x7f9ab87d1f20 {Error Domain = MIInstallerErrorDomain Code = 101 " Ідентифікатор набору додатків WatchKit 2.0 com.somecompany.AirTime2.watchkitapp не має префікса в ідентифікаторі набору батьківського додатка, після якого додається '.'; очікуваний префікс com.Air. . "

Причина : я змінив значення, пов’язане з ключем BundleIdentifier у Info.plist (через General-> Bundle Identifier) ​​батьківської програми, щоб воно відповідало типу URL-адреси (для перенаправлення SSO); однак мені не вдалось оновити значення WatchKit App Info.plist, пов'язане з ключем WKCompanionAppBundleIdentifier (див. другий жирний рядок).

Виправлення : змініть значення WatchKit App Info.plist для ключа WKCompanionAppBundleIdentifier, щоб узгодити його з ідентифікатором набору батьківського додатка


1

Можливо, ви також захочете переглянути різні можливості для різних цілей. У мене виникла проблема з ідентифікатором мого додатка

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


1

Я теж отримав цю помилку. Все почалося невдовзі після того, як я дозволив Xcode оновити налаштування проекту. Зокрема, щодо мого підпроекту CocoaPod. Я видалив стручки та перевстановив їх, і це вирішило мою проблему. Сподіваюся, це спрацює і для вас, і для інших, хто знаходить це питання.


1

Замість того, щоб перезапустити симулятор, ви також можете просто видалити програму з симулятора. Ця помилка виникає, коли ви підготували програму до виробництва, а потім спробували створити її на телефоні. Виникають проблеми, коли ви намагаєтеся створити один і той же додаток двічі (це також те, чому ви не отримуєте цієї проблеми під час запуску в режимі тестування).


1

Якщо ви імпортуєте спеціальний фреймворк, переконайтесь, що спеціальний фреймворк-> bundle-id не збігається з currentAppProject-> bundle-id. Якщо ви не впевнені, просто змініть ідентифікатор пакета поточного проекту. У мене це працює :)


1

У моєму випадку повідомлення з’явилося, коли я мігрував із Cocoapods до Карфагена і мав Firebase iOS SDK серед своїх залежностей.

Проблема була вирішена, коли я зрозумів, що Firebase НЕ повинен бути серед фреймворків, які копіюються на carthage copy-frameworksетапі.

Докладніше про Firebase та Carthage див. В офіційній документації .


1

Я стикався з такою ж проблемою, як ця. але у мене нічого не вийшло. Тоді я помітив одну проблему у своєму файлі info.Plist. Ім'я виконуваного файлу відрізнялося від імені схеми в редагуванні схеми. Тож переконайтеся, що це обидва однакові, тоді спробуйте запустити свій проект. Це має спрацювати.


1

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

Виконайте ці кроки, і ви напевно знайдете рішення цього. Більшість з них вже згадано вище

  1. Симулятор> Пристрій> Стерти весь вміст і налаштування
  2. Видаліть повторюваний запис підтримуваної орієнтації інтерфейсу або перевірте файл plist на наявність помилок
  3. У вашому Xcode> Продукт> Папка чистої збірки (Cmd + Shift + K)
  4. Просто спробуйте побудувати та запустити проект

Сподіваюся, ви зможете вирішити цю дратуючу проблему після цього.

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


0

У мене виникла ця проблема під час роботи з Xcode 9.2. Рішення полягає в тому, щоб просто видалити програму та повторно встановити її знову.


Після встановлення програми вона не дозволить мені перевстановити - отже, це не працює для мене.
Ітан,

@Ethan: Чому так?
Jayprakash Dubey

Щоб бути зрозумілим, я не проголосував. Але це не спрацювало для мене. Все, що в кінцевому підсумку вдалося, - це скидання пристрою та очищення збірки та проекту
Ітан,

1
Ця відповідь не помилкова, одне з рішень цього питання. Я також ним користуюся.
Юсель Байрам


0

У моєму випадку я намагався запустити віджет. Налаштування схеми для віджету мають бути: Виконати -> Інформація -> Виконувана програма: "Запитувати при запуску"


0

Привіт, Хлопці, просто хочу повідомити, що жодне з перерахованого не працювало для мене.

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

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

З повагою, Рольф


0

Я видаляю файли в ~ / Library / Logs / CoreSimulator /, але проблема все ще існує. Потім я стираю весь вміст і налаштування, і це нормально!


що означає "стерти весь вміст і налаштування" ...?
Роббі

1
@Robbie Simulator -> Апаратне забезпечення -> Стерти весь вміст і налаштування ...
Yvan



0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.