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

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

如何解决这个问题?


当前回答

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

在XCode中选择你的目标 选择Build Phases选项卡 按+符号 选择新建运行脚本阶段 脚本输入如下内容: xattr -cr ~/Library/Developer/Xcode/DerivedData || echo清除

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

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

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

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

其他回答

解决方案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和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并重新构建。

在技术问答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

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

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

$ git stash
$ git stash pop

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

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

xattr -rc .