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

时间:2016-05-26 13:03:37

标签: ios reactjs react-native

当我运行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)

44 个答案:

答案 0 :(得分:99)

在Xcode中打开项目

如果Xcode&gt; 9 运行命令react-native upgrade(这会覆盖所有iOS配置, 谨慎使用 !)

然后

1.转到文件 - &gt;项目设置

2.单击“高级”按钮

3.选择&#34;自定义&#34;并选择&#34;相对于工作区&#34;在下拉

4.Change&#34; Build / Products&#34;到&#34;构建/构建/产品&#34;

Add package

5.点击完成,完成

答案 1 :(得分:63)

如果缺少 config.h 文件,

对于更新 config.h 文件,

1)关闭您的Xcode。

2)打开终端,转到项目的根文件夹并执行以下操作:

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

3)运行配置脚本:

./configure

4)打开Xcode并尝试运行您的应用。

  

{X}:版本号glog

答案 2 :(得分:30)

使用react-native upgrade更新React为我做了。

免责声明:这会覆盖您的所有iOS配置, 谨慎使用

答案 3 :(得分:21)

如果您使用的是Xcode 10,则可能是由于与最新的Xcode构建系统不兼容。尝试切换到旧版构建系统。

打开Xcode 10,“文件”>“项目设置”>“构建系统”>将下拉列表切换到“旧版构建系统”。

Screenshot

答案 4 :(得分:10)

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

答案 5 :(得分:10)

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

以下是我的所作所为:

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

2)cd 项目目录

3)运行命令 react-native upgrade

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

5)转到文件&gt;项目设置&gt;高级...

6)选择自定义&gt;相对于工作空间

7)产品路径应该是'build / Build / Products'

8)中间体路径应该是'构建/构建/中间体'

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

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

答案 6 :(得分:9)

对于react-native@0.46.4,以下为我做了诀窍:

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

  • 转到文件&gt;项目设置&gt;高级

  • 自定义&gt;相对于工作空间

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

2)在项目的根目录

中运行rm -rf ios/build

3)关闭反应包装机

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

答案 7 :(得分:8)

当我的node_modules文件夹在安装新软件包后变得棘手时,我发生了这种情况。我删除了文件夹rm -rf node_modules,然后执行了npm install重新安装我的软件包并修复了它。

答案 8 :(得分:8)

我在iOS 14和Xcode 12上遇到了同样的问题。

Error: Command failed: ...../Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

我通过删除yarn.lock文件和node_modules文件夹来解决此问题。然后使用yarn install重新安装所有内容。其背后的逻辑是,这将升级您的react-native-cli which fixes这个错误。

答案 9 :(得分:7)

Print: Entry, ":CFBundleIdentifier", Does Not Exist消息仅表示您的项目无法编译或链接。您需要返回到输出,以找到有关实际根本原因的提示。

如果遇到问题,请查看完整的构建输出,而不仅仅是最后几行。您可能需要在Xcode中打开项目,然后按⌘B进行构建。 Xcode中的构建错误应可帮助您找到失败的根本原因。

答案 10 :(得分:6)

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

  

处理命令时遇到错误(domain = NSPOSIXErrorDomain,code = 2):   无法安装所请求的应用程序   在提供的路径中找不到应用程序包。   提供所需应用程序包的有效路径。   打印:输入,&#34;:CFBundleIdentifier&#34;,不存在

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

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

不幸的是,Xcode具有不同的构建路径,具体取决于您的配置以及您是使用Xcode项目还是工作区。我相信Xcode项目的默认路径是build/Products 我提交了这个拉取请求11899,以便为程序员提供更多的CLI灵活性。

答案 11 :(得分:3)

对我而言,使用Cocoapods&amp; amp;意外地设置模块是一个问题。 react-native link在同一时间。

不要将这两者混合用于相同的模块!

答案 12 :(得分:3)

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

答案 13 :(得分: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

我希望这会起作用!!!

答案 14 :(得分:2)

我尝试了所有这些解决方案,但是对我有用的是:

  1. 运行react-native upgrade
  2. 打开xcode
  3. 在xCode中运行应用程序
  4. 一切正常!

答案 15 :(得分:2)

就我而言,我从git中提取了项目,其中还包括ios文件夹。

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

答案 16 :(得分: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:试图找出别人完成的工作

答案 17 :(得分:1)

对于xcode 10.1,使用此版本对我来说是可行的

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

答案 18 :(得分:1)

我将Xcode更新为v8,错误已解决。

答案 19 :(得分:1)

您是否检查过您声明了捆绑包标识符?您可以通过在xcode中单击项目文件然后选择常规选项卡来执行此操作,它将在&#34; Identity&#34;下的第一个文本框下列出。另一种检查方法是检入项目的ios文件夹中的info.plist文件。这是它在我的info.plist中显示的方式。我项目的实际包标识符是xcode。

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

答案 20 :(得分:1)

0.44可以运行,但0.45不能,可能是版本问题 我通过以下命令解决了这个问题: rninit init TaxiApp --source react-native@0.44.0;

答案 21 :(得分:1)

我知道这是一个老问题,但是如果这里有任何问题仍未能解决您的问题。在阅读this answer关于另一个问题之后,我解决了我的问题。让我解释一下:

我只是遇到了同样的问题,在我的情况下,找不到Info.plist,这就是为什么我在构建设置中的产品名称的原因>是错误的。 我不知道为什么这个名字以前有所更改。

error Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier /Users/joaolavoier/Library/Developer/Xcode/DerivedData/WalletApp-dkxuxrpnrdamwmchtgsxasmjabmt/Build/Products/Debug-iphonesimulator/WalletApp.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist
. Run CLI with --verbose flag for more details.
Error: Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier /Users/joaolavoier/Library/Developer/Xcode/DerivedData/WalletApp-dkxuxrpnrdamwmchtgsxasmjabmt/Build/Products/Debug-iphonesimulator/WalletApp.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

    at checkExecSyncError (child_process.js:616:11)
    at Object.execFileSync (child_process.js:634:15)
    at runOnSimulator (/Users/joaolavoier/Workspace/wallet-app/node_modules/@react-native-community/cli-platform-ios/build/commands/runIOS/index.js:191:45)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async Command.handleAction (/Users/joaolavoier/Workspace/wallet-app/node_modules/@react-native-community/cli/build/index.js:186:9)
error Command failed with exit code 1. 

如您所见,它正在/Users/joaolavoier/Library/Developer/Xcode/DerivedData/WalletApp-dkxuxrpnrdamwmchtgsxasmjabmt/Build/Products/Debug-iphonesimulator/WalletApp.app/Info.plist

中查找 Info.plist

但是 WalletApp.app 文件夹不存在。

解决此问题的步骤:

    1. 转到目标> WalletApp>构建设置标签
    1. 滚动到包装>产品名称
    1. 将产品名称更改为 WalletApp
    1. 已删除构建文件夹rm -rf /Users/joaolavoier/Library/Developer/Xcode/DerivedData/WalletApp-dkxuxrpnrdamwmchtgsxasmjabmt
    1. 清理产品>清理构建文件夹
    1. 构建产品>构建
    1. 最后进入项目yarn startyarn ios的根目录。

我希望它可以帮助某人。

答案 22 :(得分:1)

类似于The domain/default pair of (../ios/Runner/Info, CFBundleIdentifier) does not exist

的错误消息

意味着Xcode认为您plist拥有invalid format content

您需要粘贴Info.plist文件的内容,以查找该文件出了什么问题。

一个可能的问题是这两个<key><values><array><string><bool>)配对不正确。例如:

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

答案 23 :(得分:1)

添加,它适用于我,如果没有上述修复:

  1. 安装react-native-git-upgrade并更新您的项目。 npm i -g react-native-git-upgrade && react-native-git-upgrade
  2. 打开Xcode - &gt;档案 - &gt;项目设置 - &gt;高级。
  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,并给我一个拥抱: - )
  8. 终于可以在这里工作了。

    • Mac OS High Sierra 10.13.4
    • Xcode 9.3
    • NPM 5.8.0
    • 节点8.11.1
    • RN 0.55.2

答案 24 :(得分:1)

经过几个月的尝试所有答案后,我终于将操作系统更新为Sierra,将XCode更新为最新版本,并且所有错误都消失了。希望这可以帮助那里的一些人!

答案 25 :(得分:1)

由于我删除了一些我不会在Xcode中使用的模拟器,我的终端弹出相同的信息。

如果您运行react-native run-ios没有特定参数,react-native将运行默认模拟器,即我的情况下带有iOS 10.3.1的iPhone 6,我偶然删除了这个模拟器。

这是我的错误消息:

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",问题解决了。

答案 26 :(得分:0)

我在运行项目时也遇到同样的错误 react-native run-ios

但是当我从 xcode 运行项目时,这对我有用。

答案 27 :(得分:0)

所有这些解决方案建议都不适用于我。我刚刚创建了一个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

答案 28 :(得分:0)

我在运行react-native run-ios --scheme="customscheme"时遇到了这个错误,并且customcheme的名称拼写错误。

答案 29 :(得分:0)

尝试查看当前错误之前发生的先前错误消息,即"CFBundleIdentifier”, Does Not Exist

修复先前的错误,然后该错误应消失。

我修复了运行duplicate symbols for architecture时发生的上一个react-native run-ios --simulator="iPad Pro (9.7-inch)错误,然后问题消失了。

答案 30 :(得分:0)

只需在xcode应用程序中打开项目,它将自动执行所有导入并解决问题。 为我工作,Xcode 10 +

编辑1: 打开应用程序的iOS文件夹,而不是全局文件夹。

答案 31 :(得分:0)

我的产品名称中有一个空格。文件系统找不到构建目录。我把“恩典教会”改成了“恩典教会”。这不会影响显示名称。在 Target > Build Settings > Packaging > Product Name

中修复

build settings

答案 32 :(得分:0)

我使用的是RN版本0.5.7的XCode 10,我尝试了几乎所有解决方案,但没有任何效果。

花了很多时间之后,终于可以通过执行以下操作来实现工作方式

  
      
  1. 通过运行react-native init project --version react-native@0.56
  2. 安装早期版本的react-native   
  3. 打开project/ios/project.xcodeproj并选择Debug进行命令行构建
  4.   
  5. 确保选择正确的开发证书
  6.   
  7. 再次运行react-native run-ios,这次必须可以运行。
  8.   

答案 33 :(得分:0)

首先从Xcode运行您的项目,然后尝试从命令行运行。这就是我的问题。

答案 34 :(得分:0)

基本原因是部署端口不是免费的。 重新启动设备并释放所有端口,否则运行$ lsof -i :8081并查找占用端口8081的进程。 通过运行$ kill -9 {process_which_is_running_under_8081}

终止使用端口8081的进程

答案 35 :(得分:0)

当您运行npm install命令一段时间互联网问题时,node_modules\react-native\third-party中的文件未正确下载,请检查是否已正确下载,如果没有请删除node_modules并重新安装

然后运行react-native run-ios命令

答案 36 :(得分:0)

这对我有用。 按照步骤https://facebook.github.io/react-native/docs/getting-started.html(使用本机代码构建项目)。

在运行 react-native run-ios 命令之前,从https://sourceforge.net/projects/boost/files/boost/1.63.0/下载boost节点模块并替换node_modules / react-native / third-party / boost_1_63_0

现在运行 react-native run-ios 命令

答案 37 :(得分:0)

我找到了解决问题的方法:不要在项目路径中使用空格!

答案 38 :(得分:0)

这项工作对我来说点击导航器中的RCTWebSocket项目并删除构建设置下的标志&gt;自定义编译器标志 enter image description here

答案 39 :(得分:-1)

在可能的原因列表中添加一个: xcodebuild 可能已损坏。

在我的情况下,xcodebuild没有执行任何操作,因此它从未生成ios / build /目录,并导致了上述错误。

我在命令行上使用了“哪个xcodebuild”,将其删除,错误消失了

我花了一段时间才意识到xcodebuild不好-我查看了日志消息并手动运行带有react native参数的xcodebuild命令-没有任何输出。没有构建消息,没有错误消息,什么都没有。没有参数就跑了-一样......

将其保留为检查此错误消息是否出现的另一件事。您的xcodebuild是否正常工作?

答案 40 :(得分:-1)

对我来说,这是Xcode9.4的应有的本机兼容性问题。 我使用以下步骤解决了。 在我的项目/ ROOT

  1. rm -rf node_modules
  2. 本机升级
  3. npm安装
  4. react-native run-ios

解决了这个问题,该主题帮助我了解了这个问题。

答案 41 :(得分:-1)

修复OSX EL CAPITAN

我还在OSX 10.11.6上使用XCode 8.2.1 ......有一天会升级,但今天不会升级。通过降级反应本机到52.0,我能够超越:CFBundleIdentifier错误

private WeakReference<ProgressDialog> progressDialog; private final FinishListener listener; public SaveDataTask(ProgressDialog progressDialog, @NonNull FinishListener listener) { this.progressDialog = new WeakReference<>(progressDialog); this.listener = listener; } ... @Override protected void onPostExecute(Boolean success) { if (progressDialog.get() != null) { progressDialog.get().cancel(); } listener.onSaveFinish() }

让我在模拟器上成功构建。干杯!

答案 42 :(得分:-1)

不幸的是,所提到的解决方案都没有对我有用。

在尝试了this issue的一些答案后,以下内容最终确实有效:

由于一个或多个必需的iOS第三方库未正确下载到~/.rncache(意味着其中的文件已损坏且无法解压缩),我删除了此文件夹的内容,运行{再次{1}},这最终成功了。

答案 43 :(得分:-2)

删除节点模块,然后在项目目录中运行“ npm install”。 现在您可以运行该项目了。