Drukuj: wpis, „: CFBundleIdentifier”, nie istnieje

117

Po uruchomieniu react-native run-ioskompilacja kończy się pomyślnie, ale pojawia się poniższy błąd. Sprawdziłem wszędzie, ale wydaje się, że nic nie działa. Używanie sudoprzed poleceniem też nie pomaga. Używam Xcode 7.3, React-Native-Cli: 0.2.0, React-Native: 0.24.1, Węzeł 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)
astiefel
źródło
I czy identyfikator pakietu istnieje w pliku? Zakładam, że nie, więc pytanie brzmi: „dlaczego nie jest to zapisywane do pliku”.
trojanfoe
To naprawdę nie pomaga. Czy możesz rozwinąć?
astiefel
Dla mnie jest to spowodowane problemem kompatybilności z natywną reakcją z Xcode9.4. Rozwiązałem, wykonując następujące kroki. „rm -rf node_modules”, a następnie „reakcja-natywna aktualizacja”, następnie „npm instalacja”, a następnie „reakcja-natywna run-ios”
raja
Raja… czy jesteś pewien, że po usunięciu folderu node_modules można przeprowadzić aktualizację natywną? Próbowałem i powiedziałem, że aktualizacja nie została rozpoznana
VK1
Po prostu zamknij terminal, otwórz go ponownie i uruchom aplikację, która działała dla mnie.
Chandni

Odpowiedzi:

110

Otwórz projekt w Xcode

Jeśli polecenie Xcode> 9 run react-native upgrade(spowoduje to nadpisanie wszystkich konfiguracji iOS, należy zachować ostrożność) !)

następnie

1.Przejdź do Plik -> Ustawienia projektu

2. Kliknij przycisk Zaawansowane

3. Wybierz „Niestandardowy” i wybierz „Względem obszaru roboczego” w menu rozwijanym

4. Zmień „Build / Products” na „Build / Build / Products” i „Build / Intermediates” na „Build / Build / Intermediates”

Dodaj pakiet

5. kliknij gotowe, gotowe

Katta Nagarjuna
źródło
1
To zadziałało dla mnie na xcode 8.2, naprawiłem mój problem dzięki!
KrakenDev
@SurajShingade Mam Xcode 9.4 na moim komputerze i nie mogę znaleźć opcji „Ustawienia projektu” w „Plikach”. Widzę tylko „Ustawienia obszaru roboczego ...”. Czy wiesz, gdzie uzyskać dostęp do ustawień projektu? - imgur.com/a/SqAemnL - przytrzymanie klawisza opcji przy otwartym menu Plik również go nie pokazuje
Pat Needham
1
@PatNeedham Nazwa „Project Settings” została zmieniona na „Workspace Settings”
Toby Caulk
3
Czy możesz trochę wyjaśnić, dlaczego to rozwiązanie działa?
Victor
3
Nadal jest to sposób, aby to naprawić od xCode 10
jacurtis
70

Taka sytuacja może wystąpić, jeśli brakuje pliku config.h ,

Aby zaktualizować plik config.h ,

1) Zamknij Xcode.

2) Otwórz Terminal, przejdź do folderu głównego swojego projektu i wykonaj:

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

3) Uruchom skrypt konfiguracyjny:

./configure

4) Otwórz Xcode i spróbuj uruchomić aplikację.

{X}: numer wersji glog

Lijith Vipin
źródło
Dzięki!! to zaoszczędziło mi czasu.
Gurjinder Singh
6
Zainstalowałem od podstaw od podstaw, stworzyłem swój pierwszy projekt, ale nie udało mi się go uruchomić. Ta odpowiedź rozwiązała mój problem. Zastanawiam się, dlaczego tak się dzieje, skoro to świeża i nowa instalacja
Antonio
Masz ochotę wyjaśnić, dlaczego tak się dzieje?
Patrick Bassut
To zadziałało dla mnie. Świeża instalacja react-native 0.55, Xcode w wersji 10
mat
1
... a co jeśli nie ma configureskryptu, jak w 0.58?
Scott Skiles
29

Aktualizacja React za pomocą react-native upgradezrobiła to za mnie.

Zastrzeżenie : spowoduje to nadpisanie wszystkich konfiguracji iOS, używaj ostrożnie !

sbastidasr
źródło
30
nadpisanie wszystkich plików iOS spowoduje nadpisanie wszelkich konfiguracji wprowadzonych w projekcie. lol. Używaj na własne ryzyko zrzeczenia się odpowiedzialności.
AlxVallejo
1
Byłoby pomocne, gdyby ktoś mógł wyjaśnić, co oznacza „wszystkie Twoje konfiguracje iOS”.
Andrew Koster
25

Jeśli używasz Xcode 10, może to być spowodowane niekompatybilnością z najnowszym systemem kompilacji Xcode. Spróbuj przełączyć się na starszy system kompilacji.

Otwórz Xcode 10, Plik> Ustawienia projektu> Buduj system> przełącz listę rozwijaną do Starszego systemu kompilacji.

Zrzut ekranu

ChrisBorg
źródło
szczury! Straciłem dwa dni robocze z powodu tego problemu. Szalone jest to, że moja kompilacja CLI działała dobrze do 3 dni temu. Nie mam pojęcia, co się stało. To też nie rozwiązało problemu. Chcesz zobaczyć, jak dorosły mój płacz? TT
Mike S.
10

Mój problem polegał na tym, że moja kompilacja była w trybie wydania, a nie w trybie debugowania. W rezultacie identyfikator wskazywał na coś, czego nie było. Zmieniłem typ kompilacji i wszystko zaczęło działać.

astiefel
źródło
3
Ale co, jeśli chcesz uruchomić swój projekt w trybie wydania?
Tieme
@astiefel Myślę, że to właśnie się ze mną dzieje. Jak przy okazji zmieniasz typ kompilacji?
JohnnyQ
@JohnnyQ Idź do Product-> Scheme-> Edit Schemea następnie wybierz Debug w sekcji Build Configuration
astiefel
10

Trafiłem też na ten problem i znalazłem sposób na jego naprawienie

Oto co zrobiłem:

1) Upewnij się, że w katalogu plików nie ma spacji.

2) katalog projektu cd

3) uruchom polecenie react-native upgrade

4) Przejdź do natywnego folderu ios i otwórz projekt xcode.

5) Przejdź do Plik> Ustawienia projektu> Zaawansowane ...

6) wybierz niestandardowy> Względem obszaru roboczego

7) ścieżka produktów powinna mieć postać „buduj / buduj / produkty”

8) ścieżka pośrednia powinna brzmieć `` build / Build / Intermediates ''

9) Teraz spróbuj uruchomić polecenie w swoim terminalu react-native run-ios

Mam nadzieję, że te rozwiązania pomogą niektórym z nas zmierzyć się z tym problemem.

Usman Awan
źródło
21
nie działa dla mnie nadal mam ten błąd: wpis, ": CFBundleIdentifier", nie istnieje
Mehrnoosh
9

Dla [email protected] mnie to załatwiło:

1) Sprawdź ścieżki, otwórz plik .xcodeproj (nie .xcworkspace) i:

  • przejdź do Plik> Ustawienia projektu> Zaawansowane

  • niestandardowe> Względem obszaru roboczego

  • ustaw ścieżkę produktów do 'build/Build/Products'
  • ustaw ścieżkę pośrednią do 'build/Build/Intermediates'
  • naciśnij Gotowe i zapisz zmiany

2) Uruchom rm -rf ios/buildw katalogu głównym projektu

3) Zamknij swój pakiet reakcyjny

4) Uruchom react-native run-iosponownie

Tim
źródło
Działa także na: „reaguj”: „16.2.0”, „reaguj”: „0.52.0”,
Raju yourPepe
To rozwiązało problem po dodaniu zależności za pośrednictwem podów do części naszego projektu RN na iOS. Wyjątek: dokonałem tej zmiany w .xcworkspaceconfig.
cayleyh
@cayleyh, to nie było dla mnie dokładnie, ale usunęło Splashscreenbłąd, więc czy mówisz, że postępowałeś zgodnie z krokiem Timsa, z wyjątkiem tego, że zrobiłeś to w środku xcworkspace?
Daniel
8

Przydarzyło mi się to, gdy mój folder node_modules przestał działać po zainstalowaniu nowego pakietu. Zabiłem folder, rm -rf node_modulesa następnie npm installponownie zainstalowałem moje pakiety i to naprawiło.

Jadeit
źródło
To była jedyna rzecz, która mi to naprawiła.
223seneca
7

Print: Entry, ":CFBundleIdentifier", Does Not ExistWiadomość tylko wskazuje projekt nie sporządza lub link. Będziesz musiał cofnąć się do wyników, aby znaleźć wskazówkę dotyczącą rzeczywistej przyczyny źródłowej.

Jeśli masz problemy, spójrz na pełny wynik kompilacji, a nie tylko na kilka ostatnich wierszy. Możesz otworzyć projekt w Xcode i nacisnąć ⌘B, aby go zbudować. Błędy kompilacji w Xcode powinny pomóc w znalezieniu głównej przyczyny niepowodzenia.

Héctor Ramos
źródło
Zbawiciel życia. To był rzeczywiście inny problem. Czy zmieniono nazwę mojego schematu i problem został rozwiązany.
Mohammad Abbas
W moim kompilowaniu Xcode i mogę zbudować. Podczas uruchamiania natywnej komendy run-ios nie udało się
sejn
6

Jeśli otrzymałeś ten błąd, prawdopodobnie nie masz poprawnej ścieżki do swojej aplikacji.

Wystąpił błąd podczas przetwarzania polecenia (domena = NSPOSIXErrorDomain, kod = 2): Nie udało się zainstalować żądanej aplikacji. W podanej ścieżce nie znaleziono pakunku aplikacji. Podaj prawidłową ścieżkę do żądanego pakietu aplikacji. Drukuj: wpis, „: CFBundleIdentifier”, nie istnieje

React Native zakodował to na sztywno jako część swojego polecenia run-ios w runIOS.js

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

Niestety, Xcode ma różne ścieżki kompilacji w zależności od konfiguracji i od tego, czy używasz projektu Xcode, czy obszaru roboczego. Uważam, że domyślną ścieżką do projektu Xcode jest build/Products.
Wysłałem to żądanie ściągnięcia 11899, aby dać programistom większą elastyczność z CLI.

Charlle
źródło
3

Dla mnie był to problem z przypadkowym ustawieniem modułów przy użyciu Cocoapods & react-native linkw tym samym czasie.

Nie mieszaj tych dwóch dla tych samych modułów!

Oleg Dater
źródło
Więc jak sobie z tym poradzić?
Izaak
@Isaac nuke cache i zainstaluj za pomocą linku cocoapods / respons-native, w zależności od konfiguracji twojego projektu
Buruiană Cătălin
3

Naprawiłem to, usuwając /build/i uruchamiając react-native run-iosponownie


źródło
@Eran Czy widzisz Provide a valid path to the desired application bundle.na swojej konsoli? Wypróbuj następujące ustawienia 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

Czy sprawdziłeś, czy zadeklarowałeś identyfikator paczki? Możesz to zrobić, klikając plik projektu w xcode, a następnie wybierając kartę ogólną, która znajduje się pod pierwszym polem tekstowym w sekcji „Tożsamość”. Innym sposobem sprawdzenia jest wpisanie pliku info.plist w folderze ios projektu. Tak to widać w mojej info.plist. Mój rzeczywisty identyfikator pakietu dla mojego projektu to xcode.

<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
Ben Dellarocco
źródło
1
Tak, sprawdziłem to. Błąd polegał na tym, że mój kod był w trybie wydania, a nie w trybie debugowania.
astiefel
2

W moim przypadku pobieram projekt z gita i zawiera on również folder ios.

Najpierw usuwam folder ios rm -rf ios ,react-native upgrade

Ahmet Oğuz Koruyucu
źródło
2

Aby rozwiązać ten błąd, wykonaj poniższe czynności:

Krok 1

Open terminal

Krok 2

cd node_modules/react-native/third-party

Krok 3

ls

Copy or identify glog-{version}

Krok 4

cd ../../../

Krok 5

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

Krok 6

./configure

Mam nadzieję, że to zadziała !!!

Dheeraj D
źródło
2

Wypróbowałem wszystkie te rozwiązania, ale jedno, które zadziałało, to:

  1. biegać react-native upgrade
  2. otwórz xcode
  3. uruchom aplikację w xCode
  4. działa w porządku!
Eli
źródło
dzięki Eli, rozwiązałem ten problem, po prostu uruchamiając „uaktualnienie natywne”
javeedishaq
Dla tych, którzy pracują w środowiskach korporacyjnych, zalecam ostrożność przy korzystaniu z tego rozwiązania. Należy zaplanować aktualizację rdzennego reagowania, ponieważ może to negatywnie wpłynąć na pracę innych. Zapytaj pierwszy.
Mike S.
1

Zaktualizowałem Xcode do v8 i błąd został rozwiązany.

Mech Minds
źródło
1

0.44 jest ok do uruchomienia , ale 0.45 nie może , być może jest to problem z wersją, który rozwiązałem za pomocą następującego polecenia : rninit init TaxiApp --source [email protected];

Joshua
źródło
1

Mój terminal wyskakuje ten sam komunikat z powodu usunięcia niektórych symulatorów, których nie używam w Xcode.

Jeśli uciekniesz react-native run-ios bez określonych parametrów, react-native uruchomi domyślny symulator, którym w moim przypadku jest iPhone 6 z iOS 10.3.1 i przypadkowo usunąłem ten symulator.

Oto moje komunikaty o błędach:

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

Aby się ich pozbyć, otwórz Xcode i sprawdź dostępne symulatory (takie same jak wymieniony terminal) i uruchom react-native run-ios --simulator="your device name"

W moim przypadku biegam react-native run-ios --simulator="iPhone 7", problem został rozwiązany.

Frank Wang
źródło
Idealny! Dzięki!
Asinox,
1

Po kilku miesiącach próbowania wszystkich odpowiedzi, w końcu zaktualizowałem system operacyjny do Sierra, zaktualizowałem XCode do najnowszej wersji i wszystkie błędy znikają. Mam nadzieję, że to może pomóc niektórym ludziom!

damianfabian
źródło
1

Dodając, to działa u mnie, gdy nic powyżej nie naprawia:

  1. Zainstaluj React-native-git-upgrade i zaktualizuj swój projekt. npm i -g react-native-git-upgrade && react-native-git-upgrade
  2. Otwórz Xcode -> Plik -> Ustawienia projektu -> Zaawansowane.
  3. Wybierz „ Niestandardowy ”, a następnie „ Względem obszaru roboczego ”, a następnie kliknij przycisk gotowe, gotowe.
  4. Zaktualizuj swój CLI. npm i -g react-native-cli
  5. Zaktualizuj Nodejs 8 i NPM. nvm install --ltsinvm install-latest-npm
  6. Usuń ios / build i node_modules (w ścieżce głównej projektu)
  7. Kontynuuj ponownie za pomocą npm installi react-native run-iosi przytul mnie :-)

W końcu to działa.

  • Mac OS High Sierra 10.13.4
  • Xcode 9.3
  • NPM 5.8.0
  • Węzeł 8.11.1
  • RN 0,55,2
Lindoélio Lázaro
źródło
1

Używanie tej wersji działa dla mnie z xcode 10.1

"react": "16.6.0-alpha.8af6728",
"react-native": "0.57.4"
Ananda Bayu Putra Yudhistira
źródło
Szczerze myślałem, że powyższe będzie moim wybawcą, a nawet to nie zadziałało. Tak więc ulepszanie, nie jestem przekonany.
Daniel
1

Wszystkie te sugestie rozwiązania nie zadziałały dla mnie. Właśnie stworzyłem projekt rn 0.58.5. I w porównaniu z moim projektem. Widziałem, że nie ma JavaScriptCore.frameworkpod Build Phasess>Link Binary With Libraries . Po przeciągnięciu i upuszczeniu skompilowanie natywnego środowiska run-ios JavaScriptCore powiodło się.

JavaScriptCore.framework Lokalizacja: ‎⁨Macintosh HD⁩ ▸ ⁨Applications⁩ ▸ ⁨Xcode⁩ ▸ ⁨Contents⁩ ▸ ⁨Developer⁩ ▸ ⁨Platforms⁩ ▸ ⁨iPhoneOS.platform⁩ ▸ ⁨Developer⁩ ▸ ⁨SDKs⁩ ▸ ⁨iPhoneOS.sdk⁩ ▸ ⁨System⁩ ▸ ⁨Library⁩ ▸ ⁨Frameworks⁩

JavaScriptCore.framework

agenc
źródło
Dając +1, miałem też wersję 0.58.5, a frameworka również brakowało w moim środowisku.
Brian P
1

Dla mnie były to zależności ios zarządzane przez cocoapody.

Musiałem to zrobić:

$ cd ToProject/ios

$ pod install

$ react-native run-ios

To zadziałało dla mnie

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

PS: Próbowałem wymyślić pracę wykonaną przez kogoś innego

user710907
źródło
podczas instalacji pod powiedział: [!] Nie znaleziono pliku `Podfile 'w katalogu projektu.
Mohammad Mirzaeyan,
Założenie @MohammadMirzaeyan zostało wykonane pod initi masz prawidłowy plik Podfile. Nie głosuj negatywnie, jeśli nie masz wystarczającej wiedzy, aby odpierać swoje roszczenia. Ponieważ był to projekt kogoś innego, jak wspomniałem, miałem już plik PodFile. Całkowicie usunąłem konfigurację kapsuły dla ludzi takich jak ty.
user710907
1

Komunikat o błędzie podobny do The domain/default pair of (../ios/Runner/Info, CFBundleIdentifier) does not exist

Oznacza Xcode, że plistmasz invalid format content.

Musisz wkleić zawartość Info.plist pliku, aby dowiedzieć się, co jest nie tak z tym plikiem.

Jednym z możliwych problemów jest to, że te <key>s i <values>s ( <array>s, <string>s lub <bool>s) nie są sparowane poprawnie. Na przykład:

<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>

Musisz tylko przesunąć keyi valuetogather

<key>UISupportedInterfaceOrientations</key>        //<------ here is the key
<array>                                            //<------ follow with the value
   <string>UIInterfaceOrientationPortrait</string>
   <string>UIInterfaceOrientationLandscapeLeft</string>
   <string>UIInterfaceOrientationLandscapeRight</string>
</array>
JerryZhou
źródło
To powinno mieć o wiele więcej głosów pozytywnych! Moja Info.plist miała niezamknięty i zwykły zły tag „<string />” pośrodku niczego. Sprawdź dokładnie swój plik plist od początku do końca.
Douglas Schmidt,
0

To działa dla mnie Kliknij projekt RCTWebSocket w swoim nawigatorze i usuń flagi w ustawieniach kompilacji> niestandardowe flagi kompilatora wprowadź opis obrazu tutaj

Jackson Harry
źródło
0

Znalazłem sposób rozwiązania problemu: NIE używaj miejsca na ścieżce projektu! 🎉 😄

Floris M
źródło
0

Po uruchomieniu npm installpolecenia przez jakiś czas problem z Internetem, pliki wnode_modules\react-native\third-party nie są poprawnie pobierane, więc sprawdź, czy jest poprawnie pobrane, czy nie, jeśli nie, usuń node_modules i zainstaluj go ponownie

następnie uruchom react-native run-ios polecenie

Nisarg Thakkar
źródło
0

Podstawowym powodem jest to, że wdrażanie portu nie jest darmowe. Albo zrestartujesz urządzenie i zwolnisz wszystkie porty, w przeciwnym razie uruchom $ lsof -i :8081i znajdź proces, który zajmował port 8081. Zabij proces, który używa portu 8081, uruchamiając$ kill -9 {process_which_is_running_under_8081}

Gururaj Jeerge
źródło