SDK“iOS 14.3”中的产品类型“应用程序”需要代码签名

问题描述

我正在尝试在 xcode 12.3 (macOS Catalina 10.15.6) 中构建一个旧的 iOS 应用程序。该应用程序是多年前由另一个人编写的。所以之前它是由另一个 AppleID 证书签名的。

现在我已经设法在 xcode 12.3 中构建应用程序,并且可以在虚拟设备(iPhone 11 pro)上成功运行它。但是,当我尝试在通过 USB 连接的真实 iPad(iOS 版本 14.2)上运行该应用程序时,出现此错误:“SDK 'iOS 14.3' 中的产品类型'应用程序'需要代码签名”。

我已经在 SO 中搜索过,发现很多年前的一些主题对我没有真正的帮助。

到目前为止我尝试了什么?

  1. 为我的 AppleID 启用两步验证并将我的 AppleID 添加到 xcode。
  2. 在项目 -> 签名和功能部分,我启用了自动签名并选择了我的团队(显示为“名字姓氏(个人团队)”)。现在在签名和功能部分一切正常,没有错误
  3. 我还尝试创建了一个测试应用程序,并且能够在连接到我的电脑的同一台 iPad 上运行它。我使用的 AppleID 与我在实际项目中使用的相同。

错误之前还有警告:““MyProject”不是代码签名的,但需要权利。没有签名就不可能向二进制文件添加权利。”

解决方法

不知何故,我终于设法在外部设备 (iPad) 上运行我的应用程序。我真的不明白我是怎么做到的,但在某些时候它只是编译没有错误然后开始。

我只是从这个线程中一个接一个地尝试每一个建议:Code signing is required for product type 'Application' in SDK 'iOS 10.0' - StickerPackExtension requires a development team error。我用我的 AppleID 设置了自动签名,选择了我的团队,更改了 BundleID,将部署目标版本更改为 14.2(与我的 iPad 相同)等。我还尝试清理项目并在每次更改后重新启动 xcode - 没有任何效果我。但是在我更改了两个目标(主应用程序和测试)的构建设置下的代码签名标识后,它突然开始工作。我只是来回更改了 Code Sign Identity,然后它就开始工作了。最后,我将 Code Sign Identity 设置为“Apple Development”(正如签名选项卡中的错误消息中所建议的那样)。

这很有趣,但我当时尝试的答案却暗示了完全不同的事情。但是这个答案是几年前的,我的界面中没有这样的设置。所以我试图以另一种方式设置它。这就是它对我有用的方式。顺便说一句,这就是答案:https://stackoverflow.com/a/47664721/4428219

也许稍后我会进行更详细的研究,究竟是什么设置使它对我有用。但现在我只是提交了我的工作配置,想在我记住事件顺序的时候把它写在这里。