Друк: Запис, ": CFBundleIdentifier", не існує


117

Коли я запускаю, react-native run-iosзбірка вдається, але я отримую помилку нижче. Я перевіряв всюди, але, здається, нічого не працює. Використання sudoперед командою також не допомагає. Я використовую Xcode 7.3, react-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

Це насправді не допомагає. Чи можете ви докладно?
— астіефель

Для мене це пов'язано з проблемою сумісності з реальною реакцією з Xcode9.4. Я вирішив, скориставшись наступними кроками. "rm -rf node_modules", то "update-native upgrade", то "npm install", потім "react-native run-ios"
— raja

Раджа .. Ви впевнені, що після запуску папки node_modules ви зможете запустити модернізовану реакцію? Я спробував, і він сказав, що оновлення не було розпізнано
— VK1

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

Відповіді:


110

Відкрити проект у Xcode

Якщо команда запуску Xcode> 9 react-native upgrade(це перезаписує всі ваші конфігурації iOS, використовуйте обережно !)

тоді

1.Перейти до файлу -> Налаштування проекту

2. Натисніть кнопку «Додатково»

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 - утримуючи клавішу опції з відкритим меню Файл, це також не відображається
— Pat Needham

1
@PatNeedham "Налаштування проекту" було перейменовано на "Налаштування робочої області"
— Toby Caulk

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


Дякую!! це заощадило мій час.
— Gurjinder Singh

6
Я встановив "реально" з нуля, створив свій перший проект, але не зміг його працювати. Ця відповідь виправила мою проблему. Цікаво, чому це трапляється, адже це свіжа та нова установка
— Антоніо

Розумієте, чому це відбувається?
— Патрік Басут

Це працювало для мене. Свіже установку реагувати нативним 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, Файл> Налаштування проекту> Система побудови> переключіться на спадщину Система збірки.

Знімок екрана


щури! Я втратив два робочі дні до цього питання. Що божевільно, це моя конструкція CLI працювала чудово до 3 днів тому. Ніякої ідеї wtf не сталося. Це також не вирішило проблему. Хочете побачити, як мій плач переріс? TT
— Майк С.

10

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


3
Але що робити, якщо ви хочете запустити проект у режимі випуску?
— Тієм


@astiefel Я думаю, що саме це відбувається і зі мною. Як ви змінили тип збірки до речі?
— JohnnyQ

@JohnnyQ Перейдіть до Product-> Scheme-> Edit Schemeі виберіть Налагодження в розділі Конфігурація збірки
— astiefel

10

Я також натрапив на це питання, і я знайшов спосіб виправити це

Ось що я зробив:

1) Переконайтеся, що в каталозі файлів немає пробілів.

2) каталог проектів cd

3) запустити команду -реактивне оновлення

4) Перейдіть до рідної папки ios та відкрийте проект xcode.

5) Перейдіть у меню Файл> Налаштування проекту> Додатково ...

6) виберіть користувацький> Відносно робочої області

7) шлях продукту має бути "будувати / будувати / продукти"

8) шлях проміжних продуктів повинен бути "будувати / будувати / проміжні"

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

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


21
не працює для мене, у мене є ця помилка: Запис, ": CFBundleIdentifier", не існує
— Mehrnoosh

9

Бо react-native@0.46.4наступне зробив для мене трюк:

1) Перевірте свої шляхи, відкрийте файл .xcodeproj (не .xcworkspace) і:

  • перейдіть у меню Файл> Налаштування проекту> Додатково

  • custom> Відносно робочої області

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

2) Запустіть rm -rf ios/buildу кореневому каталозі вашого проекту

3) Закрийте пакувальник реагування

4) Біжи react-native run-iosзнову


Також працює над: "реагувати": "16.2.0", "реагувати-рідне": "0.52.0",
— Раджу вашПепе

Це вирішене для мене питання після додавання залежностей через 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 команда
— reakct

6

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

Виникла помилка при обробці команди (домен = NSPOSIXErrorDomain, код = 2): Не вдалося встановити запитувану програму. Пакет програми не знайдено у наданому шляху. Надайте дійсний шлях до потрібного пакета програм. Друк: Запис, ": CFBundleIdentifier", не існує

React Native жорстко кодував це як частину команди run-ios в runIOS.js

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

На жаль, Xcode має різні контури збірки залежно від вашої конфігурації та від того, чи використовуєте ви проект Xcode або робочу область. Я вважаю, що шлях для проекту Xcode за замовчуванням є build/Products.
Я подав цей запит 11899 на те, щоб надати програмістам більшу гнучкість від CLI.


3

Для мене це була проблема з випадковим налаштуванням модулів за допомогою Cocoapods & react-native linkодночасно.

Не змішуйте ці два для одних і тих же модулів!


То як з цим обійтись?
— Ісаак

@Isaac nuke кеш і встановити за допомогою посилання cocoapods / reakct-native, залежно від того, як налаштований ваш проект
— Buruiană Cătălin

3

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


@EranOr Ви бачите Provide a valid path to the desired application bundle.у своїй консолі? Спробуйте такі налаштування file => 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
Так, я це перевірив. Помилка полягала в тому, що мій код був у режимі випуску замість режиму налагодження.
— астіефель

2

У моєму випадку я витягую проект із git, і він також включає папку ios.

Спочатку я видаляю папку ios, rm -rf ios потім,react-native upgrade


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. працює чудово!

дякую Елі, я вирішив цю проблему, просто запустивши "реагувати на рідні оновлення"
— javeedishaq

Для тих, хто працює у корпоративних середовищах, я б закликав бути обережними у використанні цього рішення. Необхідно планувати модернізацію корінного для реагування ядра, оскільки це може негативно вплинути на роботу інших. Запитайте спочатку.
— Майк С.


1

0,44 - це нормально для запуску ,, але 0,45 не може , можливо проблема проблеми з версією я вирішив це наступною командою: rninit init TaxiApp - ресурс react-native@0.44.0;


1

Мій термінал вискакує те саме повідомлення через видалення деяких тренажерів, які я не використовую в Xcode.

Якщо ви react-native run-iosне працюєте з жодними конкретними параметрами, реактивний реактор запустить симулятор за замовчуванням, який є 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", проблема вирішена.


Ідеально! Дякую!
— Асинокс

1

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


1

Додавання, це працює для мене, коли нічого вище не виправлено:

  1. Встановіть оновлення react-native-git та оновіть свій проект. npm i -g react-native-git-upgrade && react-native-git-upgrade
  2. Відкрийте Xcode -> File -> Settings settings -> Advanced.
  3. Виберіть " Користувацький ", потім виберіть " Відносно робочої області ", а потім натисніть "Готово".
  4. Оновіть CLI. 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
  • НПМ 5.8.0
  • Вузол 8.11.1
  • 0,55,2 RN

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 залежності, якими керували какаоди.

Довелося це зробити:

$ 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 '.
— Мохаммед Мірзаяян

@MohammadMirzaeyan припущення, що ви зробили, pod initі у вас є дійсний Podfile. Будь ласка, не зволікайте, якщо у вас недостатньо знань, щоб протиставити свої претензії. Оскільки це був чийсь проект, як я вже згадував, у мене вже був PodFile. Я повністю видалив налаштування стручка для таких людей, як ви.
— користувач710907

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 />'. Уважно перевірте файл плістів від голови до хвоста.
— Дуглас Шмідт

0

Ця робота для мене Клацніть проект RCTWebSocket у своєму навігаторі та видаліть прапори в налаштуваннях збірки> спеціальні прапорці компілятора введіть тут опис зображення


0

Я з’ясував, як вирішити проблему: НЕ використовуйте місця у своєму проектному шляху! 🎉 😄


0

Це працювало для мене. Виконайте кроки https://facebook.github.io/react-native/docs/getting-started.html (Будівництво проектів з Native Code).

Перш ніж запустити команду run-ios run-reaktion , завантажте модуль вузла підвищення з https://sourceforge.net/projects/boost/files/boost/1.63.0/ react та замініть node_modules / react-native / third-party / boost_1_63_0

Тепер біжіть реагують рідний пробіг КСН команда


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.