问题描述
我有一个用Objective-C编写的插件,其中包含CoreML模型。插件和ML模型可以在本地编译并正常运行。如果我通过Box通过电子邮件发送或传输插件模型和coreml模型,我的插件将崩溃并引发损坏的错误。我可以通过删除终端xattr -cr me/myplugin.plugin
中的扩展属性来使插件正常工作,但是代码的ML部分仍然失败。
如果我使用XCode进行监视,那么当coreml模型失败时,我会注意到以下内容:
[coreml] Input feature input_layer required but not passed to neural network.
[coreml] Failure verifying inputs.
通过电子邮件/邮箱进行传输时,是否存在某些签名或附加属性会导致此问题?
解决方法
是否存在一些导致此问题的签名或附加属性 通过电子邮件/邮箱传输时出现问题?
由于您可以访问每个文件的两个版本(在通过邮箱发送电子邮件/传输之前以及传输之后)。
转到每个文件的两个版本,然后执行以下操作:
ls -la
如果它具有扩展属性,将有一个@符号。例如:
drwxr-xr-x@ 254 hoakley staff 8636 24 Jul 18:39 miscDocs
如果传输后的版本没有@符号,则它们没有扩展属性。
然后对每个文件(两个版本)执行以下操作:
xattr -l filepath
这将显示每个文件的扩展属性。 您应该比较每个文件的两个版本的属性,并观察差异。这应该可以回答您的问题。如果没有区别,则没有添加或删除扩展属性。
阅读:https://eclecticlight.co/2017/08/14/show-me-your-metadata-extended-attributes-in-macos-sierra/