新的 react-native ios 应用程序没有构建?

Posted

技术标签:

【中文标题】新的 react-native ios 应用程序没有构建?【英文标题】:Fresh react-native ios app not building? 【发布时间】:2016-03-24 14:54:59 【问题描述】:

以下是有关我的环境的详细信息和构建失败的日志。 任何面临类似问题或知道解决此问题的步骤的人请务必指出相关步骤或文档。

Xcode: 7.2.1 节点:v5.9.0 npm: 3.7.3 react-native-cli: 0.1.10 反应原生:0.22.2

运行“sudo react-native run-ios”会留下以下日志。

日志:

** BUILD FAILED **


The following build commands failed:
    PhaseScriptExecution Run\ Script /Users/abc/Desktop/REACT-NATIVE/demo/ios/build/Build/Intermediates/React.build/Debug-iphonesimulator/React.build/Script-006B79A01A781F38006873D1.sh
(1 failure)
Installing build/Build/Products/Debug-iphonesimulator/demo.app
No devices are booted.
Print: Entry, ":CFBundleIdentifier", Does Not Exist
/Users/abc/Desktop/REACT-NATIVE/demo/node_modules/promise/lib/done.js:10
      throw err;
      ^

Error: Command failed: /usr/libexec/PlistBuddy -c Print:CFBundleIdentifier build/Build/Products/Debug-iphonesimulator/demo.app/Info.plist
Print: Entry, ":CFBundleIdentifier", Does Not Exist

    at checkExecSyncError (child_process.js:469:13)
    at Object.execFileSync (child_process.js:489:13)
    at _runIOS (runIOS.js:83:34)
    at runIOS.js:24:5
    at tryCallTwo (/Users/abc/Desktop/REACT-NATIVE/demo/node_modules/promise/lib/core.js:45:5)
    at doResolve (/Users/abc/Desktop/REACT-NATIVE/demo/node_modules/promise/lib/core.js:200:13)
    at new Promise (/Users/abc/Desktop/REACT-NATIVE/demo/node_modules/promise/lib/core.js:66:3)
    at Array.runIOS (runIOS.js:23:10)
    at Object.run (/Users/abc/Desktop/REACT-NATIVE/demo/node_modules/react-native/local-cli/cli.js:86:13)
    at Object.<anonymous> (/usr/local/lib/node_modules/react-native-cli/index.js:73:7)

【问题讨论】:

你已经npm install,有flowwatchman吗? 是的,它已安装。 flow@0.2.3 和 watchman@0.1.8 它可以通过 Xcode 工作吗? 我尝试通过 xcode 构建和运行,但它也因构建错误而失败。 CFBundleIdentifier 的 Info.plist 中有什么内容?我觉得应该是$(PRODUCT_BUNDLE_IDENTIFIER) 【参考方案1】:

不要跑:

sudo react-native run-ios

你应该运行:

react-native run-ios

您的 root 帐户没有正确配置模拟器以运行 iOS,因此您在日志中看到“没有设备已启动”错误!

【讨论】:

@bala 你可以将你的 react-native run-ios 输出发布到问题中吗? 您应得的,先生! 很好的答案,我一直在做 sudos 并陷入困境。【参考方案2】:

我在 OS X El Capitan v10.11.4 上有类似的问题

node --version v6.0.0
npm --v 3.8.8
react-native-cli: 0.2.0
react-native: 0.24.1
watchman --v 4.4.0
xcode 7.3

我在react-native github 上创建了一个问题。

我能够解决我的问题:

对我来说,8081 端口正在使用中:

lsof -n -i4TCP:8081

node 7601 arun 23u IPv6 0xc6b249599e5f1169 0t0 TCP *:sunproxyadmin (LISTEN)

所以我按照React Native Troubleshooting 的指示杀死了 pid

kill -9 7601

然后再次运行命令react-native run-ios,一切都按预期运行(在节点 6 上也是如此)。

【讨论】:

我能够解决这个问题!对我来说,端口 8081 正在使用中:lsof -n -i4TCP:8081node 7601 CXI624 23u IPv6 0xc6b249599e5f1169 0t0 TCP *:sunproxyadmin (LISTEN) 所以我按照 React Native Troubleshooting facebook.github.io/react-native/docs/troubleshooting.html kill - 9 7601 的说明再次运行命令 react-native run-ios 并且一切都按预期工作(在节点 6 上好)。 谢谢!考虑使用评论中提供的信息编辑您接受的答案。干杯。 不是答案。将您的评论(即答案)移动到答案中,并将您的版本详细信息放入评论中! node 7601 bala 23u IPv6 0xc6b249599e5f1169 0t0 TCP *:sunproxyadmin (LISTEN) 在终端中意外标记 `(' 附近出现语法错误 @Balasubramanian 这实际上是运行 lsof 的结果,它不是您应该运行的另一个命令。从中您可以确定要杀死哪个 pid【参考方案3】:

您的Developer 目录的路径似乎有误。

可以通过运行查看

$ sudo xcode-select -p

除非你真的知道你在做什么,否则它应该指向/Applications/Xcode.app/Contents/Developer

如果有问题,请尝试运行以下命令来修复它:

$ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

【讨论】:

abc~/REACT-NATIVE/testingdemo $ sudo xcode-select -p /Applications/Xcode.app/Contents/Developer 它只指向正确的开发者目录。 当心您是否使用 XCode Beta - 我的路径指向 /Applications/Xcode-beta.app/Contents/Developer 但切换回来,因为这个答案表明解决了问题。【参考方案4】:

FWIW 我遇到了完全相同的问题。但是,我使用的是旧版本的 Xcode(在 Yosemite 上)。我已经完全重新安装了 NVM、NPM 和 react-native-cli。 没有任何效果。在这样做的过程中,我还按照指南确保在重新安装之前干净地卸载了节点。

最终奏效的是升级 OSX 本身以允许安装最新的 XCode(此时为 7.3)。现在它完美地工作了。我可以从我的项目的根目录运行react-native run-ios不需要 sudo。至于 sudo 问题,您可以尝试确保您是 Projects 文件夹的所有者。这对我也有帮助。

是的。我升级到 OSX 10.11.4 和 XCode 7.3。为我工作。

祝你好运。

【讨论】:

【参考方案5】:

不确定这是否相关,但我必须确保我在 ruby-2.0.0-p648 使用较新的 ruby​​ 给了我类似的编译问题。

【讨论】:

以上是关于新的 react-native ios 应用程序没有构建?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 react-native 中更改应用程序的显示名称

React-native 中的生命周期管理

React-Native 视频不播放音频

react-native 学习

部署由React-Native开发的android和IOS应用程序

React-native:如何从 Windows 构建 ios