command/usr/bin/codesign 失败,退出代码 1 - 代码签名错误

command/usr/bin/codesign failed with exit code 1- code sign error

我目前正在向 Apple 商店提交我的第一个应用程序。 我已经完成了以下过程

  1. 获得开发者账号
  2. 登录会员中心创建App ID
  3. 使用钥匙串访问请求和接收分发证书
  4. 使用我的 ID 和证书获得了配置文件

当我构建应用程序时,它在应用程序模拟器和实际 ipad 上完美运行,但是当我将我的应用程序切换到 iOS 设备上的 Archive 时,我有一个主要问题我在下面附上的代码签名错误。

codesign /Users/Gaby/Library/Developer/Xcode/DerivedData/RoyalAppInspection-dthvtpxadkslqmhkwdpaqkyujscg/Build/Products/Debug-iphoneos/RoyalAppInspection.app
cd /Users/Gaby/Desktop/RoyalAppInspection
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/bin:/bin:/usr/sbin:/sbin


/usr/bin/codesign --force --sign 79640A11C8D22589BD337496ABB8443581513846 --entitlements /Users/Gaby/Library/Developer/Xcode/DerivedData/RoyalAppInspection-dthvtpxadkslqmhkwdpaqkyujscg/Build/Intermediates/RoyalAppInspection.build/Debug-iphoneos/RoyalAppInspection.build/RoyalAppInspection.app.xcent /Users/Gaby/Library/Developer/Xcode/DerivedData/RoyalAppInspection-dthvtpxadkslqmhkwdpaqkyujscg/Build/Products/Debug-iphoneos/RoyalAppInspection.app

79640A11C8D22589BD337496ABB8443581513846: no identity found Command /usr/bin/codesign failed with exit code 1

我不知道该怎么做才能解决这个问题,因为我已经尝试确保流程的所有其他方面都已正确完成。

我确实担心的是,当我单击配置文件时,它不会打开并且 "add to library" 不会弹出(出于某种原因我无法访问 iphone 配置实用程序。)我手动将 .mobileprovision 文件添加到我的 xcode 项目,但我认为这也可能是我的错误来源。

任何人,你能帮忙吗?

你差点就自己搞定了,但最后你的个人资料好像有问题。

首先,我会向 "look inside" 个人资料推荐一个工具,以确保它是正确的:http://furbo.org/2013/11/02/a-quick-look-plug-in-for-provisioning/

当 select 在 Finder 中输入它并按 space(快速查看)时,这只会添加一些关于配置文件的更多信息。


检查您的 Xcode 首选项:

  1. Xcode 偏好 (CMD + ,)
  2. 帐户
  3. Select左边是你的帐号
  4. Select查看右下角详情
  5. 刷新(使用左下角的小按钮)

Xcode 将配置文件存储在 ~/Library/MobileDevice/Provisioning Profiles

如果您的分发配置文件不在其中,请双击它。

然后它应该出现在该文件夹中,但具有散列名称,例如1edf8f42-fd1c-48a9-8938-754cdf6f7f41.mobileprovision此时Quick Look插件就派上用场了:-)


接下来,检查您的项目设置

  1. select 您要在 Xcode
  2. 中构建的目标(不是项目)
  3. 切换到构建设置
  4. 查找 "Code Signing" 部分
  5. 检查 select 是否在 "Provisioning Profile" 下编辑了正确的配置文件 => "Release"


接下来,检查您的方案设置

  1. select 产品菜单
  2. 打开方案子菜单
  3. select 编辑方案...
  4. select"Archive"左边
  5. 构建配置应设置为 "Release"


接下来,检查 Keychain Access Trust 设置:

  1. 打开钥匙串访问(聚焦 => 钥匙串)
  2. select 登录
  3. 点击证书
  4. 找右边的iPhone Distribution: Elena Carrasco (8HE2MJLM25)
  5. 右击,select"Get Info"
  6. 打开"Trust"部分
  7. 设为"Use System Defaults"
  8. Apple Worldwide Developer Relations Certificate Authority
  9. 重复步骤 5 到 7


接下来,检查 Keychain Access 私钥 Access Control:

  1. 重复上次检查的步骤 1 到 4
  2. 展开个人资料以使您的私钥可见
  3. 右击私钥,select"Get Info"
  4. 切换到"Access Control"
  5. select "Confirm before allowing access"
  6. 使用“+”按钮添加"codesign"(通常位于/usr/bin/codesign
    提示:如果在文件浏览器中没有显示,请使用cmd + shift + g手动输入路径
  7. 使用 Carthage 时:在此处也添加 /usr/bin/productbuild(感谢 DesignatedNerd
  8. "Save Changes"

希望其中之一对您有用!


更新 (4/22/16):

我刚找到一个关于整个代码签名过程的很好的解释(真的值得一读): https://www.objc.io/issues/17-security/inside-code-signing/

按照 d4Rk 的建议进行操作,这是一个很棒的演练。 如果它仍然没有签名,您可能有一些过期或吊销的证书。我发现当你在团队中工作时可能会发生这种情况。

  1. 退出 xcode.
  2. 打开钥匙串访问。
  3. 在 'Certificates' 部分,检查所有 "iPhone Distribution" 证书,如果它们已过期、被吊销或无效,请将其删除。
  4. 与 3 相同,但用于 'My Certificates' 部分。
  5. 重新打开 xcode 并重试。

对我来说"Restarting Mac System"工作了

重启对我也有用。有趣的是,允许 Xcode 访问证书似乎是一个问题。当我再次尝试存档时,我收到 2 个弹出窗口,询问我是否要允许 Xcode 访问我的钥匙串。在此之后它工作正常。

重启对我不起作用。

只需尝试下载证书并将其再次添加到钥匙串。那对我有用。当我检查钥匙串访问时,相应的证书丢失了。重新安装证书后问题解决。

在你的开发中删除你的证书,然后重新安装,它就会工作!

对我来说,我刚刚清理了应用程序并且它运行了 (cmd + shift + k),消除了错误。更新到 swift 2.3.

后出现错误

我使用的简单方法(将处理所有 png 文件):

运行终端中的这个命令

find . -name "*.png" -exec xattr -c {} \;

我在 Xcode 8 和 Mac OS Sierra 中遇到了这个错误。尝试了上述所有解决方案,none 成功了。这是唯一对我有用的。打开终端,然后输入:

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

对我来说,以下步骤有效:

  1. 退出 Xcode.
  2. 打开Terminal
  3. 键入的命令xattr -rc /Users/manabkumarmal/Desktop/Projects/MyProjectHome
  4. 打开Xcode。
  5. 已清理。
  6. 现在工作正常,没有错误。

这对我有用。试一试:

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

只需重置您的开发和分发证书并清理您的项目。 在那之后 , 重启也对我有用。有趣的是,允许 Xcode 访问证书似乎是一个问题。当我再次尝试存档时,我收到 2 个弹出窗口,询问我是否要允许 Xcode 访问我的钥匙串。在此之后它工作正常。

我已经解决了这个问题。如果您的项目有 .xcdatamodeld 文件(意味着您正在使用 coreData),那么请确保您形成的实体进入其数据模型检查器并检查 Class 是否有代码生成、manual/None 或 class 定义。如果它是 class 定义,则将其设为 manual/None 并再次清理项目和 运行。截图如下:

如果@d4Rk 解决方案没有任何效果只需使用下面的屏幕删除 unwanted/expired 类似的配置文件。右键单击配置文件将其移至垃圾箱。 provision profile window

因为在我的情况下,在完成所有步骤后我仍然遇到相同的问题,并且当我删除具有相同名称的旧的过期配置文件然后在构建设置中使用正确的配置文件时问题得到解决。

删除现有的预编译文件:

rm -rf  /Users/raghu/Library/Developer/Xcode/DerivedData/Solitare-fdaukpanamlzllacxvdzfbeqcrsg/

并尝试重新构建它。

打开项目进入Xcode。
Select project.app 文件并右键单击它,select “在查找器中显示”选项。
打开终端并转到 project.app 文件路径。

将以下命令一一键入:

xattr -lr project.app
xattr -cr project.app

打开项目并运行。

在我的情况下,一些 pods 在我更新 OS 后已经过时了。这是修复它的方法:

在终端中:

cd /Users/quaisafzali/Desktop/AppFolder/Application/
pod install

然后,在 Xcode 中打开您的项目并清理它 (Cmd+Shift+K),然后 Build/Run。

这对我有用,希望对你们中的一些人有所帮助!

以下步骤解决了我的问题。我遇到的问题是它没有为设备编译或归档,但在模拟器上运行良好。

  1. 打开钥匙串访问。
  2. 锁定 'login' 钥匙串。
  3. 解锁。

完成上述步骤后清理并构建,现在一切正常。

我在 2018 年 1 月遇到了与 xcode 8.2.1

相同的错误

在尝试打开 xcode 之前我无法打开,因为系统正在更新。我稍后尝试了一段时间,它让我继续工作,然后我得到了同样的错误。

我遵循了本文中描述的大部分解决方案,但它们对我不起作用。

然后我想起了关于系统更新的消息,我尝试重新启动机器。

这就是魔法。它对我有用。

重启对我也有效。升级到 High Sierra 后,我遇到了很多密码问题,看起来我需要输入密码才能访问 XCode.

我遵循了该线程中提到的所有内容,但仍然面临同样的问题-

/usr/bin/codesign --force --sign A7F8FCD694D7923A3E57826398C3380E2E5A5446 --entitlements  unknown error -1=ffffffffffffffff
Command /usr/bin/codesign failed with exit code 1

我已经用我的代码库配置了自动签名,它也可以与 xcode 运行 一起使用as xcodebuild 运行 from terminal from my machine 但是当我 运行 它在 jenkins 管道上或尝试 运行 在远程连接机器的终端上

在我的情况下,如果远程访问,自动签名不起作用。因为我需要在使用

存档之前打开钥匙串
security unlock-keychain -p "newpassword" "/Users/xyz/Library/Keychains/login.keychain"

macOS X 用户的钥匙串密码和登录密码不同我将其更改为新的相同密码并且对我有效。

我已经解决了这个问题,非常简单。

  • 只需重新启动计算机(它会自行刷新所有内容)。

希望对您有所帮助..

我最近遇到了这个问题,以上所有解决方案都不适合我。

为什么它在你的模拟器上有效,但在真实设备上无效,这可能与你的Development Certificate有关。

所以我在 Apple Developer Portal 上吊销了我的证书,并在我的计算机上申请了一个新证书。以下是步骤:

  1. 转到Apple Developer Portal and revoke your old (not working) development certificate.
  2. 添加iOS应用程序开发证书
  3. 按照 Apple 的步骤进行操作
  4. 下载新生成的证书并将其添加(双击)到您的钥匙串
  5. 确保它在您的 XCode 帐户中

那就成功了!

希望对您有所帮助!

我在 select 请求许可时被拒绝后遇到了问题

经过一番搜索,我通过重新启动系统修复了它。

您可能会看到我尚未发布的此错误的另一个原因是您的证书的私钥需要 "Allow all applications to access this item" selected,尤其是如果您使用的是 Jenkins。

  1. 打开您的 Mac 钥匙串
  2. 转到左侧 "Category" 下的 "Certificates" 或 "My Certificates"。
  3. 找到您尝试签署的证书,然后单击证书左侧的灰色小三角形以显示关联的私钥。
  4. 左/双击私钥和select"Get Info."
  5. 从 "Attributes" 切换到 "Access control"
  6. Select "Allow all applications to access this item" 并保存更改。
    作为集中式 Jenkins CI 系统的一部分,我维护着一大群 Mac 迷你节点,这可能会出现。

今天,2020 年,我已经按照以下步骤使用 Xcode 11.7、Xcode 12.0 和 Xcode 12.1 解决了这个问题:

识别错误证书:

  • 来自您的钥匙串 select 登录
  • 来自类别select 证书
  • 找到任何带有蓝色 +
  • 的 Apple 证书
  • 双击证书。
  • 扩大信任

如果搞砸了,那么“使用此证书时”将设置为“始终信任”以及蓝色 +

修复错误证书:

  • 只需将其设置为“使用系统默认值”并关闭即可。
  • 您会看到一个弹出窗口。输入您的密码以更新设置。
  • 关闭钥匙串。
  • 返回您的项目,清理并运行。

问题应该已经解决了。 如果这不起作用,则返回钥匙串并仔细检查并查看是否有任何其他 Apple 证书设置为始终信任并重复该过程。