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

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

  1. 获得开发者帐号
  2. 登录会员中心创建应用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中 项目,但我认为这也可能是我的错误的根源。

有人可以帮忙吗?

LeleMarieC asked 2020-01-14T05:49:46Z
23个解决方案
102 votes

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

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

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

SAPLogix answered 2020-01-14T05:53:45Z
94 votes

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

首先,我建议使用一种工具来“查看”配置文件以确保它是正确的:[http://furbo.org/2013/11/02/a-quick-look-plug-in-for-provisioning/ ]

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


检查您的Xcode首选项:

  1. Xcode首选项(CMD +,)
  2. 帐目
  3. 在左侧选择您的帐户
  4. 选择右下角的查看详细信息
  5. 刷新(使用左下角的小按钮)

Xcode Settings

Xcode将配置文件存储在/usr/bin/productbuild

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

然后它应该出现在该文件夹中,但带有哈希名称,例如 /usr/bin/productbuild此时,“快速查看”插件派上用场了:-)


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

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

Build Settings


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

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

Scheme Settings


接下来,检查“钥匙串访问” /usr/bin/productbuild设置:

  1. 打开钥匙串访问(spotlight =>钥匙串)
  2. 选择登录
  3. 点击证书
  4. 在右边寻找/usr/bin/productbuild
  5. 右键单击,选择“获取信息”
  6. 打开“信任”部分
  7. 设置为“使用系统默认值”
  8. /usr/bin/productbuild重复步骤5至7

Keychain


接下来,检查“钥匙串访问”私钥/usr/bin/productbuild

  1. 重复上一检查中的步骤1至4
  2. 展开配置文件以显示您的私钥
  3. 右键单击私钥,选择“获取信息”
  4. 切换到“访问控制”
  5. 选择“允许访问之前确认”
  6. 使用“ +”按钮添加“共同设计”(通常位于/usr/bin/productbuild中)
    提示:如果未在文件浏览器中显示,请使用/usr/bin/productbuild手动输入路径
  7. 使用迦太基时:在此处也添加/usr/bin/productbuild(向DesignatedNerd添加thx)
  8. “保存更改”

Keychain 2

希望其中一项对您有用!


更新(4/22/16):

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

d4Rk answered 2020-01-14T05:53:08Z
33 votes

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

  1. 退出xattr -rc /Users/manabkumarmal/Desktop/Projects/MyProjectHome
  2. 打开xattr -rc /Users/manabkumarmal/Desktop/Projects/MyProjectHome
  3. 键入的命令xattr -rc /Users/manabkumarmal/Desktop/Projects/MyProjectHome
  4. 打开Xcode。
  5. 清洗了
  6. 现在工作,没有错误。
Manab Kumar Mal answered 2020-01-14T05:54:31Z
17 votes

这对我有用。 试试看:

cd ~/Library/Developer/Xcode/DerivedData
xattr -rc .
Shree answered 2020-01-14T05:54:51Z
10 votes

我在Xcode 8和Mac OS Sierra中遇到此错误。 尝试了以上所有解决方案,但均无效果。 这是唯一为我工作的人。 打开终端,然后在其中输入:

cd ~/Library/Developer/Xcode/DerivedData
xattr -c *
Jose Ramirez answered 2020-01-14T05:55:11Z
4 votes

对我来说,“重启Mac系统”已奏效

Sakthimuthiah answered 2020-01-14T05:55:31Z
3 votes

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

luke answered 2020-01-14T05:55:51Z
2 votes

d4Rk建议的所有步骤,这是一个很好的演练。如果仍然没有签名,则您可能有一些过期或吊销的证书。 我发现当您在团队中工作时可能会发生这种情况。

  1. 退出xcode。
  2. 打开钥匙串访问。
  3. 在“证书”部分中,遍历所有“ iPhone发行版”证书,如果它们已过期或吊销或无效,则将其删除。
  4. 与3相同,但在“我的证书”部分中。
  5. 重新打开xcode,然后重试。
orion elenzil answered 2020-01-14T05:56:33Z
2 votes

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

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

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

在我的情况下,如果远程访问,则自动签名不起作用。 因为我需要在使用存档之前打开钥匙串

security unlock-keychain -p "newpassword" "/Users/xyz/Library/Keychains/login.keychain"

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

Piyush answered 2020-01-14T05:57:07Z
2 votes

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

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

我希望这有帮助..

LazyX answered 2020-01-14T05:57:36Z
2 votes

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

键入以下命令一个接一个:

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

打开项目并运行。

Mujahed Ansari answered 2020-01-14T05:58:14Z
1 votes

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

Mike answered 2020-01-14T05:58:34Z
1 votes

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

Ruchin Somal answered 2020-01-14T05:58:55Z
1 votes

删除现有的预编译文件:

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

并尝试再次构建它。

Raghu MR answered 2020-01-14T05:59:19Z
0 votes

重新启动对我不起作用。

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

geet Sebastian answered 2020-01-14T05:59:44Z
0 votes

删除您的开发人员中的证书,然后重新安装即可使用!

ozzbmt answered 2020-01-14T06:00:04Z
0 votes

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

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

Adnan Haider answered 2020-01-14T06:00:30Z
0 votes

在我的情况下,我更新操作系统后,某些Pod已过时。 修复问题的方法如下:

在终端:

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

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

这对我有用,希望对您有所帮助!

Q A answered 2020-01-14T06:01:03Z
0 votes

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

在尝试打开xcode之前,我无法打开系统,因为系统正在更新。 稍后我尝试了一下,它使我可以继续工作,然后遇到相同的错误。

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

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

这就是魔术。 它为我工作。

Iker Etxebarria answered 2020-01-14T06:01:40Z
0 votes

重新启动对我也有用。 升级到High Sierra后,密码出现了很多问题,看来我需要输入密码才能访问XCode。

Pierre Tanguay answered 2020-01-14T06:02:01Z
0 votes

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

它在您的模拟器上但在实际设备上不起作用的原因可能与您的Development Certificate有关。

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

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

然后就可以了!

希望能帮助到你!

nigong answered 2020-01-14T06:03:01Z
0 votes

我已经解决了这个问题。 如果您的项目具有.xcdatamodeld文件(意味着您正在使用coreData),则确保您形成的实体进入其数据模型检查器,并检查Class是否具有代码生成,手动/无或类定义。 如果是类定义,则将其设置为“手动” /“无”,然后清理项目并再次运行。 屏幕截图如下:

enter image description here

enter image description here

MRizwan33 answered 2020-01-14T06:03:21Z
-2 votes

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

在终端中运行此命令

find . -name "*.png" -exec xattr -c {} \;
Umar answered 2020-01-14T06:03:46Z
translate from https://stackoverflow.com:/questions/29242485/command-usr-bin-codesign-failed-with-exit-code-1-code-sign-error