304

已经尝试过: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

在代码签名部分,它允许我选择配置文件和证书......但仍然给出错误。 在此处输入图像描述

在此处输入图像描述

如何解决这个问题?

4

25 回答 25

676

解决方案1:

苹果开发者网站在这里回答上述问题。

在终端中执行以下命令:首先转到项目根文件夹

 xattr -cr <path_to_project_dir>

清理 Xcode 并重新构建。干杯

解决方案2:

只需转到项目根目录并运行此命令 xattr -cr 。

xattr -cr .

清理 Xcode 并重新构建。完毕。

解决方案3:

您可以通过查找包含查找器信息的文件来解决此问题。

在终端中,转到项目根目录并执行

ls -alR@ . > kundapura.txt

这会在当前目录中创建 kundapura.txt。现在搜索 com.apple.FinderInfo 并清除所有文件的此属性。你可以这样做

xattr -c <filename>

例子:xattr -c guru.png

清除所有内容后,代码符号就可以工作了。清理 Xcode 并重新构建。干杯

解决方案 4:灵感来自 Mark McCorkle 的回答

在终端中,进入项目的根目录,并一一执行命令

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

清理 Xcode 并重新构建。完毕。

于 2016-09-23T18:46:47.990 回答
182

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

这是一个简单的命令,用于查找所有 png 文件并删除它们的属性。从终端在您的项目根目录中运行它。清理和重建;问题解决了。

find . -type f -name '*.png' -exec xattr -c {} \;
于 2016-09-26T14:52:09.040 回答
106

如果您在对应用进行代码设计时遇到此错误:

不允许资源叉、Finder 信息或类似的碎屑 命令 /usr/bin/codesign 失败,退出代码为 1

转到您的项目根文件夹并执行

find . | xargs -0 xattr -c

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

在 Sierra 中,关于可以在签名包中包含哪些内容的规则已经收紧,并且不再允许资源分叉。AppleScript 一直在资源分叉中保存信息,尽管这些信息已经很久没有使用了。使用 Sierra,当您保存脚本时,将不再保存此资源派生信息。

这意味着您不能对最后保存在 Sierra 之前的版本中的脚本进行代码设计;您必须在 Sierra 中保存才能登录 Sierra。

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

更新:

似乎这也有效:

xattr -rc .

如果您有任何权限不足错误,请尝试添加 sudo:sudo xattr -rc .

于 2016-09-25T18:38:06.270 回答
37

处理源文件属性的最简单方法是让 Xcode 在运行 codesign 之前清除存档。去做这个:

  1. 在 XCode 中选择你的目标
  2. 选择构建阶段选项卡
  3. 按 + 符号
  4. 选择新的运行脚本阶段
  5. 为脚本输入以下内容:

    xattr -cr ~/Library/Developer/Xcode/DerivedData || 回声清除

现在,当您构建目标时,它将清除任何会破坏协同设计的属性。通过在此阶段清除,您不必更改源代码/项目目录。

脚本的“|| echo Clear”部分确保即使出现 xattr 错误,项目构建也会继续。

如果您在代码存储库中使用诸如 DropBox 之类的程序来添加属性,则此方法很好,因为它不会更改您的源项目,只会更改构建的存档。

您可能需要更改路径以匹配您的 DerivedData 目录 - 此路径将显示在代码设计错误旁边。

xattr 代码设计 xcode 修复

于 2017-03-29T13:27:25.637 回答
31

我使用了以下命令。使用终端窗口。导航到您的项目并执行以下操作:

xattr -rc .
于 2017-10-23T21:02:55.860 回答
24

在Technical Q&A QA1940中有苹果官方对此问题的回答。

这是一项在 iOS 10、macOS Sierra、watchOS 3 和 tvOS 10 中引入的安全强化更改。

代码签名不再允许应用程序包中的任何文件具有包含资源分叉或 Finder 信息的扩展属性。

要查看导致此错误的文件,请在终端中运行以下命令:xattr -lr <path_to_app_bundle>

您还可以使用 xattr 命令从应用程序包中删除所有扩展属性:xattr -cr <path_to_app_bundle>

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

于 2016-11-27T09:24:12.023 回答
17

关于清除文件的一切都很好,但对于多个项目来说很乏味。

图形应用程序,(如旧版本中的 Photoshop)以旧方式在外部文件中写入附加信息(我们现在称之为元数据..),或者它们来自旧版 OSX,文件如下:

例如,解压缩文件夹时的“com.apple.ResourceFork”和“com.apple.FinderInfo”。

Xcode 8 拒绝将其添加到构建中(因为您使用“git --add 将它们添加到项目中。”也许..)您可以在终端中递归地找到并删除它们,但可能很乏味。

我写了一个小的免费实用程序来删除它..希望它可以帮助..

https://itunes.apple.com/us/app/cleandetritus/id1161108431?ls=1&mt=12

于 2016-10-15T06:27:29.253 回答
12

对于那些(像我一样)只是尝试开发应用程序而不必在添加到 macOS 目标的每个新的 photoshop 创建的 PNG 上剥离扩展属性的人,您可以通过添加用户定义的构建设置来临时禁用代码签名:

CODE_SIGNING_ALLOWED = No 

显然,分发应用程序的人最终需要解决这个问题,但这可以在像我这样的情况下进行开发,在 Sierra 中省略代码签名不一定很简单(在过去的 OS X / Xcode 上,这样做更容易)。

根据 RGriffith 的评论,这里有一些屏幕截图,供那些不确定如何添加自定义构建设置的人使用。

在此处输入图像描述

在此处输入图像描述

于 2017-01-18T18:41:27.263 回答
11

简单的解决方案: -

我是怎么做的[为我工作]

第 1 步:- 转到此文件夹 - 从您的取景器按选项转到 -> 转到文件夹

然后像这个例子一样输入你的项目路径:-Library/Developer/Xcode/DerivedData/yourprojectname/Build/Products/Debug-iphoneos

现在您可以看到一个弹出窗口,其中包含可用文件列表,您可以看到 yourApp.app 文件 [不要做任何事情,只需等待第 2 步]。

第 2 步:- 打开新终端并键入 cd 然后只需将第 1 步 yourApp.app 拖到终端,现在您将获得应用程序的路径,现在按 Enter 按钮。

第 3 步:- 现在输入此命令 **

xattr -rc 。

不要错过“。”(点)按回车键。

就是这样,转到您的 Xcode 项目并清理并再次运行。

于 2016-10-13T10:02:24.740 回答
10

-----如果您由于缺乏 bash 知识或其他原因而无法应用上述解决方案。

我在 Sierra 上启用 iCloud Drive 后就遇到了这个问题。我的项目位于与 iCloud Drive 同步的文件夹中。我想这就是添加这些附加属性的原因。

临时解决方案:

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

于 2016-09-26T13:14:36.193 回答
4

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

我的应用程序被称为:增强

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

在终端窗口中运行您的应用程序文件夹的命令,例如:xattr -cr augment-flmbiciuyuwaomgdvhulunibwrms

清洁>构建>运行。

Mac Appstore 上还有一个名为“CleanDetritus”的免费应用程序可以删除这些。

于 2018-02-06T22:57:03.810 回答
2

这个问题昨天来找我。

(What's wrong)我通过手动替换查找器中的文件来更新图像资源,但由于此编译错误而失败。

(What's right)不要以这种方式更新图像。之后,我将图像拖到 Xcode 中的“xcassets”。不再出现错误。

于 2017-03-07T01:39:05.567 回答
2

问题出在派生数据中,您应该清理派生数据,然后清理项目并构建。请检查链接。

于 2017-12-05T12:26:17.740 回答
1

我的问题是我在代码中所做的每一次更改并再次执行错误都会再次出现。然后我找到了一个解决方案,可以在每次编译/执行代码时自动执行命令。

感谢@rich-able,我发现了“运行脚本”。然后我输入命令“xattr -cr”。在该领域。

XCODE 解决方案

于 2017-06-08T05:34:31.010 回答
1

如果您使用的是git,最简单的解决方法可能是。尝试:

$ git stash
$ git stash pop

Git 不存储文件元数据,上面将其全部删除。

于 2017-10-06T21:58:08.873 回答
1

打开终端并运行此命令。

xattr -cr ".app 文件的路径"

于 2017-12-06T07:35:42.947 回答
0

我的问题是大约1年前我使用cordova构建了应用程序,但它与新版本的xcode不兼容,所以我简单地使用cordova build ios它并再次运行。

于 2017-03-24T09:44:05.710 回答
0

最好的解决方案之一是转到终端类型

xattr -cr "Full path of your project"

要找到您右键单击 Xcode 项目的完整路径 -> 获取信息 -> 复制路径并替换为 . 然后输入以下命令

xattr -cr "Full path of your project"

清理并构建完成。

于 2017-07-14T05:29:51.363 回答
0

如果 xattr 命令不起作用,这可能是由于 XCode 9 错误:让我们尝试删除并重新添加包含 Xcode 中受影响文件的资源文件夹(在我的情况下是 .xcassets)。(您应该通过 xattr -lr 命令了解哪些是之前受影响的文件)

于 2017-10-18T15:25:03.470 回答
0

我也面临同样的问题,只需重新启动我的 Macbook 即可解决。

于 2018-01-04T12:39:33.287 回答
0

我发现如果我color tag在 下的文件夹中添加DerivedData,在设备上调试时会出现上述错误。

为我删除color Tag修复此错误。

在此处输入图像描述

于 2018-06-13T08:07:50.773 回答
0

您可以删除派生数据 Xcode -> Preferences

然后点击下面的箭头Derived Data,清空文件夹Derived Data

于 2019-09-18T11:27:58.913 回答
0

我不知道我发生了什么,但是当我在模拟器上运行颤振应用程序时,我遇到了错误。我使用flutter clean命令并删除了派生数据,然后一切正常。

于 2020-06-10T14:43:11.953 回答
0

我的 .app 位于网络安装的驱动器上。

codesign -f -vv --preserve-metadata=entitlements -s {*my Apple distribution cert SHA*} my.app
my.app: resource fork, Finder information, or similar detritus not allowed

我不知道是路径太长还是它位于 NAS 设备上是一个问题。我将 .app 复制到我的本地下载目录,然后能够进行代码设计。

my.app: signed app bundle with Mach-O thin (arm64) [*com.something.my*]
于 2021-06-14T21:34:59.290 回答
0

当我复制一个.plist文件并编辑它而不是创建一个新文件时,这也发生在我身上。该xattr -lr <path>命令帮助我识别有问题的文件。

于 2021-11-22T11:31:25.437 回答