更新了Xcode,现在当我尝试通过以下命令运行我的React Native应用程序时:
react-native run-ios
,我遇到了一个错误:
调试错误: 命令失败: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier DerivedData/Build/Products/Debug-iphonesimulator/MyAppName.app/Info.plist 打印: 条目 ":CFBundleIdentifier" 不存在 在 checkExecSyncError (child_process.js:616:11) 在 Object.execFileSync (child_process.js:634:13) 在 runOnSimulator (project-root-dir/node_modules/@react-native-community/cli/build/commands/runIOS/runIOS.js:181:45)处理命令时遇到错误(域=NSPOSIXErrorDomain,代码=2): 未能安装请求的应用程序 提供的路径上没有找到应用程序包。 请提供所需应用程序包的有效路径。 打印:条目“:CFBundleIdentifier”不存在 错误命令:/usr/libexec/PlistBuddy -c Print:CFBundleIdentifier DerivedData/Build/Products/Debug-iphonesimulator/MyAppName.app/Info.plist 打印:条目“:CFBundleIdentifier”不存在
在这些错误之前,该命令会打印成功构建的信息,并且表明它正在安装构建:
信息 ** BUILD SUCCEEDED ** 信息 安装 DerivedData/Build/Products/Debug-iphonesimulator/MyAppName.app 因此,似乎构建是成功的,但当它尝试安装应用程序时失败了?
我认为我已经尝试了其他类似错误消息的问题所提供的所有内容,但对我来说都没有起作用。
一些规格:
react-native:0.59.10 react:16.8.3 xcode-version:版本12.2(12B45b)
我知道stackoverflow上有类似的问题。但是由于那里提供的解决方案都不适用于我,并且我希望能够解决这个问题,所以我提出了这个单独的问题。
我不知道它试图查找的Info.plist文件在哪里:DerivedData/Build/Products/Debug-iphonesimulator/MyAppName.app/Info.plist
在我的ios文件夹中,有一个名为DerivedData的文件夹,但是里面没有名为Build的文件夹。所以我认为它可能正在从错误的位置查找?
更新:
我已经能够确定cli启动失败的位置: https://github.com/react-native-community/cli/blob/ba298d9c47af522f0377325bebc6c2075d41790a/packages/platform-ios/src/commands/runIOS/index.ts#L378
如果我更改那一行let buildPath = build/${scheme}/Build/Products/${configuration}-${device}/${appName}.app
将 build/${scheme}/Build/Products/${configuration}-${device}/MyAppRealName.app
转换为:
然后开发启动工作正常,没有问题。因此似乎获取应用程序名称出现了问题。应用程序名称在此处解析:https://github.com/react-native-community/cli/blob/ba298d9c47af522f0377325bebc6c2075d41790a/packages/platform-ios/src/commands/runIOS/index.ts#L387
const productNameMatch = /export FULL_PRODUCT_NAME="?(.+).app"?$/m.exec(buildOutput);
react-native upgrade
会升级整个React Native吗? - Ville Miekk-oja@react-native-community/cli
。我使用npx
从CLI运行RN命令。尽管如此,当执行到将应用程序安装在模拟器上的时候,我仍然遇到了同样的问题。 - Mike S.