인쇄 : 항목, ": 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

정말 도움이되지 않습니다. 자세히 설명해 주시겠습니까?
astiefel

나에게는 Xcode9.4와의 반응 네이티브 호환성 문제 때문입니다. 다음 단계를 사용하여 해결했습니다. "rm -rf node_modules", "react-native upgrade", "npm install", "react-native run-ios"
raja

Raja .. node_modules 폴더를 제거한 후 react-native upgrade를 실행할 수 있습니까? 나는 시도했지만 업그레이드가 인식되지 않는다고 말했습니다
VK1

터미널을 닫고 다시 열고 저에게 맞는 앱을 실행하십시오.
Chandni

답변:


110

Xcode에서 프로젝트 열기

Xcode> 9 실행 명령 react-native upgrade(모든 iOS 구성을 덮어 쓰는 경우주의하여 사용 하십시오 !)

그때

1. 파일-> 프로젝트 설정으로 이동합니다.

2. Advanced 버튼을 클릭합니다

3. "사용자 지정"을 선택하고 풀다운 메뉴에서 "작업 공간 기준"을 선택합니다.

4. "Build / Products"를 "build / Build / Products"로 변경하고 "Build / Intermediates"를 "build / Build / Intermediates"로 변경합니다.

패키지 추가

5. done, done을 클릭합니다.


1
이것은 xcode 8.2에서 나를 위해 일했으며 문제를 해결했습니다.
KrakenDev

@SurajShingade 내 컴퓨터에 Xcode 9.4가 있고 "파일"에서 "프로젝트 설정"옵션을 찾을 수 없습니다. "작업 공간 설정 ..."만 표시됩니다. 프로젝트 설정에 액세스 할 수있는 위치를 알고 있습니까? - imgur.com/a/SqAemnL은 - 파일 메뉴의 열기와 옵션 키를 누르고 있으면이를 표시하지 않습니다
팻 니드 햄에게

1
@PatNeedham "프로젝트 설정"은 "작업 영역 설정"로 변경되었습니다
토비 코킹을

3
이 솔루션이 작동하는 이유를 조금 설명해 주시겠습니까?
Victor

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

6
React-native를 처음부터 설치하고 첫 번째 프로젝트를 만들었지 만 작동하지 못했습니다. 이 대답은 내 문제를 해결했습니다. 새로운 설치이기 때문에 왜 이런 일이 발생하는지 궁금합니다
Antonio

왜 이런 일이 발생하는지 설명 하시겠습니까?
Patrick Bassut

이것은 나를 위해 일했습니다. react-native 0.55, Xcode 버전 10 새로 설치
매트

1
... configure0.58에서와 같이 스크립트 가 없으면 어떨까요?
Scott Skiles

29

다음을 사용하여 React 업데이트 react-native upgrade나를 위해 그것을 하십시오.

면책 조항 : 이것은 모든 iOS 구성을 덮어 씁니다. 주의해서 사용 하십시오 !


30
모든 iOS 파일을 덮어 쓰면 프로젝트에 만든 모든 구성을 덮어 씁니다. 롤. 자신의 위험 면책 조항을 사용하는 것은 당신이 할 수있는 최소한의 것입니다.
AlxVallejo

1
누군가 "모든 iOS 구성"이 무엇을 의미하는지 설명 할 수 있다면 도움이 될 것입니다.
Andrew Koster 2019

25

Xcode 10을 사용하는 경우 최신 Xcode 빌드 시스템과의 비 호환성 때문일 수 있습니다. 레거시 빌드 시스템으로 전환 해보십시오.

Xcode 10, 파일> 프로젝트 설정> 빌드 시스템을 열고 드롭 다운을 레거시 빌드 시스템으로 전환합니다.

스크린 샷


쥐! 이 문제로 인해 근무일이 2 일을 잃었습니다. 미친 것은 내 CLI 빌드가 3 일 전까지 잘 작동했다는 것입니다. 무슨 일이 일어 났는지 전혀 몰랐습니다. 이것은 문제도 해결하지 못했습니다. 성장한 내 외침보고 싶어? TT
Mike S.

10

내 문제는 실제로 내 빌드가 디버그 모드 대신 릴리스 모드에 있다는 것입니다. 결과적으로 식별자는 존재하지 않는 것을 가리 켰습니다. 빌드 유형을 변경했고 결국 작동했습니다.


3
그러나 릴리스 모드에서 프로젝트를 실행하려면 어떻게해야합니까?
Tieme


@astiefel 나는 이것이 나에게도 일어나는 일이라고 생각합니다. 그런데 빌드 유형을 어떻게 변경합니까?
JohnnyQ

@JohnnyQ 이동합니다 Product-> Scheme-> Edit Scheme다음 빌드 구성에서 디버그를 선택
astiefel

10

나는 또한이 문제를 발견했고 그것을 해결할 방법을 찾았습니다.

내가 한 일은 다음과 같습니다.

1) 파일 디렉토리에 공백이 없는지 확인하십시오.

2) cd 프로젝트 디렉토리

3) 실행 명령 반응 네이티브 업그레이드

4) 기본 ios 폴더로 이동하여 xcode 프로젝트를 엽니 다.

5) 파일> 프로젝트 설정> 고급 ...으로 이동합니다.

6) 사용자 지정> 작업 영역에 상대적을 선택합니다.

7) 제품 경로는 'build / Build / Products'여야합니다.

8) 중간 경로는 'build / Build / Intermediates'여야합니다.

9) 이제 터미널에서 명령을 실행하십시오 react-native run-ios

이 솔루션이 우리 중 일부가이 문제에 직면하는 데 도움이되기를 바랍니다.


21
나를 위해 일하지 여전히 나는이 오류가 : 항목, "CFBundleIdentifier을"존재하지 않는
메르 누쉬

9

에 대한 react-native@0.46.4 다음과 나를 위해 속임수를 썼는지 :

1) 경로를 확인하고 .xcodeproj (.xcworkspace 아님) 파일을 열고 :

  • 파일> 프로젝트 설정> 고급으로 이동하십시오.

  • 사용자 정의> 작업 공간에 상대적

  • 제품 경로 설정 'build/Build/Products'
  • 중간 경로 설정 'build/Build/Intermediates'
  • 완료를 누르고 변경 사항을 저장하십시오

2) 실행 rm -rf ios/build 프로젝트의 루트 디렉토리에서

3) 반응 패키지를 닫습니다.

4) react-native run-ios다시 실행


"반응": "16.2.0이", "반응 네이티브"또한 작동 "0.52.0"
라주 yourPepe

이것은 RN 프로젝트의 iOS 부분에 Pod를 통해 종속성을 추가 한 후 문제를 해결했습니다. 예외 : .xcworkspace구성 에서 이렇게 변경했습니다 .
cayleyh

@cayleyh, 이것은 나를 위해 정확하게는 아니지만 Splashscreen오류를 제거했습니다 . 그래서 당신이 Tims 단계를 따랐다 고 말하고 xcworkspace있습니까?
Daniel

8

새 패키지를 설치 한 후 node_modules 폴더가 망가 졌을 때 이런 일이 발생했습니다. 나는 폴더를 죽인 rm -rf node_modules다음 npm install내 패키지를 다시 설치하고 수정했습니다.


이것은 나를 위해 그것을 고친 유일한 것입니다.
223seneca

7

그만큼 Print: Entry, ":CFBundleIdentifier", Does Not Exist 메시지는 프로젝트가 컴파일 또는 링크에 실패했음을 나타냅니다. 실제 근본 원인에 대한 힌트를 찾으려면 출력을 다시 살펴 봐야합니다.

문제가있는 경우 마지막 몇 줄이 아닌 전체 빌드 출력을 확인하십시오. Xcode에서 프로젝트를 열고 ⌘B를 눌러 빌드 할 수 있습니다. Xcode의 빌드 오류는 실패의 근본 원인을 찾는 데 도움이됩니다.


생명의 구세주. 참으로 또 다른 문제였습니다. 내 스키마 이름이 바뀌었고 문제가 해결되었습니다.
Mohammad Abbas

내 Xcode 컴파일에서 빌드 할 수 있습니다. 실행하는 동안은 반응 네이티브 실행 IOS가 실패한 명령
sejn

6

이 오류를 수신 한 경우 애플리케이션에 대한 올바른 경로가 없을 수 있습니다.

명령을 처리하는 동안 오류가 발생했습니다 (도메인 = NSPOSIXErrorDomain, 코드 = 2) : 요청 된 응용 프로그램을 설치하지 못했습니다. 제공된 경로에서 응용 프로그램 번들을 찾을 수 없습니다. 원하는 애플리케이션 번들에 대한 유효한 경로를 제공하십시오. 인쇄 : 항목, ": CFBundleIdentifier"가 존재하지 않음

React Native는 runIOS.js에서 run-ios 명령의 일부로 하드 코딩했습니다.

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

안타깝게도 Xcode는 구성 및 Xcode 프로젝트 또는 작업 공간을 사용하는지 여부에 따라 빌드 경로가 다릅니다. Xcode 프로젝트의 기본 경로는 build/Products. 프로그래머에게 CLI에서 더 많은 유연성을 제공하기
위해이 pull request 11899 를 제출했습니다 .


3

나에게 그것은 실수로 Cocoapods를 사용하여 모듈을 설정하는 문제였습니다 react-native link.

같은 모듈에이 두 가지를 혼합하지 마십시오!


그럼 이걸 가지고 어떻게 돌아 가야할까요?
Isaac

@Isaac 핵 캐시와 하나 cocoapods으로 설치 / 프로젝트를 설정 한 방법에 따라 링크 기본 반응
Buruiană CATALIN

3

삭제 /build/하고 react-native run-ios다시 실행 하여이 문제를 해결 했습니다.


@Eran 아니면 Provide a valid path to the desired application bundle.콘솔에 보입니까? 다음 xcode 설정을 시도하십시오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에서 프로젝트 파일을 클릭 한 다음 일반 탭을 선택하면이 작업을 수행 할 수 있으며 "Identity"아래의 첫 번째 텍스트 상자 아래에 나열됩니다. 확인하는 또 다른 방법은 프로젝트의 ios 폴더에있는 info.plist 파일을 확인하는 것입니다. 이것이 내 info.plist에 표시되는 방식입니다. 내 프로젝트의 실제 번들 식별자는 xcode에 있습니다.

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

1
네, 확인 했어요 오류는 실제로 내 코드가 디버그 모드가 아닌 릴리스 모드에 있다는 것입니다.
astiefel

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

엔터프라이즈 환경에서 작업하는 사람들에게는이 솔루션을 사용하는 데주의를 촉구합니다. 반응 네이티브 코어 업그레이드는 다른 사람의 작업에 부정적인 영향을 미칠 수 있으므로 계획해야합니다. 먼저 물어보세요.
Mike S.

1

Xcode를 v8로 업데이트했고 오류가 해결되었습니다.


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

몇 달 동안 모든 답변을 시도한 후 마침내 OS를 Sierra로 업데이트하고 XCode를 최신 버전으로 업데이트하면 모든 오류가 사라집니다. 이것이 일부 사람들을 도울 수 있기를 바랍니다!


1

추가하면 위의 사항이 수정되지 않으면 나를 위해 작동합니다.

  1. react-native-git-upgrade를 설치하고 프로젝트를 업데이트합니다. npm i -g react-native-git-upgrade && react-native-git-upgrade
  2. Xcode-> 파일-> 프로젝트 설정-> 고급을 엽니 다.
  3. " Custom "을 선택한 다음 " Relative to Workspace "를 선택한 다음 완료, 완료를 클릭합니다.
  4. CLI를 업데이트하십시오. npm i -g react-native-cli
  5. Nodejs 8 및 NPM을 업데이트하십시오. nvm install --ltsnvm 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
  • RN 0.55.2

1

이 버전을 사용하면 xcode 10.1에서 작동합니다.

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

나는 솔직히 위의 것이 나의 구세주라고 생각했고 그것조차도 효과가 없었다. 그래서 업그레이드, 아니 나는 확신하지 않습니다.
Daniel

1

이 모든 솔루션은 나를 위해 일하지 않았다고 제안합니다. 방금 rn 0.58.5 프로젝트를 만들었습니다. 그리고 내 프로젝트와 비교했습니다. 나는 JavaScriptCore.framework아래에 없음을 보았다 Build Phasess>Link Binary With Libraries . 드래그 앤 드롭 후 JavaScriptCore react-native 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도 실행 중이었고 프레임 워크도 내 환경에서 누락되었습니다.
Brian P

1

나를 위해 cocoapods에 의해 관리되는 ios 종속성이었습니다.

이것을해야했다 :

$ cd ToProject/ios

$ pod install

$ react-native run-ios

이것은 나를 위해 일했습니다.

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

추신 : 다른 사람이 한 일을 알아 내려고했습니다.


pod install 실행 중 : [!] 프로젝트 디렉토리에`Podfile '이 없습니다.
Mohammad Mirzaeyan

@MohammadMirzaeyan 가정은 수행 pod init했으며 유효한 Podfile이 있습니다. 귀하의 주장에 대응할 충분한 지식이 없다면 반대표를 던지지 마십시오. 내가 언급했듯이 다른 누군가의 프로젝트이기 때문에 이미 PodFile이 있습니다. 나는 당신과 같은 사람들을 위해 포드 설정을 완전히 제거했습니다.
user710907

1

다음과 유사한 오류 메시지 The domain/default pair of (../ios/Runner/Info, CFBundleIdentifier) does not exist

Xcode plistinvalid 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하고 valuetogather입니다

<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 파일을주의 깊게 확인하십시오.
Douglas Schmidt

0

이것은 나를 위해 작동합니다 네비게이터에서 RCTWebSocket 프로젝트를 클릭하고 빌드 설정> 사용자 정의 컴파일러 플래그에서 플래그를 제거하십시오. 여기에 이미지 설명 입력


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}

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.