macOS Monterey、Xcode资源分叉、Finder信息或类似碎片中的代码符号错误不被允许

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

请参阅显示错误的图像 enter image description here < / p >

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

在代码签名部分,它允许我选择配置文件和证书…但还是会出错。 enter image description here < / p >

enter image description here

如何解决这个问题?

101690 次浏览

解决方案1:

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

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

 xattr -cr <path_to_project_dir>

清理Xcode和Re Build。干杯

解决方案2:

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

xattr -cr .

清理Xcode和Re Build。完成了。

解决方案3:

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

在终端,进入项目根目录并执行

ls -alR@ . > kundapura.txt

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

xattr -c <filename>

例如:xattr -c guru.png

一旦你清除所有,然后代码签名工作。清理Xcode和Re Build。干杯

解决方案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和Re Build。完成了。

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

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

转到项目根文件夹并执行

find . | xargs -0 xattr -c

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

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

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

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

更新:

这似乎也有用:

xattr -rc .

如果有任何权限不足的错误,请尝试将sudo: sudo xattr -rc .前置

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

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

临时解决方案:

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

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

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

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

简单的解决方案:

我做得怎么样[为我工作]

< p >步骤1:- 转到这个文件夹-从你的finder按下选项Go - >转到文件夹

然后像这样键入您的项目路径 例子:- 库/开发/ Xcode / DerivedData / yourprojectname /构建/产品/ Debug-iphoneos < / p >

现在你可以看到一个窗口弹出可用的文件列表,在那里你看到你的app。app文件[不要做任何事情,只是等待第2步]。

< p >步骤2:- 打开新终端,键入cd,然后拖动步骤1 yourApp。应用程序到终端,现在你会得到应用程序的路径,现在按enter键 < p >步骤3:- 现在键入命令**

Xattr -rc。

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

到你的Xcode项目,清理并再次运行。

所有关于清除文件的内容都很好,但是对于多个项目来说很乏味。

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

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

Xcode 8拒绝添加它到一个构建(因为你添加他们到一个项目与“git -add .”可能..) 你可以递归地在终端中找到并删除它们,但这可能很乏味

我写了一个小的免费实用程序来删除它。希望能有所帮助。

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

苹果在技术q&a q1940中给出了这个问题的官方答案。

这是iOS 10引入的安全加固更改, macOS Sierra, watchOS 3和tvOS 10.

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

要查看哪些文件导致此错误,请运行此命令 终端:xattr -lr <path_to_app_bundle> < / p > 你也可以从你的应用程序包中删除所有扩展属性 xattr命令:xattr -cr <path_to_app_bundle>

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

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

CODE_SIGNING_ALLOWED = No

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

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

enter image description here

enter image description here

我昨天遇到了这个问题。

我通过手动替换查找器中的文件更新了图像资源,我失败了这个编译错误。

不要以这种方式更新image。之后,我将图像拖动到Xcode中的“xcassets”。不再出现错误。

我的问题是,我使用cordova来构建应用程序大约1年前,但它不兼容xcode的新版本,所以我只是使用cordova build ios,它再次工作。

处理源文件属性最简单的方法是让Xcode在运行协同设计之前清理归档文件。这样做:

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

    /Library/Developer/Xcode/DerivedData || echo Clear

    . xattr -cr ~/Library/Developer/Xcode/DerivedData

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

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

如果你在代码存储库中使用DropBox等程序来添加属性,这种方法很好,因为它不会改变源项目,只会改变构建的存档。

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

xattr codesign xcode fix

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

多亏了@rich-able,我发现了“运行脚本”。然后在字段中输入命令“xattr -cr .”。

XCODE Solution

其中一个最好的解决方案是 转到终端类型this

xattr -cr "Full path of your project"

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

xattr -cr "Full path of your project"

清洁和建造完成。

最简单的修复方法是使用git。试一试:

$ git stash
$ git stash pop

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

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

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

xattr -rc .

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

打开终端,然后运行这个命令。

Xattr -cr“。app文件的路径”

我也遇到了同样的问题,重启Macbook就解决了。

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

我的应用叫做augment

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

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

清洁> >运行构建。

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

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

删除color Tag为我修复这个错误。

enter image description here

可以删除派生数据 Xcode -> Preferences < / p >

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

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

我的。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*]

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

我的问题与使用迦太基集成的框架的意外变化有关。我在框架中错误地修改了一行,它没有显示在git中,因为git忽略了依赖构建文件夹。

解决方案:删除框架文件夹在迦太基和重建它。