Печать: Entry, «: CFBundleIdentifier», не существует


117

Когда я запускаю react-native run-iosсборку, я получаю сообщение об ошибке ниже. Я все проверил, но ничего не работает. Использование sudoперед командой тоже не помогает. Я использую Xcode 7.3, response-native-cli: 0.2.0, react-native: 0.24.1, node v5.11.0.

=== BUILD TARGET mobileTests OF PROJECT mobile WITH CONFIGURATION Release ===

Check dependencies

** BUILD SUCCEEDED **

Installing build/Build/Products/Debug-iphonesimulator/mobile.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
Failed to install the requested application
An application bundle was not found at the provided path.
Provide a valid path to the desired application bundle.
Print: Entry, ":CFBundleIdentifier", Does Not Exist
/Users/astiefel/workspace/bosspayments/mobile/node_modules/promise/lib/done.js:10
      throw err;
      ^

Error: Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/mobile.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

    at checkExecSyncError (child_process.js:470:13)
    at Object.execFileSync (child_process.js:490:13)
    at _runIOS (runIOS.js:91:34)
    at runIOS.js:24:5
    at tryCallTwo (/Users/astiefel/workspace/bosspayments/mobile/node_modules/promise/lib/core.js:45:5)
    at doResolve (/Users/astiefel/workspace/bosspayments/mobile/node_modules/promise/lib/core.js:200:13)
    at new Promise (/Users/astiefel/workspace/bosspayments/mobile/node_modules/promise/lib/core.js:66:3)
    at Array.runIOS (runIOS.js:23:10)
    at Object.run (/Users/astiefel/workspace/bosspayments/mobile/node_modules/react-native/local-cli/cli.js:86:13)
    at Object.<anonymous> (/usr/local/lib/node_modules/react-native-cli/index.js:88:7)

И существует ли в файле идентификатор пакета? Я полагаю, что нет, поэтому вопрос в том, «почему это не записывается в файл».
— trojanfoe

На самом деле это не помогает. Вы можете уточнить?
— astiefel

Для меня это связано с проблемой совместимости с Xcode9.4. Я решил, используя следующие шаги. «rm -rf node_modules», затем «react-native upgrade», затем «npm install», затем «react-native run-ios»
— раджа

Раджа .. вы уверены, что после удаления папки node_modules можно запустить реактивное обновление? Я попробовал, и он сказал, что обновление не распознается
— VK1

Просто закройте свой терминал, откройте его снова и запустите приложение, которое у меня сработало.
— Чандни

Ответы:


110

Открыть проект в Xcode

Если Xcode> 9 запустить команду react-native upgrade(это перезаписывает все ваши конфигурации iOS, используйте с осторожностью !)

затем

1. Перейдите в Файл -> Настройки проекта.

2. нажмите кнопку Advanced

3. Выберите «Пользовательский» и выберите «Относительно рабочего пространства» в раскрывающемся списке.

4. Измените "Build / Products" на "build / Build / Products" и "Build / Intermediates" на "build / Build / Intermediates".

Добавить пакет

5. нажмите "Готово", "Готово"


1
Это сработало для меня на xcode 8.2, исправила мою проблему, спасибо!
— KrakenDev

@SurajShingade У меня на компьютере установлен Xcode 9.4, и я не могу найти параметр «Настройки проекта» в разделе «Файлы». Я вижу только «Настройки рабочего пространства ...». Вы знаете, где получить доступ к настройкам проекта? - imgur.com/a/SqAemnL - удерживание клавиши выбора при открытом меню «Файл» тоже не показывает этого
— Пэт Нидхэм,

1
@PatNeedham «Настройки проекта» были переименованы в «Настройки рабочего пространства»
— Тоби Колк

3
Не могли бы вы немного объяснить, почему это решение работает?
— Виктор

3
Это все еще способ исправить это с xCode 10
— jacurtis

70

Это может произойти, если вам не хватает файла config.h ,

Для обновления файла config.h ,

1) Закройте свой Xcode.

2) Откройте Терминал, перейдите в корневую папку вашего проекта и выполните:

cd node_modules/react-native/third-party/glog-{X}.{X}.{X}/

3) Запустите скрипт настройки:

./configure

4) Откройте Xcode и попробуйте запустить приложение.

{X}: номер версии glog


Спасибо!! это сэкономило мне время.
— Гурджиндер Сингх

6
Я установил response-native с нуля, создал свой первый проект, но не смог заставить его работать. Этот ответ устранил мою проблему. Интересно, почему это происходит, ведь это свежая и новая установка
— Антонио

Не могли бы объяснить, почему это происходит?
— Патрик Бассут

Это сработало для меня. Новая установка response-native 0.55, Xcode версии 10
— мат

1
... а если configureскрипта нет , как в 0.58?
— Скотт

29

Обновите React, используя react-native upgrade сделало это за меня.

Отказ от ответственности : при этом перезаписываются все ваши конфигурации iOS, используйте с осторожностью !


30
перезапись всех файлов iOS приведет к перезаписи любых настроек, которые вы внесли в свой проект. ржунимагу. используйте на свой страх и риск отказ от ответственности - это меньшее, что вы можете сделать.
— AlxVallejo

1
Было бы полезно, если бы кто-нибудь мог объяснить, что означает «все ваши конфигурации iOS».
— Эндрю Костер

25

Если вы используете Xcode 10, это может быть связано с несовместимостью с последней системой сборки Xcode. Попробуйте перейти на устаревшую систему сборки.

Откройте Xcode 10, File> Project Settings> Build System> переключите раскрывающийся список на Legacy Build System.

Скриншот


крысы! Я потерял два рабочих дня из-за этого вопроса. Что безумно, моя сборка CLI работала нормально до трех дней назад. Понятия не имею, что случилось. Это тоже не устранило проблему. Хотите, чтобы мой крик вырос? TT
— Майк С.

10

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


3
Но что, если вы хотите запустить свой проект в режиме Release?
— Tieme


@astiefel Я думаю, это то, что происходит и со мной. Кстати, как вы меняете тип сборки?
— JohnnyQ 05

@JohnnyQ Перейдите в Product-> Scheme-> Edit Schemeи затем выберите Отладка в разделе Конфигурация сборки
— astiefel

10

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

Вот что я сделал:

1) Убедитесь, что в каталоге файлов нет пробелов.

2) каталог проекта компакт-диска

3) запустите команду response-native upgrade

4) Перейдите в родную папку ios и откройте проект xcode.

5) Перейдите в Файл> Настройки проекта> Дополнительно ...

6) выберите Custom> Relative to workspace

7) путь к продуктам должен быть «build / Build / Products»

8) промежуточный путь должен быть 'build / Build / Intermediates'

9) теперь попробуйте запустить команду в своем терминале, реагирующем на родную версию run-ios

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


21
не работает у меня, но у меня эта ошибка: Entry, ": CFBundleIdentifier", не существует
— Mehrnoosh

9

Для react-native@0.46.4 следующих сделал трюк для меня:

1) Проверьте свои пути, откройте файл .xcodeproj (не .xcworkspace) и:

  • перейдите в File> Project Settings> Advanced

  • custom> Относительно рабочей области

  • установить путь продуктов к 'build/Build/Products'
  • установить промежуточный путь к 'build/Build/Intermediates'
  • нажмите "Готово" и сохраните изменения

2) Беги rm -rf ios/build в корневом каталоге вашего проекта

3) Закройте свой реактивный упаковщик

4) Беги react-native run-iosснова


Также работает над: "react": "16.2.0", "react-native": "0.52.0",
— Raju yourPepe

Эта проблема решена для меня после добавления зависимостей через Pods в часть iOS нашего проекта RN. За исключением: я внес это изменение в .xcworkspaceконфигурацию.
— cayleyh

@cayleyh, это не совсем для меня, но оно устранило Splashscreenошибку, так вы говорите, что следовали шагу Тимса, но не сделали это внутри xcworkspace?
— Даниэль

8

Это случилось со мной, когда моя папка node_modules стала непонятной после установки нового пакета. Я убил папку, rm -rf node_modulesа затем npm installпереустановил свои пакеты, и это исправило.


Это было единственное, что исправило это для меня.
— 223seneca

7

Print: Entry, ":CFBundleIdentifier", Does Not ExistСообщение указывает только ваш проект не удалось компиляции или ссылку. Вам нужно будет просмотреть свой вывод, чтобы найти подсказку о реальной основной причине.

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


Спаситель жизни. Это действительно была другая проблема. Если бы моя схема была переименована, проблема была решена.
— Мохаммад Аббас

В моем компилировании Xcode я могу построить. При запуске команды run-ios с
— реактивным кодом произошел

6

Если вы получили эту ошибку, вероятно, у вас нет правильного пути для вашего приложения.

Произошла ошибка при обработке команды (домен = NSPOSIXErrorDomain, код = 2): Не удалось установить запрошенное приложение. Пакет приложения не был найден по указанному пути. Укажите действительный путь к желаемому набору приложений. Печать: Entry, ": CFBundleIdentifier", не существует

React Native жестко запрограммировал его как часть своей команды run-ios в runIOS.js

build/Build/Products/${configuration}-${isDevice ? 'iphoneos' : 'iphonesimulator'}/${appName}.app

К сожалению, Xcode имеет разные пути сборки в зависимости от вашей конфигурации и от того, используете ли вы проект Xcode или рабочую область. Я считаю, что путь по умолчанию для проекта Xcode - build/Products.
Я отправил этот запрос на перенос 11899, чтобы дать программистам большую гибкость с помощью интерфейса командной строки.


3

Для меня это была проблема с случайной настройкой модулей с помощью Cocoapods & react-native link одновременно.

Не смешивайте эти два для одинаковых модулей!


Итак, как с этим справиться?
— Isaac

@Isaac nuke cache и установка с помощью ссылки cocoapods / react-native, в зависимости от того, как настроен ваш проект
— Буруянэ Кэтэлин

3

Я исправил это, удалив /build/и react-native run-iosснова запустив


@Eran или ты видишь Provide a valid path to the desired application bundle.в своей консоли? Попробуйте следующие настройки xcodefile => project settings, build system: legacy, derived data: project-relative, DerivedData in the input => advanced, custom, relative to workspace, build/Build/ in the first 2 inputs

2

Вы проверили, объявили ли вы идентификатор пакета? Вы можете сделать это, щелкнув файл проекта в xcode, а затем выбрав вкладку «Общие», и она будет указана под первым текстовым полем в разделе «Идентификация». Другой способ проверить - это проверить ваш файл info.plist в папке ios вашего проекта. Вот как это показано в моем info.plist. Мой фактический идентификатор пакета для моего проекта находится в xcode.

<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>

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


2

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

Шаг 1

Open terminal

Шаг 2

cd node_modules/react-native/third-party

Шаг 3

ls

Copy or identify glog-{version}

Шаг 4

cd ../../../

Шаг 5

cd node_modules/react-native/third-party/glog-{version}

Шаг 6

./configure

Надеюсь, это сработает !!!


2

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

  1. бегать react-native upgrade
  2. открыть xcode
  3. запустить приложение в xCode
  4. работает отлично!

спасибо, Эли, я решил эту проблему, просто запустив «
— response

Тем, кто работает в корпоративных средах, я бы посоветовал с осторожностью использовать это решение. Обновление ядра, поддерживающего реакцию, необходимо запланировать, поскольку это может негативно повлиять на работу других. Спроси в первую очередь.
— Майк С.


1

0.44 подходит для запуска , но 0.45 не может , может быть проблема с версией, я решил это с помощью следующей команды : rninit init TaxiApp --source react-native@0.44.0;


1

Мой терминал выдает то же сообщение из-за удаления некоторых симуляторов, которые я не использую в Xcode.

Если ты бежишь react-native run-ios без определенных параметров, react-native запустит симулятор по умолчанию, которым в моем случае является iPhone 6 с iOS 10.3.1, и я случайно удалил этот симулятор.

Вот мои сообщения об ошибках:

xcodebuild: error: Unable to find a destination matching the provided destination specifier:
        { id:F3A7BF54-B827-4517-A30D-8B3241C8EBF8 }

Available destinations for the "albums" scheme:
    { platform:iOS Simulator, id:CD64F26B-045A-4E27-B05A-5255924095FB, OS:10.3.1, name:iPad Pro (9.7 inch) }
    { platform:iOS Simulator, id:8FC41950-9E60-4264-B8B6-20E62FAB3BD0, OS:10.3.1, name:iPad Pro (10.5-inch) }
    { platform:iOS Simulator, id:991C8B5F-49E2-4BB7-BBB6-2F5D1776F8D2, OS:10.3.1, name:iPad Pro (12.9 inch) }
    { platform:iOS Simulator, id:B9A80D04-E43F-43E3-9CA5-21137F7C673D, OS:10.3.1, name:iPhone 7 }
    { platform:iOS Simulator, id:58F6514E-185B-4B12-9336-B8A1D4E901F8, OS:10.3.1, name:iPhone 7 Plus }

, , ,

Installing build/Build/Products/Debug-iphonesimulator/myapp.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):
Failed to install the requested application
An application bundle was not found at the provided path.
Provide a valid path to the desired application bundle.
Print: Entry, ":CFBundleIdentifier", Does Not Exist

Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/myapp.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

Чтобы избавиться от них, откройте свой Xcode и проверьте наличие доступных симуляторов (таких же, как указано в терминале) и запустите react-native run-ios --simulator="your device name"

По моему делу бегу react-native run-ios --simulator="iPhone 7", проблема решена.


Отлично! Спасибо!
— Asinox

1

Через пару месяцев, пытаясь найти все ответы, я, наконец, обновил свою ОС до Sierra, обновил XCode до последней версии, и все ошибки исчезли. Надеюсь, это поможет некоторым людям!


1

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

  1. Установите response-native-git-upgrade и обновите свой проект. npm i -g react-native-git-upgrade && react-native-git-upgrade
  2. Откройте Xcode -> Файл -> Настройки проекта -> Дополнительно.
  3. Выберите « Пользовательский », затем выберите « Относительно рабочей области. », а затем нажмите .
  4. Обновите свой интерфейс командной строки. npm i -g react-native-cli
  5. Обновите свои Nodejs 8 и NPM. nvm install --ltsиnvm install-latest-npm
  6. Удалите ios / build и node_modules (в корневом пути вашего проекта)
  7. Продолжайте снова с помощью npm installи react-native run-iosи обнимите меня :-)

Наконец-то это работает.

  • Mac OS High Sierra 10.13.4
  • Xcode 9.3
  • NPM 5.8.0
  • Узел 8.11.1
  • РН 0,55,2

1

Использование этой версии для меня работает с xcode 10.1

"react": "16.6.0-alpha.8af6728",
"react-native": "0.57.4"

Я искренне думал, что это будет моим спасением, но даже это не сработало. Так что обновление, нет, я не уверен.
— Даниэль

1

Все эти решения не помогли мне. Я только что создал проект rn 0.58.5. И сравнил с моим проектом. Я видел, что JavaScriptCore.frameworkпод Build Phasess>Link Binary With Libraries . После перетаскивания JavaScriptCore встроенная сборка run-ios завершилась успешно.

JavaScriptCore.framework расположение: ‎⁨Macintosh HD⁩ ▸ ⁨Applications⁩ ▸ ⁨Xcode⁩ ▸ ⁨Contents⁩ ▸ ⁨Developer⁩ ▸ ⁨Platforms⁩ ▸ ⁨iPhoneOS.platform⁩ ▸ ⁨Developer⁩ ▸ ⁨SDKs⁩ ▸ ⁨iPhoneOS.sdk⁩ ▸ ⁨System⁩ ▸ ⁨Library⁩ ▸ ⁨Frameworks⁩

JavaScriptCore.framework


Давая +1, я также использовал 0.58.5, и фреймворк также отсутствовал в моей среде.
— Брайан П.

1

Для меня это были зависимости от ios, управляемые cocoapods.

Пришлось сделать это:

$ cd ToProject/ios

$ pod install

$ react-native run-ios

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

https://shift.infinite.red/beginner-s-guide-to-using-cocoapods-with-react-native-46cb4d372995

PS: Пытался выяснить работу, проделанную кем-то другим


при запуске pod install сказано: [!] В каталоге проекта не найден файл `Podfile '.
— Mohammad Mirzaeyan

@MohammadMirzaeyan предположение, что вы сделали pod initи у вас есть действующий подфайл. Пожалуйста, не голосуйте против, если у вас недостаточно знаний, чтобы опровергнуть ваши претензии. Поскольку это был чей-то другой проект, как я уже упоминал, у меня уже был PodFile. Я полностью удалил установку модуля для таких людей, как вы.
— user710907

1

Сообщение об ошибке, подобное The domain/default pair of (../ios/Runner/Info, CFBundleIdentifier) does not exist

Значит, Xcode думает, что у вас plistесть invalid format content.

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

Одна из возможных проблем заключается в том, что эти <key>s и <values>s ( <array>s, <string>s или <bool>s) неправильно спарены. Например:

<key>UISupportedInterfaceOrientations</key>         //<------ here is the key
<key>NSPhotoLibraryUsageDescription</key>
<key>NSCameraUsageDescription</key>
<string>Tagueo necesita usar la camara</string>
<key>NSMicrophoneUsageDescription</key>
<string>Tagueo necesita usar el microfono</string>
<array>                                            //<------ here is the value
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>   //<------ please compare this key
<array>                                            //<------ please compare this value
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>

Вам нужно только переместить keyи valueсобрать

<key>UISupportedInterfaceOrientations</key>        //<------ here is the key
<array>                                            //<------ follow with the value
   <string>UIInterfaceOrientationPortrait</string>
   <string>UIInterfaceOrientationLandscapeLeft</string>
   <string>UIInterfaceOrientationLandscapeRight</string>
</array>

У этого должно быть больше голосов! В моем Info.plist был незакрытый и явно неправильный тег «<string />» посреди ниоткуда. Внимательно проверьте свой файл plist от головы до хвоста.
— Дуглас Шмидт

0

Это работает для меня. Нажмите на проект RCTWebSocket в своем навигаторе и удалите флаги в настройках сборки> пользовательские флаги компилятора введите описание изображения здесь


0

Я нашел, как решить проблему: НЕ используйте пробел в пути к проекту! 🎉 😄


0

Это сработало для меня. Следуйте инструкциям https://facebook.github.io/react-native/docs/getting-started.html (Создание проектов с использованием собственного кода).

Перед запуском команды run-ios для реагирования загрузите модуль boost-узла с https://sourceforge.net/projects/boost/files/boost/1.63.0/ и замените node_modules / response-native / third-party / boost_1_63_0

Теперь запустите команду response-native run-ios


0

Когда вы запускаете npm installкоманду, иногда возникает проблема с Интернетом, файлы в node_modules\react-native\third-partyне загружаются должным образом, поэтому проверьте, правильно ли они загружены, если нет, удалите node_modules и установите его снова

затем запустите react-native run-ios команду


0

Основная причина в том, что порт развертывания не бесплатный. Либо вы перезапустите устройство и освободите все порты, иначе запустите $ lsof -i :8081и найдите процесс, который занимал порт 8081. Завершите процесс, использующий порт 8081, запустив$ kill -9 {process_which_is_running_under_8081}

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.