59

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

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

当我构建应用程序时,它在应用程序模拟器和实际的 ipad 上完美运行,但是当我将应用程序切换到ArchiveiOS 设备上时,我遇到了一个主要的代码符号错误,我附在下面。

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项目,但我认为这也可能是我错误的根源。

任何人,你能帮忙吗?

4

26 回答 26

106

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

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

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

于 2017-11-05T12:10:05.800 回答
98

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

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

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


检查您的Xcode 首选项

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

Xcode 设置

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. 重复步骤 5 到 7Apple Worldwide Developer Relations Certificate Authority

钥匙链


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

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

钥匙扣 2

希望其中一个对你有用!


更新(2016 年 4 月 22 日):

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

于 2015-03-24T21:43:28.887 回答
35

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

  1. 退出Xcode
  2. 打开Terminal
  3. 键入命令xattr -rc /Users/manabkumarmal/Desktop/Projects/MyProjectHome
  4. 打开 Xcode。
  5. 清洁。
  6. 现在工作并且没有错误。
于 2016-10-21T13:29:10.850 回答
19

这对我有用。试试看:

cd ~/Library/Developer/Xcode/DerivedData
xattr -rc .
于 2016-11-09T12:38:14.753 回答
10

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

cd ~/Library/Developer/Xcode/DerivedData
xattr -c *
于 2016-10-19T00:24:17.180 回答
4

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

于 2015-07-09T12:49:50.560 回答
3

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

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

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

于 2016-09-15T07:01:58.967 回答
2

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

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

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

/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"

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

于 2018-02-28T14:24:54.490 回答
2

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

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

我希望这有帮助..

于 2018-04-23T11:09:17.740 回答
2

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

对命令一一键入以下内容:

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

打开项目并运行。

于 2017-05-17T09:59:40.130 回答
1

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

于 2015-09-22T11:03:09.777 回答
1

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

于 2017-01-03T06:01:03.213 回答
1

删除现有的预编译文件:

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

并尝试再次构建它。

于 2017-05-08T20:02:38.793 回答
0

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

在终端:

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

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

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

于 2017-07-22T23:36:17.457 回答
0

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

在此处输入图像描述

在此处输入图像描述

于 2017-01-05T20:17:01.983 回答
0

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

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

于 2017-01-18T14:13:14.490 回答
0

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

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

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

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

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

于 2018-01-28T21:37:13.567 回答
0

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

于 2016-03-30T04:04:56.103 回答
0

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

识别不良证书:

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

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

修复错误的证书:

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

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

于 2020-11-05T11:02:05.090 回答
0

重新启动对我不起作用。

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

于 2015-12-17T07:06:22.017 回答
0

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

于 2018-02-07T05:43:10.190 回答
0

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

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

于 2019-12-02T14:14:44.883 回答
0

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

它在您的模拟器上运行但在真实设备上运行的原因可能与您的Development Certificate.

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

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

然后它起作用了!

希望能帮助到你!

于 2018-06-20T20:46:47.480 回答
-2

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

在终端中运行此命令

find . -name "*.png" -exec xattr -c {} \;
于 2016-10-03T07:22:26.447 回答