命令/ usr / bin / codesign失败,退出代码为1-代码符号错误

时间:2015-03-24 20:42:30

标签: ios objective-c xcode ipad codesign

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

  1. 获取开发者帐户
  2. 登录会员中心以创建应用ID
  3. 使用钥匙串访问请求和接收分发证书
  4. 使用我的ID和证书
  5. 获取配置文件

    当我构建应用程序时,它在应用程序模拟器和实际的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
    

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

    我所遇到的一个问题是,当我点击配置文件时,它无法打开并且“#34;添加到库"不会弹出(我出于某种原因无法访问iphone配置实用程序。)我手动将.mobileprovision文件添加到我的xcode项目中,但我认为这也可能是我的错误的来源。

    任何人,你能帮忙吗?

26 个答案:

答案 0 :(得分:94)

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

  1. 打开钥匙串访问。
  2. 锁定'登录'钥匙串。
  3. 解锁。
  4. 完成上述步骤后进行清洁和构建,现在一切正常。

答案 1 :(得分:90)

你差点自己做,但最后你的个人资料似乎有问题。

首先,我会推荐一种工具,以便在内部看到"该个人资料可确保其正确:http://furbo.org/2013/11/02/a-quick-look-plug-in-for-provisioning/

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


检查 Xcode偏好设置

  1. Xcode Perferences(CMD +,)
  2. 帐户
  3. 在左侧选择您的帐户
  4. 选择右下角的详细信息
  5. 刷新(使用左下方的小按钮)
  6. Xcode Settings

    Xcode将个人资料存储在~/Library/MobileDevice/Provisioning Profiles

    如果您的分发资料不在那里,请双击它。

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


    接下来,检查项目设置

    1. 选择要在Xcode中构建的目标(而不是项目)
    2. 切换到构建设置
    3. 寻找"代码签名"节
    4. 检查"配置文件"是否选择了正确的配置文件。 => "推出"
    5. Build Settings


      接下来,检查方案设置

      1. 选择产品菜单
      2. 开放式方案子菜单
      3. 选择编辑方案......
      4. 选择"存档"在左边
      5. 构建配置应设置为"发布"
      6. Scheme Settings


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

        1. 打开钥匙串访问权限(spotlight => keychain)
        2. 选择登录
        3. 点击证书
        4. 在右侧查找iPhone Distribution: Elena Carrasco (8HE2MJLM25)
        5. 右键单击,选择"获取信息"
        6. open" Trust"节
        7. 设置为"使用系统默认值"
        8. Apple Worldwide Developer Relations Certificate Authority
        9. 重复步骤5到7

          Keychain


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

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

            希望其中一个对您有所帮助!


            更新(2016年4月22日):

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

答案 2 :(得分:33)

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

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

答案 3 :(得分:17)

这对我有用。试一试:

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

答案 4 :(得分:10)

我在Xcode 8和Mac OS Sierra中遇到此错误。尝试了所有上述解决方案,没有一个工作。这是唯一一个适合我的人。打开终端,然后输入:

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

答案 5 :(得分:3)

对我来说"重启Mac系统"工作了

答案 6 :(得分:3)

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

答案 7 :(得分:2)

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

  1. 退出xcode。
  2. 打开Keychain Access。
  3. 中的证书'部分,浏览所有" iPhone发行版"如果证书已过期,已撤销或以其他方式无效,请将其删除。
  4. 与3相同,但对于我的证书'部分。
  5. 重新打开xcode,然后重试。

答案 8 :(得分:2)

我遵循了本主题中提到的所有内容,但仍面临同样的问题 -

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

我已使用我的代码库配置自动签名,该代码库可用于 xcode run 以及从终端运行的 xcodebuild当我在jenkins管道上运行它或尝试在远程连接的机器上运行终端时,它会出现上述错误

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

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

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

答案 9 :(得分:2)

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

逐个输入以下命令:

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

打开项目并运行。

答案 10 :(得分:2)

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

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

答案 11 :(得分:1)

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

答案 12 :(得分:1)

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

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

我希望这有帮助..

答案 13 :(得分:1)

删除现有的预编译文件:

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

并尝试再次构建它。

答案 14 :(得分:1)

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

答案 15 :(得分:0)

选择请求权限时拒绝,我遇到了问题

搜索后,我通过重新启动系统来解决它。

答案 16 :(得分:0)

我最近遇到了这个问题,上述所有解决方案都对我不起作用。

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

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

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

然后它起作用了!

希望有帮助!

答案 17 :(得分:0)

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

识别错误的证书:

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

如果混乱,则将“使用此证书时”与蓝色+

一起设置为“始终信任”

修复错误的证书:

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

问题应该消失了。 如果那没有用,请返回钥匙串,再次仔细检查,看看是否还有其他Apple证书设置为Always Trust,然后重复该过程。

答案 18 :(得分:0)

重新启动也为我工作。升级到High Sierra之后,我遇到了很多密码问题,看起来我需要输入Keychain访问XCode的密码。

答案 19 :(得分:0)

我在2018年1月使用xcode 8.2.1

时遇到了同样的错误

在我尝试打开xcode之前,我不能,因为系统正在更新。我试过一段时间,它让我继续努力,然后我得到了同样的错误。

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

然后我记得有关系统更新的消息,我试图重启机器。

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

答案 20 :(得分:0)

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

在终端:

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

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

这对我有用,希望对你们有些帮助!

答案 21 :(得分:0)

如果@ d4Rk解决方案中没有任何效果,请使用以下屏幕删除不需要/已过期的类似配置文件。右键单击配置文件以将其移至废纸篓。 provision profile window

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

答案 22 :(得分:0)

我解决了这个问题。如果您的项目有.xcdatamodeld文件(意味着您使用的是coreData),那么请确保您构建的实体是其数据模型检查器并检查Class是否具有codegen,manual / None或classdefination。如果它是类定义然后使其手动/无并清理项目并再次运行。截图如下:

enter image description here

enter image description here

答案 23 :(得分:0)

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

答案 24 :(得分:0)

重新启动对我不起作用。

尝试下载并再次将证书添加到keyChain。这对我有用。当我检查Keychain Access时,相应的证书丢失了。我重新安装证书时解决了问题。

答案 25 :(得分:-2)

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

在终端中运行此命令

foreach ($testarray as $value)
{
    $value = $username;
    $value = str_replace(' ', '.', $value);
}