今天往MacOS工程添加了几张图片后,编译报错,内容如下:
“Code signing fails with error 'resource fork, Finder information, or similar detritus not allowed' ”
大意是:代码签名报错了,资源分之、Finder信息或者类似的残留信息不被允许。。一脸懵逼。。
这个报错在苹果官网有解释:https://developer.apple.com/library/content/qa/qa1940/_index.html
官方说这是出于安全起见而在iOS 10, macOS Sierra, watchOS 3, and tvOS 10上做的强制措施。代码签名不再允许bundle包中的任何文件有包含资源分支(resource fork)或Finder信息。
如果要看是哪些文件引起的错误,在终端运行一下命令:
$ xattr -lr <path_to_app_bundle>
注意把 path_to_app_bundle 替换成你的app bundle的路径。
比如:
$ xattr -lr Foo.app
也可用以下命令移除所有文件的扩展属性:
$ xattr -cr <path_to_app_bundle>
注意:在使用Finder的Show Package Contents 命令来浏览bundle中的文件时会造成Finder信息被添加进文件中。
而我是由于添加的几张图片出了问题,因此可以运行一下命令来解决:
find . -type f -name '*.jpeg' -exec xattr -c {} \;
find . -type f -name '*.png' -exec xattr -c {} \;
find . -type f -name '*.tif' -exec xattr -c {} \;