Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 代码设计通过终端始终未发现标识错误_Macos_Osx Snow Leopard_Code Signing - Fatal编程技术网

Macos 代码设计通过终端始终未发现标识错误

Macos 代码设计通过终端始终未发现标识错误,macos,osx-snow-leopard,code-signing,Macos,Osx Snow Leopard,Code Signing,我已经检查了已经存在的问题,但没有一个解决了我的问题(比如重新创建证书)。我构建了一个应用程序,在这个应用程序中,我几乎没有可执行文件、文件夹和框架。每当我尝试使用codesign-s“我们的身份”时,my.app总是不提供任何身份信息。有人能给出一个循序渐进的过程吗 codesign -s "Developer ID Application: Sai***** (123123123J)" out/Release/Sai.app 错误 我试图删除“开发者ID应用程序”和序列号,但所有操作都会出

我已经检查了已经存在的问题,但没有一个解决了我的问题(比如重新创建证书)。我构建了一个应用程序,在这个应用程序中,我几乎没有可执行文件、文件夹和框架。每当我尝试使用codesign-s“我们的身份”时,my.app总是不提供任何身份信息。有人能给出一个循序渐进的过程吗

codesign -s "Developer ID Application: Sai***** (123123123J)" out/Release/Sai.app
错误

我试图删除“开发者ID应用程序”和序列号,但所有操作都会出现相同的错误

在这些方面寻求帮助


谢谢

我在这方面也遇到了一些麻烦。仔细检查您的代码签名标识是否在您的密钥链中,您可以考虑使用SHA-1指纹,而不是使用-S.

的名称。 打开
钥匙链访问
并选择
开发者ID应用程序:FOO
证书,然后选择获取信息,可以找到SHA-1指纹。从这里,滚动到信息的底部,直到找到指纹。可以复制此处的SHA-1指纹,您必须删除所有空格,但之后您将拥有一个40个字符的标识符,该标识符将适合放置在codesign语句中的
-s
之后

如果您在查找密钥时仍有问题,请从终端尝试以下操作:

certtool y | grep Developer\ ID
并在
通用名称
中查找具有
开发者ID应用程序
的任何内容,以验证证书实际上位于可从终端访问的密钥链中。如果您没有看到任何响应,则表明包含凭据的钥匙链不可用于
终端
会话。这样做的原因包括钥匙链被锁定、shell作为另一个用户运行、使用不同的权限执行命令(例如
sudo

执行上述命令后,您至少应具有以下内容:

Developer ID Application: <your company name>
Developer ID Installer: <your company name>
Developer ID Certification Authority
开发人员ID应用程序:
开发者ID安装程序:
开发者ID证书颁发机构
如果你没有这三个元素,你应该去下载缺失的元素。尽管您目前可能不需要构建安装程序,但拥有它并没有什么害处。应用程序和安装程序元素可以从上的“证书、标识符和配置文件”选项卡的“Mac证书”部分下载。你应该有没有过期的物品。你可能也有已经过期的物品。要在密钥链中安装证书,请执行以下操作:

  • 访问苹果开发者网站
  • 访问Mac开发中心
  • 访问证书、标识符和配置文件链接
  • 从门户下载证书
  • 双击证书,应打开密钥链访问
  • 允许密钥链访问以将证书添加到密钥链
  • 开发者ID证书颁发机构应该由Xcode安装,但如果不是,您可以自己安装。您需要单独下载该证书,或者单击证书选项卡中的+链接,然后使用底部的链接下载证书

    这也是确保您拥有苹果全球开发者关系认证机构(Apple Worldwide Developer Relations Certification Authority)的好时机,这是一些签名工具的基础。它应该由Xcode安装程序安装在您的系统密钥链中,可以直接从上面的证书选项卡中的+链接下载,也可以从中下载

    根据苹果的说法,每个证书和密钥都有特定的密钥链:

    • 您的私钥和签名证书(开发者ID安装程序、开发者ID应用程序和应用商店证书)应位于登录密钥链中
    • 苹果全球开发者关系认证机构和开发者ID认证机构属于系统密钥链
    • 开发者证书也属于您的登录密钥链
    钥匙链维护 因为Xcode会自动操纵密钥链,而且当配置文件发生变化时,某些证书会定期重新颁发(虽然不是针对开发人员ID,因为它有多年的证书,并且不需要配置文件),所以最终可能会在密钥链中传播不必要且可能混淆的证书。在这些代码过期时清除它们是一个好主意,因为它们会给Xcode带来一些混乱

    警告

    • 在对钥匙链执行任何维护之前,请确保您有钥匙链的备份
    • 此过程旨在删除与开发相关的不必要的证书,如果证书不是以Mac Developer、第三方Mac Developer、iPhone Developer或Developer ID开头的,此时不要将其弄乱。如果您意外删除了通过电子邮件收到的证书(例如),即使证书已过期,您也可能无法阅读收到的电子邮件
    要做的事情:

  • 退出Xcode
  • 运行钥匙链急救(从钥匙链访问)并验证钥匙链是否正常
  • 单击左侧边栏上的证书类别
  • 查找上述类型的任何过期的开发人员证书。它们将在右下角显示一个小X
  • 选择要删除的证书,并使用文件>导出项目对其进行备份…
  • 把这个文件放在一个安全的地方,并给它一个好的密码
  • 删除已备份的证书
  • 看透
    Developer ID Application: <your company name>
    Developer ID Installer: <your company name>
    Developer ID Certification Authority
    
    $ sudo security add-trusted-cert -d -r trustRoot -p codeSign -k /Library/Keychains/System.keychain ~/Desktop/gdb-cert.cer
    
    $ security find-identity -p codesigning
    
    Policy: Code Signing
      Matching identities
          1) E7419032D4..... "Mac Developer: FirstName LastName (K2Q869SWUE)"    (CSSMERR_TP_CERT_EXPIRED)
          2) ACD43B6... "gdb-cert"
      2 identities found
    
      Valid identities only
          1) ACD43... "gdb-cert"
      1 valid identities found
    
    $ codesign --sign gdb-cert.cer --keychain ~/Library/Keychains/login.keychain `which gdb`
      gdb-cert.cer: no identity found
    
     codesign -s gdb-cert --keychain /Library/Keychains/System.keychain `which gdb` 
    
    certtool y | grep "Developer ID Application: xxxx"
    
    codesign --keychain /Users/myUser/Library/Keychains/login.keychain --force --verbose -s "Developer ID Application: xxxx