Xcode 8无法归档“Command / usr / bin / codesign失败,退出代码为1”

时间:2016-09-12 11:50:54

标签: ios xcode macos build archive

我在macOS Sierra的Xcode 8上遇到了严重的问题。 当我尝试构建我的应用程序时,我遇到了以下问题。

CodeSign /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Products/Debug-iphonesimulator/MyApp.app
cd /Users/me/Desktop/MyAppFolder1/MyAppFolder2/MyAppxcode
export CODESIGN_ALLOCATE=/Users/me/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
export PATH="/Users/me/Downloads/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Users/me/Downloads/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

Signing Identity:     "-"

/usr/bin/codesign --force --sign - --timestamp=none /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Products/Debug-iphonesimulator/MyApp.app

/Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Products/Debug-iphonesimulator/MyApp.app: resource fork, Finder information, or similar detritus not allowed
Command /usr/bin/codesign failed with exit code 1

然后我在终端中执行了https://forums.developer.apple.com/thread/48905,如下所示,它有效。但是一旦我清理干净,问题又回来了。

cd /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Products/Debug-iphonesimulator/MyApp

ls -al@ *

xattr -c *

此解决方案不适用于存档,但存在以下问题。它有什么解决方案吗?

CodeSign /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Intermediates/ArchiveIntermediates/MyApp/InstallationBuildProductsLocation/Applications/MyApp.app
cd /Users/me/Desktop/MyAppFolder1/MyAppFolder2/MyAppxcode
export CODESIGN_ALLOCATE=/Users/me/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
export PATH="/Users/me/Downloads/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Users/me/Downloads/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

Signing Identity:     "iPhone Developer: My Name (**********)"
Provisioning Profile: "iOS Team Provisioning Profile: com.**********.*********"
                  (********-****-****-****-************)

/usr/bin/codesign --force --sign **************************************** --entitlements /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Intermediates/ArchiveIntermediates/MyApp/IntermediateBuildFilesPath/MyApp.build/Release-iphoneos/MyApp.build/MyApp.app.xcent --timestamp=none /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Intermediates/ArchiveIntermediates/MyApp/InstallationBuildProductsLocation/Applications/MyApp.app

/Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Intermediates/ArchiveIntermediates/MyApp/InstallationBuildProductsLocation/Applications/MyApp.app: resource fork, Finder information, or similar detritus not allowed
Command /usr/bin/codesign failed with exit code 1

11 个答案:

答案 0 :(得分:109)

我在Apple论坛中找到了这个解决方案

cd ~/Library/Developer/Xcode/DerivedData
xattr -rc .

xattr -rc ~/Library/Developer/Xcode/DerivedData

答案 1 :(得分:21)

解决方案1:

您可以尝试使用文件特定的bash命令,例如Mark McCorkle回答。

在终端中,转到项目的根目录并执行逐个命令

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

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

解决方案2:

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

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

ls -alR@ . > kundapura.txt

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

xattr -c <filename>
Example: xattr -c guru.png

一旦你清除了所有内容,你就可以编码。干杯

答案 2 :(得分:12)

对我来说,这是:

cd ~/Library/Developer/Xcode/DerivedData
xattr -dr com.apple.FinderInfo *

然后重建

答案 3 :(得分:9)

对此有一个更永久的解决方法。修复DerivedData中的属性,但问题仍然存在。您需要做的是当您获得“资源分支,Finder信息或类似的不允许的碎片”时,转到显示的目录,包含.App文件的目录。然后执行......

xattr -lr MyAppName.App

然后,您可以看到具有需要删除的属性的资源文件。不要从.App文件中删除它们,找到项目中的原始文件并打开包含它们的目录并执行...

xattr -rc。

然后修复ORIGINAL文件。然后重建应该正常运行。然后它也应该正确地重建以便存档。

答案 4 :(得分:6)

这是由于某些资源文件在文件系统上具有额外属性引起的,可能是由macOS Sierra引起的(因为我在升级到macOS Sierra后开始使用它)。

尝试在整个xattr -c *文件夹上执行DerivedData(如https://forums.developer.apple.com/message/178039#178039中的答案所述):

cd ~/Library/Developer/Xcode/DerivedData
xattr -c *

仅在build文件夹中删除属性修复了调试时的问题。删除整个DerivedData文件夹中的属性也可以在归档中修复它。请注意,它可能会导致其他后果(虽然非常不可能),但您可以随时删除DerivedData文件夹,并且会重新生成,以防万一发生任何问题。

此外,如果仍然失败,执行命令后清理项目(构建文件夹)是个好主意。

答案 5 :(得分:4)

我在CocoaPods包中有一个文件存在这个问题。 我已将CocoaPods更新到最新版本并运行:

pod install
之后,问题就消失了。

答案 6 :(得分:3)

在我的案例问题上是配置配置文件和帐户,我通过以下步骤修复:

  1. Xcode首选项 - &gt;帐户 - &gt;删除已添加的帐户并重新添加
  2. 生成新的配置文件并安装在Xcode
  3. 清理项目并重建它

答案 7 :(得分:2)

我想展示我的答案,因为它可能很有趣(我浪费了很多时间来处理这个错误)

Error screenshot

以前的答案(得分都很高)都没有对我有用。

他们可能是正确的,但他们没有解决我的问题。

产地:

我在iOS应用程序中添加了一个新目标:iMessage

当我将png图像添加到资产时。 xcassets,发生了错误。

解决方案:

使用“Apple Preview App”复制png图像并取消选中Alpha。

Preview App screenshot

错误消息消失。

Preview App screenshot

答案 8 :(得分:0)

就我而言,

转到

  • Xcode偏好

  • 地点

  • 点击项目路径箭头

  • 在DerivedData文件夹中搜索您的项目名称

  • 选择项目文件夹,右键单击并移至垃圾箱

完成!

答案 9 :(得分:0)

我在macOS Sierra 10.12.3,Xcode 8.2上遇到了这个错误。 修复 DerivedData 并不适用于我。

Keychain Access 中删除过期的 Apple全球开发者关系证书颁发机构证书后,错误消失了。

答案 10 :(得分:0)

有时即使您已修复和/或已完成正确的代码签名,问题可能潜伏在第三方软件包中

如果您仔细检查构建错误,可能会在错误消息中找到第三方库的名称。

在这种情况下,您必须再次构建第三方库。例如,在我的情况下,通过carthage update更新它,现在构建成功了。