【问题标题】:Print: Entry, ":CFBundleIdentifier", Does Not Exist打印:条目,“:CFBundleIdentifier”,不存在
【发布时间】:2016-09-24 12:11:33
【问题描述】:

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

【问题讨论】:

  • 文件中是否存在捆绑标识符?我认为不是,所以问题是“为什么不将它写入文件”。
  • 这并没有真正的帮助。你能详细说明一下吗?
  • 对我来说,这是由于与 Xcode9.4 的 react-native 兼容性问题。我使用以下步骤解决了。 “rm -rf node_modules”然后是“react-native upgrade”然后是“npm install”然后是“react-native run-ios”
  • Raja..您确定可以在删除 node_modules 文件夹后运行 react-native upgrade 吗?我试过了,它说无法识别升级
  • 关闭你的终端,再次打开它并运行它为我工作的应用程序。

标签: ios reactjs react-native


【解决方案1】:

按照这些步骤操作

  1. 清除派生数据
  2. 从 Xcode 构建和运行
  3. 现在用命令行试试

【讨论】:

    【解决方案2】:

    我的产品名称中有一个空格。文件系统找不到构建目录。我将“Grace Church”更改为“GraceChurch”。这不会影响显示名称。修复 Target > Build Settings > Packaging > Product Name

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 你尝试过构建吗?并且您是否在没有 react-native run-ios 的情况下继续使用?
      【解决方案4】:

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

      我也遇到了同样的问题,在我的情况下,找不到 Info.plist,这就是我在 Build Settings 中的 Product Name 的原因错误的。 我不知道为什么之前的名字变了。

      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. 转到 Target > WalletApp > Build Settings 选项卡
        1. 滚动到 包装 > 产品名称
        1. 将产品名称更改为 WalletApp
        1. 删除了构建文件夹rm -rf /Users/joaolavoier/Library/Developer/Xcode/DerivedData/WalletApp-dkxuxrpnrdamwmchtgsxasmjabmt
        1. 清理产品>清理构建文件夹
        1. 构建 产品 > 构建
        1. 最后在您的项目的根目录yarn startyarn ios

      希望对大家有所帮助。

      【讨论】:

      • 这似乎也是我的问题。
      【解决方案5】:

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

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

      我通过删除我的yarn.lock 文件和node_modules 文件夹解决了这个问题。然后使用yarn install 再次安装所有内容。其背后的逻辑是,这会升级你的react-native-cliwhich fixes这个错误。

      【讨论】:

      • 删除锁定文件(在我的情况下是package-lock.json,因为我没有使用纱线)帮助了很多。为我工作。
      • 在运行react-native run-ios --scheme XXX 时遇到问题。显然react-native-cli 需要更新以修复它。删除 yarn.lock 成功了!
      • 但是这个修复使用的是什么 RN 版本...?
      • 我在 RN 0.62.2 中遇到了同样的问题。效果很好!谢谢
      • 谢谢!这对我有用! (删除锁定文件并重新安装节点模块)
      【解决方案6】:

      在 Xcode 中打开项目

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

      然后

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

      2.点击高级按钮

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

      4.将“Build/Products”更改为“build/Build/Products”,将“Build/Intermediates”更改为“build/Build/Intermediates”

      5.点击完成,完成

      【讨论】:

      • 这在 xcode 8.2 上对我有用,解决了我的问题,谢谢!
      • @PatNeedham “项目设置”已重命名为“工作区设置”
      • 你能解释一下为什么这个解决方案有效吗?
      • 从 xCode 10 开始,这仍然是修复它的方法
      • 废话。这个解决方案对我也不起作用。我完全没有想法。至少它是在 Xcode 中构建的(这对我来说毫无意义)¯_(ツ)_/¯
      【解决方案7】:

      类似The domain/default pair of (../ios/Runner/Info, CFBundleIdentifier) does not exist的错误信息

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

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

      一个可能的问题是 &lt;key&gt;s 和 &lt;values&gt;s(&lt;array&gt;s、&lt;string&gt;s 或 &lt;bool&gt;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 有一个未封闭且明显错误的标签“”在不知名的地方。从头到尾仔细检查您的 plist 文件。
      【解决方案8】:

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

      修复之前的错误,然后这个错误应该会消失。

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

      【讨论】:

        【解决方案9】:

        我在运行react-native run-ios --scheme="customscheme" 时收到此错误,并且customscheme 的名称拼写错误。

        【讨论】:

          【解决方案10】:

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

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

          【讨论】:

          • 老鼠!我已经为这个问题浪费了两个工作日。疯狂的是我的 CLI 构建直到 3 天前都运行良好。不知道发生了什么。这也没有解决问题。想看我长大的哭声吗? TT
          • 完美,但它表示旧模式已被弃用。有问题吗?
          【解决方案11】:

          对我来说,这是由 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'。
          • @MohammadMirzaeyan 假设您已经完成了pod init 并且您拥有有效的 Podfile。如果您没有足够的知识来反驳您的主张,请不要投反对票。因为这是我提到的其他人的项目,所以我已经有了 PodFile。我已经为像你这样的人完全删除了 pod 设置。
          【解决方案12】:

          所有这些解决方案建议都对我不起作用。我刚刚创建了一个 rn 0.58.5 项目。并与我的项目相比。我看到Build Phasess > Link Binary With Libraries 下没有JavaScriptCore.framework。拖放后 JavaScriptCore react-native run-ios build 成功。

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

          【讨论】:

          • 给 +1 我也在运行 0.58.5,而且我的环境中也缺少该框架。
          【解决方案13】:

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

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

          【讨论】:

          • 感谢 Eli,我通过简单地运行“react-native upgrade”解决了这个问题
          • 对于那些在企业环境中工作的人,我会敦促谨慎使用此解决方案。需要计划升级 react-native 核心,因为它可能会对其他人的工作产生负面影响。先问吧。
          【解决方案14】:

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

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

          【讨论】:

          • 不,RN 0.57 和 Xcode 10.1 无法用于全新的 react native init 应用程序
          • 它也不适用于 Xcode 11.3 / RN 61.5。我可以在 Xcode 中成功启动,但 CLI 继续在 DerivedData 文件夹中的错误位置查找。我不知道为什么。此路径中的端点不存在/DerivedData/.../ios/build/Debug-iphonesimulator/React/
          【解决方案15】:

          在 xcode 10.1 上使用这个版本对我来说很有效

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

          【讨论】:

          • 老实说,我认为上述内容将是我的救星,但即使这样也没有用。所以升级,不,我不相信。
          【解决方案16】:

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

          在浪费了很多时间之后,我终于通过以下方式开始工作了

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

          【讨论】:

            【解决方案17】:

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

            【讨论】:

            • @Eran 或者您在控制台中看到Provide a valid path to the desired application bundle. 吗?试试下面的xcode设置file =&gt; project settings, build system: legacy, derived data: project-relative, DerivedData in the input =&gt; advanced, custom, relative to workspace, build/Build/ in the first 2 inputs
            【解决方案18】:

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

            第 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
            

            我希望这会奏效!!!

            【讨论】:

              【解决方案19】:

              如果您缺少 config.h 文件,可能会发生这种情况,

              对于更新 config.h 文件,

              1) 关闭您的 Xcode。

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

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

              3) 运行配置脚本:

              ./configure
              

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

              {X}:版本号 glog

              【讨论】:

              • 谢谢!!这节省了我的时间。
              • 我从头开始安装 react-native,创建了我的第一个项目,但无法让它工作。这个答案解决了我的问题。我想知道为什么会发生这种情况,因为它是全新的安装
              • 介意解释一下为什么会这样吗?
              • 这对我有用。全新安装 react-native 0.55,Xcode 版本 10
              • ...如果没有configure 脚本,如0.58 怎么办?
              【解决方案20】:

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

              如果您遇到问题,请查看完整的构建输出,而不仅仅是最后几行。你可能想在 Xcode 中打开项目并点击 ⌘B 来构建它。 Xcode 中的构建错误应该可以帮助您找到失败的根本原因。

              【讨论】:

              • 救命稻草。这确实是另一个问题。重命名了我的架构,问题就解决了。
              • 在我的 Xcode 编译中,我可以构建。运行 react-native run-ios 命令时失败
              【解决方案21】:

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

              【讨论】:

                【解决方案22】:

                根本原因是部署端口不是免费的。 要么重新启动设备并释放所有端口,要么运行 $ lsof -i :8081 并找到占用端口 8081 的进程。 运行$ kill -9 {process_which_is_running_under_8081}杀死正在使用8081端口的进程

                【讨论】:

                  【解决方案23】:

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

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

                  【讨论】:

                  • 此方法不安全,因为它可以删除许多特定的项目设置。
                  • 完全错误,所有为ios编写的本机代码都会丢失。
                  【解决方案24】:

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

                  在我的例子中,xcodebuild 没有做任何事情,所以它从来没有生成 ios/build/ 目录,导致上面的错误。

                  我在命令行使用了'which xcodebuild',删除了,错误消失了

                  我花了一段时间才意识到 xcodebuild 很糟糕 - 我查看了日志消息并使用 react native 参数手动运行 xcodebuild 命令 - 没有任何类型的输出。没有构建消息,没有错误消息,什么都没有。没有参数运行 - 相同....

                  将其留在这里作为另一件事,以检查是否出现此错误消息。你的 xcodebuild 工作正常吗?

                  【讨论】:

                    【解决方案25】:

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

                    【讨论】:

                    • 重装node不是解决办法
                    【解决方案26】:

                    对我来说,这是由于与 Xcode9.4 的 react-native 兼容性问题。 我使用以下步骤解决了。 在我的项目/ROOT

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

                    解决了这个问题,这个帖子帮助我理解了这个问题。

                    【讨论】:

                      【解决方案27】:

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

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

                      【讨论】:

                      • 覆盖所有 iOS 文件将覆盖您对项目所做的任何配置。哈哈。使用风险自负免责声明是您至少可以做的。
                      • 如果有人能解释“你所有的 iOS 配置”是什么意思会很有帮助。
                      • @AndrewKoster 这意味着如果您更改 iOS 目录中的文件,它将被覆盖。假设您在 Xcode 中更改了项目的配置,例如:在提示用户许可时添加描述。在那里所做的所有这些自定义更改都将被覆盖。
                      • 有谁知道react-native upgrade 可能会修改哪些文件?这些文件是项目的一部分吗?在版本控制下,还是默认忽略?或者它们是操作系统的一部分,在版本控制之外?这一切都非常模糊。
                      【解决方案28】:

                      修复 OSX EL CAPITAN

                      我仍在使用带有 XCode 8.2.1 的 OSX 10.11.6 ...有一天会升级,但不是今天。我能够通过将 react native 降级到 52.0 来克服 :CFBundleIdentifier 错误

                      yarn upgrade react-native@52.0

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

                      【讨论】:

                        【解决方案29】:

                        不幸的是,上述解决方案都不适合我。

                        在尝试了this issue的一些答案后,以下终于奏效了:

                        由于一个或多个所需的iOS第三方库没有正确下载到~/.rncache(意味着那里的文件已损坏且无法解压缩),我删除了该文件夹的内容,运行react-native run-ios再次,这最终成功了。

                        【讨论】:

                          【解决方案30】:

                          添加,它对我有用,当以上没有修复时:

                          1. 安装 react-native-git-upgrade 并更新您的项目。 npm i -g react-native-git-upgrade &amp;&amp; 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

                          【讨论】:

                            猜你喜欢
                            • 2019-02-27
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2019-07-02
                            • 2017-04-29
                            • 2019-08-31
                            • 1970-01-01
                            相关资源
                            最近更新 更多