Xcode 说没有找到代码签名身份
Posted
技术标签:
【中文标题】Xcode 说没有找到代码签名身份【英文标题】:Xcode says No code signing identities found 【发布时间】:2014-09-16 19:39:46 【问题描述】:在 Xcode 中,当我尝试构建现有应用程序时,出现错误: “代码签名错误:未找到代码签名身份:...”
在应用程序的构建设置中,我选择了应用程序的配置文件,但在代码签名身份中,我唯一能得到的是“iPhone 开发人员”。当我点击它时,弹出窗口还会告诉我“没有来自个人资料的身份“...””。
显然,Provisioning Profile 或身份有问题。
当我编辑 Provisioning Profile 时,我只有三个选项,它们都是具有相同名称和不同日期的身份。我选择了过期日期最晚的那个。
我尝试从我的库和钥匙串中删除配置文件和证书,然后下载它们并双击文件以重新安装它们。没有变化。
我确实看到 Keychain Access 没有在我的证书旁边显示三角形,但我在任何时候都没有获得私钥。
在开发者会员中心的 ios 证书(生产)中,我确实尝试单击 + 图标来创建新证书,但创建 App Store 证书的选项显示为灰色。我不知道现有证书是否适用于 App Store...点击它们只会让我选择撤销或下载。
显然我需要以某种方式获取私钥,但我没有找到检索或创建私钥的方法。会员中心没有告诉我我是否遇到了三证书限制或其他问题,也没有告诉我撤销某些内容是否会干扰 App Store 中的内容......并不是说似乎需要撤销,因为我正在尝试添加并且不干扰其他开发者。
更新:我找不到配置文件的有效身份,所以我创建了一个新的生产证书(iOS 分发),然后在配置文件中选择它。下载两个并将它们添加到机器中。重新启动 Xcode。现在身份是可见的,并且构建通过了验证。
但 iTunes 以一系列可能的原因拒绝它。一种解决方案,“清理所有”似乎不在 Xcode 中(只有一个“清理”选项),所以我不知道该消息有多信任。
“无效签名 - 确保您使用分发证书而不是临时证书或开发证书对应用程序进行签名。验证 Xcode 中的代码签名设置在目标级别正确(覆盖任何值)项目级别)。此外,请确保您上传的包是使用 Xcode 中的 Release 目标构建的,而不是 Simulator 目标。如果您确定您的代码签名设置正确,请在 Xcode 中选择“Clean All”,删除“build " Finder 中的目录,然后重建你的发布目标。"
是的,我确信一切都是正确的......我提交了数十次应用程序,每一次都确定。
【问题讨论】:
在终端上使用more
、less
甚至vim
打开配置文件,并在配置文件中查找签名身份(如果终端抱怨它是二进制文件,请输入 y无论如何打开它)。然后打开钥匙串并搜索相同的签名身份。检查身份证。这应该会导致您遇到根本问题。
我没有找到身份——但是,Xcode 告诉我“没有代码签名身份”,所以也许没有定义,尽管我认为我在会员中心配置文件和证书弹出。
在移动配置文件中查找键 TeamIdentifier
的值。然后打开钥匙串,在证书的信息(cmd+i)中搜索,如果你能找到这个团队标识符。
【参考方案1】:
看起来这个问题是关于一个 iOS 项目的,但我的 Mac 应用程序也有类似的问题。即使我选择了“不要编码签名”,Xcode 仍然在抱怨缺少身份。
我通过手动编辑文件<Project>.xcodeproj/project.pbxproj
并删除所有定义CODE_SIGN_IDENTITY
或CODE_SIGN_ENTITLEMENTS
的行来解决它。
这可能会让您重新开始编码,但如果您打算提交到 App Store,这显然不是最终解决方案。
【讨论】:
以上是关于Xcode 说没有找到代码签名身份的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins/fastlane - 没有找到本地代码签名身份
制作 .ipa 时未使用 Xcode Server Bot 找到代码签名身份