已经尝试过:在macOS Sierra, Xcode 8上的代码符号错误

请参阅显示错误的图像

CodeSign /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super\ Flow\ Flip.app
    cd "/Volumes/Development/Project/Top Best Games/19. Lets Flow/35/let's FLOW - source/proj.ios_mac"
    export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

Signing Identity:     "iPhone Distribution: New Free Games (2CHN583K4J)"
Provisioning Profile: "Super Flow Flipp AppStore"
                      (c6c30d2a-1025-4a23-8d12-1863ff684a05)

    /usr/bin/codesign --force --sign E48B98966150110E55EAA9B149F731901A41B37F --entitlements /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Intermediates/Flow.build/Debug-iphoneos/Super\ Flow\ Flip.build/Super\ Flow\ Flip.app.xcent --timestamp=none /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super\ Flow\ Flip.app

/Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super Flow Flip.app: resource fork, Finder information, or similar detritus not allowed
Command /usr/bin/codesign failed with exit code 1

在代码签名部分,它允许我选择配置文件和证书…但还是会出错。

如何解决这个问题?


当前回答

错误来自于图像文件中的属性。这发生在我们的图形设计师从photoshop保存带有属性的图像。

下面是一个简单的命令,可以找到所有的png文件并删除它们的属性。在终端的项目根目录中运行这个。清洁和重建;问题解决了。

find . -type f -name '*.png' -exec xattr -c {} \;

其他回答

您将需要删除应用程序包文件夹并重新构建应用程序,如下所述。

我的应用叫做augment

在终端窗口,转到你的应用程序文件夹 例如:cd /Users/username/Library/Developer/Xcode/DerivedData/

在终端窗口为你的应用程序文件夹运行命令 例如:xattr -cr augt -flmbiciuyuwaomgdvhulunibwrms

清洁> >运行构建。

Mac Appstore上还有一款名为“CleanDetritus”的免费应用程序,可以清除这些碎屑。

最简单的解决方法是使用git。试一试:

$ git stash
$ git stash pop

Git不存储文件元数据,上面会把它全部去掉。

如果你在共同设计应用程序时遇到了这个错误:

资源分叉,查找器信息,或类似的碎片不允许 命令/usr/bin/codesign失败,退出码为1

转到项目根文件夹并执行

find . | xargs -0 xattr -c

这将清除所有文件的属性。

在Sierra中,关于签名包中可以包含什么内容的规则已经收紧,并且不再允许资源分叉。AppleScript一直在资源分叉中保存信息,尽管这些信息已经被使用了很长一段时间。使用Sierra,当你保存一个脚本时,这个资源分叉信息将不再被保存。

这意味着你不能共同设计一个在Sierra之前的版本中保存的脚本;你必须在Sierra中保存,才能在Sierra中签名。

可能受到影响的人是那些在自己的脚本中捆绑其他脚本的人(cordova?)在Sierra下重新保存所有嵌入式脚本之前,他们将无法对容器脚本进行签名。

更新:

这似乎也有用:

xattr -rc .

如果您有任何权限不足的错误,请尝试在sudo: sudo xattr -rc前加上。

在技术问答QA1940中有官方的苹果答案。

这是iOS 10引入的安全加固更改, macOS Sierra, watchOS 3和tvOS 10。 代码签名不再允许应用程序包中的任何文件具有 包含资源分支或查找器信息的扩展属性。 要查看哪些文件导致此错误,请运行此命令 终端:xattr -lr <path_to_app_bundle> 你也可以从你的应用程序包中删除所有扩展属性 xattr命令:xattr -cr <path_to_app_bundle> .使用实例

<path_to_app_bundle>可以替换为你的Xcode项目目录。例如~/Development/MyProject

-----如果您不能应用上述解决方案,因为缺乏bash知识或其他原因。

我刚在Sierra上启用iCloud Drive就遇到了这个问题。我的项目在一个与iCloud Drive同步的文件夹里。我想这就是增加这些额外属性的原因。

临时解决方案:

为项目所在的文件夹禁用iCloud Drive。