几周前,我开始使用博览会启动这个React Native项目,直到昨天一切都很顺利。
当我运行expo start
时,我像往常一样得到了Metro Bundler,我点击“在Web浏览器中运行”,像往常一样,VS Code终端提示我输入了一个localhost证书的密码输入。我不知道它是什么,但是有一个指向一些本地SSL签名工具的链接,我也不知道任何事情。即使有这个链接,我也不确定我应该输入什么密码,所以我只是按回车键而不输入任何东西,这就是我现在的处境。
我不能再在浏览器中运行我的应用程序了。每当我尝试这样做时,我都会得到这个:
日志只有这个:
PSD:\Projects\GroceryApp\GroceryApp. Web
在D:\Projects\GroceryApp\GroceryApp. Web开始项目
世博会开发工具正在http://localhost:19003
在浏览器中打开DevTools…(按shift-d禁用)
确保创建自动SSL证书(您可能需要使用sudo重新运行)
在19001端口启动Metro Bundler。
此环境不支持调试观看模式
调试检查较新版本的React Native
调试当前版本:0.61.4
debug未找到发布缓存
debug未找到发布缓存
调试检查GitHub上的新版本
debug未找到发布缓存
调试将“6d6386b01438c6ef0acd213d304b5839”保存到缓存
debug未找到发布缓存
debug未找到发布缓存
调试最新版本:0.60.0
隧道准备好了。
exp://192.168.0.108:19000
二维码
要通过实时重新加载运行应用程序,请选择以下之一:
•在Android或iOS的世博客户端中以“编辑”身份登录。您的项目将自动出现在“项目”选项卡中。
使用世博会应用程序(Android)或相机应用程序(iOS)扫描上面的二维码。
•按a for Android模拟器,或w在Web上运行。
按e通过电子邮件向您的手机发送链接。
显示所有可用命令的列表。
您的项目的日志将显示在下面。按Ctrl C退出。
所以,我尝试通过按W
来强制它,然后我得到了这个:
尝试在Web浏览器中打开项目…
(node: 15116)UnhandledPromiseRejationWarning:错误:证书"D:\Projects\GroceryApp\GroceryApp.Web.expo\web\Development\ssl\cert-localhost.pem"无效。
(node: 15116)UnhandledPromiseRejationWarning:未处理的promise拒绝。此错误起源于在没有catch块的异步函数内部抛出,或者通过拒绝未使用.catch()处理的promise。要在未处理的promise拒绝时终止节点进程,请使用CLI标志--unhanded-rejtions=严格
(参见https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。(拒绝id:6)
(node: 15116)[DEP0018]DeprecationWarning:未处理的promise拒绝被弃用。将来,未处理的promise拒绝将以非零退出代码终止Node.js进程。
这是有道理的,因为该文件完全是空的。
抱歉,我想确保所有的日志都在这里。
请帮忙。事先谢谢。
第一次使用选项--https
启动expo应用程序时,它将创建一个最初不受信任的证书,并且在我的Mac上,该证书位于此处:
/Users/myname/Library/Application Support/devcert/certificate-authority/certificate.cert
此证书用于生成expo服务器用于TLS的. pem
文件(位于此处:.expo/tls
)。删除.pem
文件是无用的,因为expo只会从您第一次尝试使用TLS/https为应用程序提供服务时创建的开发证书重新生成它们。因此,解决方案是将开发证书添加到受信任的根列表中,这可以通过以下方式完成(在osx上):
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain -p ssl -p basic '/Users/myname/Library/Application Support/devcert/certificate-authority/certificate.cert'
也许有人可以为Windows和/或Linix提供类似的解决方案。
我建议升级到更新版本的expo并再次运行。