无法在Cordova上运行iOS模拟器

11

在运行该命令时

cordova emulate ios

我遇到了以下错误。实际上,我遇到了rm:无法删除权限被拒绝的错误,所以我使用sudo命令。我之前可以轻松运行这个函数,但是在重新启动后——虽然没有做任何更改——这个函数就不能工作了。在构建成功之后,在部署到模拟器时,我会得到这个错误。

 An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=159):
    Invalid device state
    ENOENT: no such file or directory, stat '/Users/user/Library/Logs/CoreSimulator/8F3C9A0F-D432-49A4-84DA-D0480829884A/system.log'
    Error code 1 for command: ios-sim with args: launch,/Users/user/helloworld/platforms/ios/build/emulator/helloworld.app,--devicetypeid,com.apple.CoreSimulator.SimDeviceType.iPhone-4s,--stderr,/Users/user/helloworld/platforms/ios/cordova/console.log,--stdout,/Users/user/helloworld/platforms/ios/cordova/console.log,--exit
    Error: /Users/user/helloworld/platforms/ios/cordova/run: Command failed with exit code 2
        at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:139:23)
        at emitTwo (events.js:87:13)
        at ChildProcess.emit (events.js:172:7)
        at maybeClose (internal/child_process.js:818:16)
        at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)

我已经重新安装了sudo npm install ios-sim -g,但是还是出现了同样的错误。如何正确运行它?

我已经重新安装了sudo npm install ios-sim -g,但是还是出现了同样的错误。如何正确运行它?


这是在El Capitan上发生的吗? - ligaz
是的,OSX 10.11。我进行了恢复出厂设置,现在它可以工作了。暂时来说,可能与设置或旧文件有关。但我不知道错误信息中是否有任何可用于找到解决方法的内容。 - Jon
3个回答

22

这是由于在Mac上的权限问题导致的:

以下是您可以使用的步骤来解决此问题:

清空Cordova项目中的“platforms”文件夹。

再次运行Cordova platform add iosCordova build iosCordova emulate ios 不要使用sudo

如果您正在使用Mac并仍然遇到权限错误,请确保用户主目录中的所有文件实际属于该用户,方法是运行sudo chown -R username /Users/username


请确保在运行“sudo chown -R username /Users/username”命令后重新启动终端应用程序。 - Axle
谢谢,我的问题是由于在Windows上创建的文件权限问题引起的。@Axle,对我来说不需要重新启动控制台就可以解决:D - Exlord

1
当您没有为根用户配置模拟器配置时,会发生这种情况。
以下命令对我有效。
sudo npm install -g ios-sim

如果它不能正常工作,您可以尝试以root用户身份删除平台,然后以普通用户身份重新添加它。

-2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接