Xcode 10,命令CodeSign失败,退出代码非零


124

每当我构建控制台时,都会显示此消息。

CodeSign /用户/管理员/桌面/AppStoreBuild/Project201/build/Debug-iphonesimulator/Project.app(位于目标:Desker)cd /用户/管理员/桌面/ AppStoreBuild / Project201导出CODESIGN_ALLOCATE = / Applications / Xcode.app / Contents /开发人员/工具链/XcodeDefault.xc工具链/ usr / bin / codesign_allocate

签名身份:“-”

/usr/bin/codesign --force --sign - --entitlements /Users/admin/Desktop/AppStoreBuild/Project201/build/Project.build/Debug-iphonesimulator/Project.build/Project.app.xcent --timestamp=none /Users/admin/Desktop/AppStoreBuild/Project201/build/Debug-iphonesimulator/Project.app

/Users/admin/Desktop/AppStoreBuild/Project201/build/Debug-iphonesimulator/Project.app:不允许资源派生,Finder信息或类似碎屑 命令CodeSign失败,退出代码为非零

...是否有任何方法可以确定此失败的原因。当我也尝试在模拟器中运行时,它显示出签名身份:“-”。为什么我们需要在模拟器中签名。还有一件事是,如果我退出Xcode并重新启动,那么当我更改代码或添加方法将再次构建失败时,它将正确构建。

Answers:


344

我遇到了这个问题,Xcode无法在设备上编译,但是在模拟器上,它可以正常工作。

我通过以下步骤解决了:

  1. 打开钥匙串访问。
  2. 锁定“登录”钥匙串。
  3. 解锁,输入您的PC帐户密码。
  4. 在产品菜单中清洁项目。
  5. 再次构建。

之后,一切正常。


18
就我而言,它是未锁定的...所以我只是将其锁定,然后进行清理和构建,Xcode要求我输入密码。工作
Jad

1
在我的情况下,这对我是完美的解决方案,我分别下载了xcode10.1和以前的xcode 10.0。之后,它在完成@omanosoft提供的解决方案后给出了上述结果,它起作用了
Abhijit Chakra

为我补充一点,它在没有第4点的情况下有效。为避免冗长的清理和构建。
Crazy Barney

1
我花了半天的时间才找到能救我的解决方案,谢谢亲爱的朋友。
Bachir Mehemmel,

2
在我的情况下,对话框会多次弹出以输入密码。我每次输入我的PC帐户密码,并在7-10次访问之后被接受。
Adrian Buciuman '19年

57

没有列出的解决方案对我有用。 在另一个线程中指出,在项目中包含名为“ resources”的文件夹会导致此错误。重命名我的“ resources”文件夹后,错误消失了。


3
这也对我有用。我已将Finder中的“资源”文件夹拖到我的项目中,并使用了默认的“创建文件夹引用”,它创建了一个蓝色的“资源”文件夹。我删除了它,将相同的“资源”文件夹再次从Finder中拖到我的项目中,但是这次我选择了“创建组”,现在我的项目可以编译而没有签名错误。
Mark Petereit,

1
谢谢大家,这非常有帮助
T先生

按照其说明添加Firebase模块后,我遇到了相同的问题。我将资源文件夹重命名为FirebaseResources,它很好地工作。谢谢。
农村编码者

很好,复制另一个代码库时也遇到了同样的问题。奇怪的是,其他代码库没有任何问题,但是在其上进行复制时,导致新项目受到影响。重命名Resources文件夹就可以了。
马修

有人可以告诉我在哪里以及如何找到此资源文件夹
pratteek shaurya

41

如果您还获得代码签名,则会失败,并显示错误“不允许使用资源派生,Finder信息或类似的碎屑”。

在控制台中运行以下脚本以修复:

$ xattr -cr <path_to_app_bundle>

Apple文档:https : //developer.apple.com/library/archive/qa/qa1940/_index.html


搜索问题的周并要求苹果提供支持-没有成功。感谢您的解决方案!非常适合我-适用于多个项目。
Christian Krueger

为此加油。解决了我的问题。
昵称

将<path_to_app_bundle>替换为实际应用程序捆绑包的路径。
xuzepei

15

直到今天,这才发生在我身上,只是在获取信息中添加了带有“隐藏扩展名”的.png图像之后。(右键单击图像)该图像已添加到我的Xcode项目的文件目录中。

当取消选中框并将.png图像重新添加到Xcode的目录中时,我随后进行了清理和构建,并且在此之后运行良好,如果您问我,这是一个非常奇怪的错误。


1
.jpg也有相同的问题,但没有扩展名。添加后修复。
eivindml

1
多谢您节省时间。将错误与隐藏扩展名的图像相关联的荣誉。
Marcy

1
我在使用png时遇到了这个问题,但是扩展名可见。该图像是使用“将图层导出到文件”从photoshop导出的。删除图像并使用“导出为”重新导出解决了该问题。
爱马仕

同样的问题在这里与PNG图片!
T先生

7

尝试清理项目:

1. shift + cmd + k
2. shift + cmd + Alt + k 

然后尝试再次运行您的项目。希望这能解决问题。


1
做到了 清洁成功。当我构建时失败了
测试测试

1
建立失败的兄弟。
测试测试

1
在我的情况下起到了魅力!
Heitor

5

添加.dae和.png文件并使用XCode Editor将.dae转换为SceneKit场景文件格式(.scn)后,发生了此问题。

经过更多研究后,我在这里找到了解决方案-https: //forums.developer.apple.com/thread/109951#336225

解决问题的步骤:

  1. 在XCode中转到“首选项”
  2. 点击位置标签
  3. 在命令行工具中,从下拉菜单XCode 10.1中选择

3

在Xcode中:转到当前用户的“首选项”注销。

关闭Xcode

在钥匙串中:转到登录和所有项目

        - Sort by kind
             - remove "Apple Worldwide Developer Relation Certification Authority"
             - remove "Developer ID Certification Authority"
             - remove "iPhone Developer ...."

开启Xcode

转到首选项并登录到您的用户Apple帐户

  • 这将重新加载您先前删除的开发人员证书重建项目(应该是成功的构建)

在本机设备上运行构建


3

就我而言,有以下错误行:

签名身份:“-”

…..mobile.app:不允许使用资源分叉,Finder信息或类似的碎屑

命令CodeSign失败,退出代码非零

问题是在资源文件夹中我有一些扩展名为.png的文件,这些文件在默认设置下是隐藏的。

在FINDER中查找文件,将其标记为-> cmd + i->取消隐藏隐藏扩展名

之后,返回Xcode-> kmd + shift + K并重建。

希望对您有所帮助!


非常感谢!这会有所帮助。
ZavtraMen

我尝试了其他解决方案。这是唯一对我有用的解决方案。
andrewbuilder


3

固定

永久删除资源文件中的扩展文件属性,而不要删除已编译的应用程序捆绑包中的扩展文件属性:

  1. 开放终端

  2. 将目录更改为源文件的根目录

    $ cd /用户/ rjobidon /文档/我的\项目

  3. 列出所有扩展属性

$ xattr -lr .
  1. 删除所有扩展属性
$ xattr -cr .

Xcode错误

  • “命令CodeSign失败,退出代码非零”
  • “不允许资源分叉,Finder信息或类似碎屑”

原因

Apple引入了安全性增强更改,因此代码签名不再允许应用程序捆绑包中的任何文件具有包含资源派生或Finder信息的扩展属性。

资料来源


2

我不确定导致此问题的原因,但我成功解决问题的一种方法是在可可豆荚上运行豆荚更新。

该错误(无论如何对我来说)表明其中一个Pod签名存在问题。更新Pod解决了该签名问题。

pod update [PODNAME] //For an individual pod

要么

pod update //For all pods.

希望这可以帮助出现相同的“命令CodeSign失败,退出代码非零”错误的人。


我没有Podfile-甚至不确定文件名和扩展名应该是什么。你能解决吗?
骑行

@RideSun,您好:您可能尚未将Pod添加到您的项目中。该podfile有时被称为“ Podfile”。它没有扩展名,默认情况下,它将是一个TextEdit文件。
paul_f

2

尝试所有内容后,我的解决方案是删除一些PNG文件,构建并运行(确定),然后再次添加PNG图像。奇怪的!


类似的事情。添加了5个不带.PNG扩展名的.PNG文件,最初的几个版本都可以使用,然后在IB中编辑控件后,发生了上述签名错误,并显示消息“不允许使用资源分叉,Finder信息或类似碎屑”。碎屑?谁用这个词?通过将文件名更改为扩展名.PNG,可以解决此问题。
克里斯·沃肯


1

对我来说,我必须去钥匙串,选择“登录”钥匙串,双击iOS Developer:myname钥匙,单击访问控制选项卡,然后将单选按钮切换为“允许所有应用程序访问此项目”。


1

此问题是由在Release模式中构建我的项目引起的。也可能由其他原因引起。尝试通过将xCode转到“产品”>“方案”>“编辑方案”来切换构建模式。在左侧的“运行”部分,将“构建配置”切换为“调试”。我希望这将有所帮助。


1

以上解决方案均不适合我。经过一些猜测后,我尝试了(Xcode v10.2.1 cocoapods v1.7.1)

pod deintegrate

其次是

pod install

然后:

  • 在Xcode中打开工作区
  • 清理构建文件夹
  • 建立项目

没有构建错误。


1

对我来说,解决方法如下,在“自动管理标志”标志上启用:

  1. 在目标的团队下拉列表中,选择“无”

  2. 重新选择正确的开发团队

尝试了几乎所有建议之后,我发现这可行,因为Xcode从头开始设置签名内容。


1

没有一种流行的解决方案起作用。
就我而言,我通过进入

XCode->首选项->帐户->管理证书

并为iOS开发添加了(+)。


1

我将发布解决方案。该解决方案对我有用,因为以前的解决方案都没有。该问题首先在最近更新XCode cli工具集之后发生(不确定这是否是确认偏差)。

我尝试了一些说明(即“解锁钥匙串技巧”)。

在出现错误的情况下对我有用的是:

  • Command CodeSign failed with a nonzero exit code (Something.framework)

    • 垃圾DD内容;rm -rf /用户/ dx /库/开发人员/ Xcode / DerivedData / *
    • 重新启动XCode
    • 构建阶段=> Link Binary With Libraries
      • Something.framework
    • 设置嵌入值 General => Something.framework => EMBED
      • Do not embed
    • 新闻Cmd+B(建立项目)
    • 希望建成成功

完成上述步骤后,我确实成功构建了该应用程序,但Xcode提醒我:原因:找不到图像。我按照以下步骤解决问题:目标-构建阶段-使用框架链接二进制文件Something.framework--状态-> Optianl
Xuyee Wang

1

我遇到此问题是由于我的错误配置苹果全球开发者关系的证书颁发机构的证书

我通过从“始终信任”切换到“使用系统默认值”解决了问题

一步步:

  1. 打开钥匙链
  2. 单击“登录”钥匙串(确保它已解锁-如果它已锁定,请右键单击它并选择“解锁钥匙串”)
  3. 单击证书,然后找到Apple Worldwide Developer Relations证书颁发机构证书
  4. 右键单击它,然后选择“获取信息”
  5. 展开“信任”部分,然后按照以下屏幕截图将设置更改为“使用系统默认值”

在此处输入图片说明


1

这是因为代码签名不再允许应用程序捆绑包中的任何文件具有包含资源派生或Finder信息的扩展属性。

要查看导致该错误的文件,请转到.app文件夹,通常类似于:/ Users / XXXX / Library / Developer / Xcode / DerivedData / MyProject-ckbzynxqjmstxigbdwwkcsozlego / Build / Products / Debug-maccatalyst /(我的是Catalyst项目)在终端,

cd <above path>
xattr -lr .

您将看到一些文件具有扩展属性:

./MyProject.app/Contents/Resources/shopping_cart.png:com.apple.lastuseddate#PS:00000000 BE 31 D5 5E 00 00 00 00 D0 40 FE 39 00 00 00 00 | .1。^ ..... @ .9 .... |

然后转到您的项目文件夹或这些文件的引用文件夹,删除扩展属性:

cd /Users/XXXX/Work/MyProject
xattr -cr .

清除所有引用的文件夹后,转到Xcode并重新生成。


0

在将.jpg和.png图像混合添加到art.scnassets文件夹,进行代码更改并通过Xcode的“源代码控制”>“放弃所有更改...”菜单删除这些更改之后,我也看到了此错误。

我尝试了该线程中的其他修复程序,但最终,我不得不删除添加的.jpg / .png文件,清理项目,然后重建项目以消除错误。然后,我读取了原始的.jpg / .png文件,现在正在重建代码而不会出现问题。


我从其他项目中添加了多个swift文件,还添加了一个png图像。删除该png图像项目后,构建成功Pra
Prashant Gaikwad


0

我在.scnassets组中复制了两个.aiff文件后,发生此错误。删除文件和“清理生成文件夹”可以解决我的问题。


0

不知道这是否对任何人都有帮助-但请确保您已Find Implicit Dependencies选中。有时,这可能会导致您的项目“找不到某些地方的东西”。


在此处输入图片说明


完成此操作后,建议您还清理项目并进行重建。

在此处输入图片说明


0

这对我有用:)我在钥匙串访问设置中删除了证书。转到Xcode并清洁构建应用程序。现在,将再次在钥匙串访问中创建证书,并且使用真实设备成功构建。


0

只是一个可视化

Lock Keychain "login" -> Unlock Keychain "login" -> Always allow

在此处输入图片说明


0

就我而言,这是一个意外打开的选项。我在iOS和macOS上都使用了通用的根.xcconfig文件,对于iOS目标,“ 启用强化运行时”选项仍然处于启用状态,因此替换该行

ENABLE_HARDENED_RUNTIME = YES

ENABLE_HARDENED_RUNTIME[sdk=macosx*] = YES

在.xcconfig文件中解决了该问题



0

我的问题解决了

  • 选中“自动管理目标MyProject和添加团队上的签名”。
  • 选中“自动管理Target MyProjectTest上的签名并添加团队”。
  • 产品->清理生成文件夹->重新生成或尝试在设备上运行。

当您在MyProject和MyProjectTest上有错误/不同的团队时,就会发生此问题。

在重建之前重新连接手机也可以帮助解决此问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.