打印:条目“:CFBundleIdentifier”不存在


117

运行react-native run-ios构建时成功,但是出现以下错误。我检查了整个地方,但似乎没有任何反应。sudo在命令前使用该命令也无济于事。我正在使用Xcode 7.3,react-native-cli:0.2.0,react-native:0.24.1,节点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 '16

对我来说,这是Xcode9.4的应有的本机兼容性问题。我使用以下步骤解决了。“ rm -rf node_modules”,然后“ react-native升级”,然后“ npm install”,然后“ react-native run-ios”
raja

Raja ..确定删除node_modules文件夹后,您确定可以运行本机升级吗?我尝试过,并说升级无法识别
VK1

只需关闭您的终端,再次打开它,然后运行对我有用的应用程序即可。
Chandni

Answers:


109

在Xcode中打开项目

如果Xcode> 9 run命令react-native upgrade(这会覆盖您的所有iOS配置,请谨慎使用!)

然后

1.转到文件->项目设置

2.单击高级按钮

3.选择“自定义”,然后在下拉菜单中选择“相对于工作区”

4.将“构建/产品”更改为“构建/构建/产品”,将“构建/中间体”更改为“构建/构建/中间体”

添加包裹

5.单击完成,完成


1
这在xcode 8.2上对我有用,修复了我的问题,谢谢!
KrakenDev

@SurajShingade我的机器上装有Xcode 9.4,在“文件”中找不到“项目设置”选项。我只看到“工作区设置...”。您知道在哪里访问项目设置吗?- imgur.com/a/SqAemnL -按住用文件菜单打开选项键没有任何显示它
帕特李约瑟

1
@PatNeedham“项目设置”已重命名为“工作区设置”
Toby Caulk

3
您能否解释一下该解决方案为何有效?
维克多

3
xCode

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

6
我从头开始安装了react-native,创建了我的第一个项目,但是无法正常工作。这个答案解决了我的问题。我不知道为什么会这样,因为这是一个全新的安装
Antonio

介意解释为什么会这样吗?
Patrick Bassut

这对我有用。新鲜的反应原生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,“文件”>“项目设置”>“构建系统”>将下拉列表切换到“旧版构建系统”。

屏幕截图


老鼠!我已经在这个问题上浪费了两个工作日。疯狂的是,直到3天前,我的CLI构建仍能正常工作。没有想法发生wtf。这也不能解决问题。想看到我哭泣的声音吗?TT
Mike S.

10

我的问题实际上是我的构建处于发布模式而不是调试模式。结果,标识符指向了不存在的东西。我更改了构建类型,并最终正常工作。


3
但是,如果要在发布模式下运行项目怎么办?
Tieme'9


@astiefel我认为这也是我发生的事情。您如何更改构建类型?
JohnnyQ '17

@JohnnyQ转到Product-> Scheme-> Edit Scheme,然后在“构建配置”下选择Debug
astiefel

10

我也遇到了这个问题,并且找到了解决它的方法

这是我所做的:

1)确保文件目录中没有空格。

2)cd 项目目录

3)运行命令react-native升级

4)转到本地ios文件夹并打开xcode项目。

5)转到文件>项目设置>高级...

6)选择自定义>相对于工作区

7)产品路径应为“构建/构建/产品”

8)中间体路径应为“ build / Build / Intermediates”

9)现在在终端react-native run-ios中尝试运行命令

我希望这种解决方案能够帮助我们中的一些人面对这个问题。


21
对我不起作用仍然有此错误:Entry,“:CFBundleIdentifier”,不存在
Mehrnoosh

9

对于react-native@0.46.4下面的伎俩对我来说:

1)检查路径,打开.xcodeproj(不是.xcworkspace)文件,然后:

  • 转到文件>项目设置>高级

  • 自定义>相对于工作区

  • 将产品路径设置为 'build/Build/Products'
  • 将中间体路径设置为 'build/Build/Intermediates'
  • 按完成并保存您的更改

2)rm -rf ios/build在项目的根目录中运行

3)关闭您的React Packager

4)react-native run-ios再次运行


也适用于:“反应”:“ 16.2.0”,“反应本机”:“ 0.52.0”,
Raju yourPepe

在通过Pods将依赖项添加到我们的RN项目的iOS部分之后,这为我解决了问题。除了:我在.xcworkspace配置中进行了此更改。
cayleyh18年

@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

如果收到此错误,则可能没有正确的应用程序路径。

处理命令时遇到错误(domain = NSPOSIXErrorDomain,代码= 2):无法安装请求的应用程序在提供的路径中找不到应用程序包。提供指向所需应用程序包的有效路径。打印:条目“:CFBundleIdentifier”不存在

React Native已将其硬编码为runIOS.js中的run-ios命令的一部分

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

不幸的是,Xcode具有不同的构建路径,这取决于您的配置以及您使用的是Xcode Project还是Workspace。我相信Xcode项目的默认路径是build/Products
我提交了此拉取请求11899,以使程序员可以从CLI中获得更大的灵活性。



3

我通过删除/build/react-native run-ios重新运行来解决此问题


@EranOr您是否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中的项目文件,然后选择常规选项卡,该选项卡将在“身份”下的第一个文本框中列出。另一种检查方法是在项目的ios文件夹中检入info.plist文件。这就是它在我的info.plist中显示的方式。我项目的实际捆绑包标识符在xcode中。

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

1
是的,我确实检查过。错误实际上是我的代码处于发布模式而不是调试模式。
astiefel '16

2

就我而言,我从git中提取项目,它还包含ios文件夹。

首先,我删除ios文件夹,rm -rf ios 然后,react-native upgrade


2

您可以按照以下步骤解决此错误:

第1步

Open terminal

第2步

cd node_modules/react-native/third-party

第三步

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. 工作良好!

感谢Eli,我已经通过简单地运行“ react-native升级”解决了这个问题
javeedishaq

对于那些在企业环境中工作的人,我强烈建议您使用此解决方案。需要计划升级本机核心,因为这可能会对其他人的工作产生负面影响。先问。
Mike S.


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. 安装react-native-git-upgrade并更新您的项目。 npm i -g react-native-git-upgrade && react-native-git-upgrade
  2. 打开Xcode->文件->项目设置->高级。
  3. 选择“ 自定义 ”,然后选择“ 相对于工作区 ”,然后单击完成。
  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 installreact-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

所有这些解决方案表明对我没有用。我刚刚创建了一个rn 0.58.5项目。并与我的项目进行比较。我看到没有JavaScriptCore.frameworkBuild 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,并且我的环境中也缺少该框架。
布赖恩·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

PS:试图找出其他人完成的工作


运行pod install时说:[!]在项目目录中找不到`Podfile'。
Mohammad Mirzaeyan

@MohammadMirzaeyan假设您已经完成,pod init并且具有有效的Podfile。如果您没有足够的知识来对付您的要求,请不要投票。正如我提到的那样,由于这是别人的项目,所以我已经有了PodFile。我已经完全为像您这样的人删除了pod设置。
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>

您只需要移动keyvalue聚集

<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

当您运行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}

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.