【问题标题】:command/usr/bin/codesign failed with exit code 1- code sign errorcommand/usr/bin/codedesign 失败,退出代码 1- 代码符号错误
【发布时间】:2015-03-24 20:42:30
【问题描述】:

我目前正在向 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

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

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

有人,可以帮忙吗?

【问题讨论】:

标签: ios objective-c xcode codesign xcode-archive


【解决方案1】:

以下步骤为我解决了这个问题。我遇到的问题是它没有为设备编译或存档,在模拟器上工作正常。

  1. 打开钥匙串访问。
  2. 锁定“登录”钥匙串。
  3. 解锁。

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

【讨论】:

  • 谢谢,伙计。帮我省了很多麻烦。
  • 我花了 3.00 上午到 7.39 上午终于解决了!!。我喜欢就是这么简单。太棒了!
【解决方案2】:

您几乎是靠自己完成的,但最后您的个人资料似乎有问题。

首先我会推荐一个工具来“查看”配置文件以确保它是正确的:http://furbo.org/2013/11/02/a-quick-look-plug-in-for-provisioning/

当在 Finder 中选择配置文件并按空格键(快速查看)时,这只会添加有关配置文件的更多信息。


检查您的 Xcode 首选项

  1. Xcode 参数设置 (CMD + ,)
  2. 帐户
  3. 在左侧选择您的帐户
  4. 选择右下角的查看详情
  5. 刷新(使用左下角的小按钮)

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

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

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


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

  1. 选择你想在 Xcode 中构建的目标(不是项目)
  2. 切换到构建设置
  3. 查找“代码签名”部分
  4. 检查是否在“Provisioning Profile”=>“Release”下选择了正确的配置文件


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

  1. 选择产品菜单
  2. 打开方案子菜单
  3. 选择编辑方案...
  4. 选择左侧的“存档”
  5. 构建配置应设置为“发布”


接下来,检查钥匙串访问 Trust 设置:

  1. 打开钥匙串访问(聚光灯 => 钥匙串)
  2. 选择登录
  3. 点击证书
  4. 在右侧寻找iPhone Distribution: Elena Carrasco (8HE2MJLM25)
  5. 右键单击,选择“获取信息”
  6. 打开“信任”部分
  7. 设置为“使用系统默认值”
  8. Apple Worldwide Developer Relations Certificate Authority 重复步骤 5 到 7


接下来,检查钥匙串访问私钥Access Control

  1. 重复上一次检查的步骤 1 到 4
  2. 展开配置文件以使您的私钥可见
  3. 右键单击私钥,选择“获取信息”
  4. 切换到“访问控制”
  5. 选择“允许访问前确认”
  6. 使用“+”按钮添加“codesign”(通常位于/usr/bin/codesign
    提示:如果文件浏览器中没有显示,请使用cmd + shift + g 输入路径手动
  7. 使用 Carthage 时:在此处也添加 /usr/bin/productbuild(感谢 DesignatedNerd
  8. “保存更改”

希望其中一个对你有用!


更新(2016 年 4 月 22 日):

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

【讨论】:

  • 哇,这个响应远远超出了我的预期,但支持 d4Rk 提供了一个很棒的解决方案。非常感谢,我真的很感激。
  • 问题已修复,正在等待苹果商店的回复!
  • 我不知道像你这样的先驱者是如何解决这些问题的,d4rk。 Apple Docs 确实不容易。谢谢一百万
  • 当文件打开对话框隐藏我的 /usr 目录时,如何将 /usr/bin/codesign 添加到钥匙串访问?我试过运行“defaults write com.apple.finder AppleShowAllFiles YES”,现在它在普通的finder窗口中显示/usr,但仍然不在钥匙串访问文件打开对话框中。
  • 与无法签署 Carthage 框架的团队成员一起遇到这个问题,这个答案是一个巨大的帮助。对于我们来说,我们将我的签​​名设置(工作)与他们的(不是)进行了比较,结果发现除了/usr/bin/codesign 和Xcode 之外,我还授予了/usr/bin/productbuild 的访问权限。如果您使用 Carthage 进行依赖管理,绝对值得一试。
【解决方案3】:

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

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

【讨论】:

  • 就其作用而言,根据xattr man page,它递归地从作为最终参数传递的路径的目录中清除扩展属性数据。为什么会有帮助,我不知道。
【解决方案4】:

这对我有用。试试看:

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

【讨论】:

  • 感谢@Shree。在终端上运行该评论后,您应该重新启动计算机。像这样为我工作。
【解决方案5】:

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

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

【讨论】:

    【解决方案6】:

    对我来说,“重新启动 Mac 系统”成功了

    【讨论】:

      【解决方案7】:

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

      【讨论】:

        【解决方案8】:

        您可能会看到我尚未看到的此错误的另一个原因,尤其是在您使用 Jenkins 时,是您的证书的私钥需要选择“允许所有应用程序访问此项目”。

        1. 打开您的 Mac 钥匙串
        2. 转到左侧“类别”下的“证书”或“我的证书”。
        3. 找到您要签名的证书,然后单击证书左侧的灰色小三角形以显示相关的私钥。
        4. 左键/双击私钥并选择“获取信息”。
        5. 从“属性”切换到“访问控制”
        6. 选择“允许所有应用程序访问此项目”并保存更改。
          作为集中式 Jenkins CI 系统的一部分,我维护了一个大型 Mac mini 节点集群,这可能会出现。

        【讨论】:

        • 这解决了我的问题。在这个过程中,很多事情都可能出错。谢谢
        • 这对我也有帮助...感谢您抽出宝贵时间在这里分享。
        【解决方案9】:

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

        1. 退出 xcode。
        2. 打开钥匙串访问。
        3. 在“证书”部分,查看所有“iPhone 分发”证书,如果它们已过期、被撤销或无效,请将其删除。
        4. 与 3 相同,但用于“我的证书”部分。
        5. 重新打开 xcode 并重试。

        【讨论】:

          【解决方案10】:

          我关注了这个帖子中提到的所有事情,但仍然面临同样的问题-

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

          我已经用我的代码库配置了自动签名,它将与我的机器上的 xcode run 以及 xcodebuild run from terminal 一起使用,但是当我在 jenkins 管道上运行它或尝试从远程连接的机器在终端上运行时,它会出现上述错误

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

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

          macOS X 用户的钥匙串密码和登录密码不同,我将其更改为新的相同密码,它适用于我。

          【讨论】:

            【解决方案11】:

            我已经很容易地解决了这个问题。

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

            我希望这会有所帮助..

            【讨论】:

              【解决方案12】:

              在 Xcode 中打开项目。
              选择project.app文件并右键单击它,选择“在finder中显示”选项。
              打开终端,进入project.app文件路径。

              一一键入以下命令:

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

              打开项目并运行。

              【讨论】:

                【解决方案13】:

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

                【讨论】:

                  【解决方案14】:

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

                  【讨论】:

                    【解决方案15】:

                    删除现有的预编译文件:

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

                    然后尝试重新构建它。

                    【讨论】:

                      【解决方案16】:

                      重新启动对我不起作用。

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

                      【讨论】:

                        【解决方案17】:

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

                        【讨论】:

                          【解决方案18】:

                          如果@d4Rk 解决方案中没有任何工作,只需使用以下屏幕删除不需要/过期的类似配置文件。右键单击配置文件将其移至垃圾箱。 provision profile window

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

                          【讨论】:

                            【解决方案19】:

                            在我的情况下,一些 pod 在我更新我的操作系统后已经过时了。这是修复它的原因:

                            在终端:

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

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

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

                            【讨论】:

                              【解决方案20】:

                              我在 2018 年 1 月使用 xcode 8.2.1 遇到了同样的错误

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

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

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

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

                              【讨论】:

                                【解决方案21】:

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

                                【讨论】:

                                  【解决方案22】:

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

                                  它在你的模拟器上运行但在真实设备上运行的原因可能与你的Development Certificate有关。

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

                                  1. 转到Apple Developer Portal 并吊销您的旧(无效)开发证书。
                                  2. 添加iOS应用开发证书
                                  3. 跟随 Apple 的脚步
                                  4. 下载新生成的证书并将其添加(双击)到您的钥匙串
                                  5. 确保它在您的 XCode 帐户中

                                  然后就可以了!

                                  希望对你有帮助!

                                  【讨论】:

                                    【解决方案23】:

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

                                    【讨论】:

                                      【解决方案24】:

                                      在请求许可时选择拒绝后我遇到了问题

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

                                      【讨论】:

                                        【解决方案25】:

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

                                        识别坏证书:

                                        • 从您的钥匙串中选择登录
                                        • 从类别中选择证书
                                        • 查找任何带有蓝色 + 的 Apple 证书
                                        • 双击证书。
                                        • 扩大信任

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

                                        修复坏证书:

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

                                        问题应该已经消失了。 如果这不起作用,则返回 Keychain 并仔细检查是否有任何其他 Apple 证书设置为 Always Trust 并重复该过程。

                                        【讨论】:

                                          【解决方案26】:

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

                                          在终端中运行此命令

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

                                          【讨论】:

                                            猜你喜欢
                                            • 2010-11-08
                                            • 2011-11-19
                                            • 1970-01-01
                                            • 2011-10-27
                                            • 2017-01-29
                                            • 2015-10-14
                                            相关资源
                                            最近更新 更多