在 xcode 版本 10.2 中为产品类型“应用程序”签署二进制文件时,空标识无效
Posted
技术标签:
【中文标题】在 xcode 版本 10.2 中为产品类型“应用程序”签署二进制文件时,空标识无效【英文标题】:An empty identity is not valid when signing a binary for the product type 'Application' in xcode version 10.2 【发布时间】:2019-04-03 07:45:34 【问题描述】:我已经编译了webrtc ios源代码,然后我使用了命令:
gn gen out/ios --args='target_os="ios" target_cpu="arm64"' --ide=xcode
然后我用 Xcode 打开工作区。
但是当我编译代码时,Xcode 在下面给出了这个错误。
为产品类型“应用程序”签署二进制文件时,空标识无效。 (在目标“AppRTCMobile”中)
我的 Xcode 版本是 10.2,最新版本。
我真的不知道这是怎么回事,谁能帮帮我?
我的代码符号设置是:
一切正常。
【问题讨论】:
检查您的代码签名设置。您是否为目标使用了正确的团队和个人资料? Team: kai zhang Signing Certiticate iPhone Developer :........,这个账号可以用来构建其他程序。 您的项目中没有关联的 info.plist。单击该选择 info.plist 文件,然后为该项目选择一个。 谢谢,但不幸的是,它不起作用。 这是我的错误,我应该选择目标AppRTCMobile,然后选择info.plist,谢谢,它对我有帮助。 【参考方案1】:我添加了CODE_SIGNING_ALLOWED=NO
作为附加参数,它为我解决了这个问题。
【讨论】:
我的缺少CODE_SIGN_IDENTITY
,但您的修复找到了我的!【参考方案2】:
我需要关闭Automatic manage signing
然后再打开它。看起来 Xcode 确实通过该操作修复了一些不一致的问题。
【讨论】:
【参考方案3】:我在 Xcode 12.2b 中构建以在设备上运行时看到此错误,但我没有将签名设置为自动或选择的配置文件等。
基本上我在模拟器上运行和测试,然后插入设备进行测试,忘记更改任何签名设置。
也许这个错误对于 Xcode 12.x 来说是新的。
【讨论】:
【参考方案4】:如果您使用 CocoaPods,请检查您的 project.pbxproj
是否有 (null)
引用,有一个问题会使 BuildFile
引用变为 (null)
即使您正确定义了身份,它也可能是“空”的,因为this issue
按照建议尝试:
pod deintegrate
pod install
【讨论】:
【参考方案5】:当 Xcode 项目生成(而不是从 xcode 中构建)并且生成的输出项目意外处于发布模式时,可能会发生此错误。
我在做一个 Godot 项目,遇到了上述错误,导致我写了这篇文章。该错误不是 WebRTC 或 Godot 特定的。
如果您现在只想在设备上调试项目,并且还不需要发布版本,请使用方案切换器 (1) 切换到调试方案
如果生成器没有创建调试方案(我的问题就是这种情况),您可以通过新方案 (2) 添加一个
起初我无法弄清楚为什么它抱怨“空身份”(这是指Team
下拉菜单),根据屏幕截图我设置了这个值。我在 Debug 上设置了项目视图过滤器设置(根据屏幕截图 (3),因此没有显示发布设置(团队设置为“无”)。将其更改为 All
以查看 @错误中的 987654326@ 来自于你。
调试版本只需要基本的签名设置。如果您在发布版本时仍然遇到问题,您可能需要从派生数据、Apple 开发人员门户和钥匙串中清除证书和配置文件。
Release build certificates are hard to manage & replace 所以要小心随机生成和删除它们。
【讨论】:
【参考方案6】:问题已经解决,是我的错。
选择目标,然后选择 info.plist 并为您的项目选择一个。
【讨论】:
以上是关于在 xcode 版本 10.2 中为产品类型“应用程序”签署二进制文件时,空标识无效的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 10.2 无法在 iOS < 10 的模拟器上运行应用程序
是否可以在 High Sierra (10.13.6) 上安装 Xcode 10.2?
将 xcode 升级到 10.2 版后面临 AFNetworking 错误