流星科尔多瓦iOS HCP失败,日志显示PNG文件已经存在,但不存在



我正在运行meteor run ios-device ...并查看Xcode中的日志。我使用本地主机上的热代码推送来进行css更改,这些更改立即显示在iOS模拟器设备中。我将user_white.png添加到images文件夹,并在css中指向它一个url(…(。我得到了这个错误,我不明白,因为user_white.png并不"已经存在"。即使我在Xcode中停止启动模拟器,这个错误仍然存在。你知道这个错误意味着什么吗?

2018-07-28 12:48:51.511632-0400 Vium[41847:2439935] Download failure:   
Could not link to cached asset: Error Domain=NSCocoaErrorDomain Code=516 
"“user_white.png” couldn’t be linked to “images” because an item
with the same name already exists."
...
NSFilePath=/Users/opx/Library/Developer/CoreSimulator/Devices/6E759135-D5E3- 
4AC0-AF35-92FCC473A61D/data/Containers/Data/Application/D92D9589-4D22-4006- 
8A08-0AC35932E769/Library/NoCloud/meteor/PartialDownload/app/images/user_white.png,
NSUnderlyingError=0x60000024b520 {Error Domain=NSPO
2018-07-28 12:48:51.516594-0400 Vium[41847:2438252] ERROR: 
{"line":36,"column":30,
"sourceURL":"http://localhost:12072/plugins/cordova-plugin-meteor-webapp/www/webapp_local_server.js"}

更新:这是Meteor中的一个bug--请参阅https://github.com/meteor/meteor/issues/10181详细信息,特别是https://github.com/meteor/cordova-plugin-meteor-webapp/issues/56.此问题导致iOS Meteor Cordova热代码推送失败。在它导致HCP失败的情况下,下面的答案是不够的,但在Xcode调试中也会出现问题,通过下面描述的停止/启动来解决。

事实上,这个问题的答案是,错误消息听起来很误导人,user_white.png还没有以对用户有意义的方式存在。解决方案很简单:停止Xcode/iOS模拟器,停止在localhost上运行的Meteor服务器,然后重新运行meteor run ios-device ...

服务器端的重建和随后在Xcode中对设备客户端的重建使问题消失了。热代码推送和Xcode设备模拟器的组合显然不能以报告你真正需要知道的事情的方式来处理添加新的css引用图像,那就是:停止一切并重建应用程序!

以下是实际的答案:cordova插件metro-webapp插件的metroe代码中已经合并了一个修复程序,因此从该插件的1.7.0版本开始,这个问题就得到了解决。请参阅我之前的"答案"中的链接https://github.com/meteor/meteor/issues/10277细节,但它是固定在流星。

最新更新