首页 文章

macOS High Sierra Xcode中的代码签名错误 - 不允许使用资源分支,Finder信息或类似碎片

提问于
浏览
209

已经尝试过:Code Sign Error on macOS Sierra, Xcode 8

请参阅显示错误的图片
enter image description here

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

enter image description here

如何解决这个问题?

21 回答

  • 9

    Solution 1:

    Apple开发者网站上面的问题解答Here .

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

    xattr -cr <path_to_app_bundle>
    

    清理Xcode和重新构建 . 干杯

    Solution 2:

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

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

    ls -alR@ . > kundapura.txt
    

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

    xattr -c <filename>
    

    示例: xattr -c guru.png

    一旦清除了所有代码符号就可以了 . 清理Xcode和重新构建 . 干杯

    Solution 3: 受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和重新构建 . 完成 .

  • 1

    错误来自图像文件中的属性 . 这是因为我们的图形设计师使用属性从photoshop保存图像 .

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

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

    如果在对应用程序进行协同设置时出现此错误:

    不允许使用资源分支,Finder信息或类似碎片命令/ usr / bin / codesign失败,退出代码为1

    转到项目根文件夹并执行

    find . | xargs -0 xattr -c
    

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

    在Sierra,已经收紧了关于签署的捆绑包中的内容的规则,并且不再允许资源分叉 . AppleScript一直在资源分叉中保存信息,尽管该信息长期未被使用 . 使用Sierra,当您保存脚本时,将不再保存此资源分叉信息 .

    这意味着您无法对上一次保存在Sierra之前的版本中的脚本进行编码;你必须在Sierra保存才能登录Sierra .

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

    更新:

    看起来像这样也有效:

    xattr -rc .
    

    如果你有任何不足的权限错误尝试prepend sudo: sudo xattr -rc .

  • 2

    Technical Q&A QA1940中有关于此问题的官方Apple答案 .

    这是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

  • 140

    所有关于清除文件都很好,但对于多个项目来说很乏味 .

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

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

    Xcode 8拒绝将它添加到构建中(因为你将它们添加到带有“git --add . ”的项目中)也许..)你可以在终端中以递归方式找到并删除它们,但可能很乏味 .

    我写了一个小的免费工具来删除它..希望它可以帮助..

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

  • 13

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

    • 在XCode中选择目标

    • 选择“构建阶段”选项卡

    • 按下符号

    • 选择“新建运行脚本阶段”

    • 为脚本输入以下内容:

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

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

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

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

    您可能需要更改路径以匹配DerivedData目录 - 此路径将显示在codesign错误旁边 .

    xattr codesign xcode fix

  • 0

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

    xattr -rc .
    
  • 21

    简单解决方案: -

    How I did [为我工作]

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

    然后输入您的项目路径,如下例所示: - Library / Developer / Xcode / DerivedData / yourprojectname / Build / Products / Debug-iphoneos

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

    第2步: - 打开新终端并输入cd然后只需将第1步yourApp.app拖到终端,现在您将获得该应用的路径,现在按下回车键 .

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

    xattr -rc .

    不要错过“ . ”(点)按enter键 .

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

  • 0

    对于那些刚刚尝试开发应用程序而不必在每个新创建的Photoshop上删除扩展属性的PNG添加到macOS目标的人,你可以通过添加用户定义的构建设置暂时禁用代码签名:

    CODE_SIGNING_ALLOWED = No
    

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

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

    enter image description here

    enter image description here

  • 10

    -----如果你不能应用上面的解决方案,因为缺乏bash知识或其他东西 .

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

    Temporary solution:

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

  • 8

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

    我的应用程序被称为:扩充

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

    在app文件夹的终端窗口运行命令中,例如:xattr -cr augment-flmbiciuyuwaomgdvhulunibwrms

    清洁>生成>运行 .

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

  • 0

    这个问题昨天来到我身边 .

    (What's wrong) 我通过在finder中手动替换文件来更新图像资源,但是由于编译错误而失败了 .

    (What's right) 唐't update image in this way. After that I dragged images to ' xcassets'在Xcode中 . 再也不会出现错误 .

  • 4

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

  • 0

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

    感谢@ rich-able,我发现了“Run Script” . 然后我把命令“xattr -cr” . 在该领域 .

    XCODE Solution

  • 2

    最简单的解决方法可能是你正在使用git . 尝试:

    $ git stash
    $ git stash pop
    

    Git不存储文件元数据,上面将把它全部剥离 .

  • 1

    我的问题是我在1年前使用cordova构建应用程序,但它与xcode的新版本不兼容,所以我只是使用 cordova build ios 并且它再次起作用 .

  • 78

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

    xattr -cr“项目的完整路径”

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

    xattr -cr“项目的完整路径”

    清洁和完成 .

  • 458

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

  • 11

    打开终端,然后运行此命令 .

    xattr -cr“.app文件的路径”

  • 15

    我也面临同样的问题,只需重启我的Macbook就可以解决问题 .

  • 0

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

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

    enter image description here

相关问题