无效的配置文件签名 - STATE_ERROR.VALIDATION_ERROR.90165

87

我试图将一个存档上传到App Store Connect,突然遇到以下错误:

无效的配置文件签名。捆绑包中包含的配置文件不能被用于提交应用程序到iOS App Store,除非它有来自Apple的有效签名。更多信息请访问iOS开发者门户网站。错误代码为STATE_ERROR.VALIDATION_ERROR.90165,ID为...

我正在使用“自动管理签名”,昨天刚上传了同一应用的存档并没有问题。

输入图像描述


2
这个回答解决了你的问题吗?在尝试分发Flutter应用程序时,在iOS中出现无效的配置文件签名 - Perry Mitchell
后来我重新生成了配置文件,现在它又可以正常工作了...很奇怪。 - bra.Scene
11个回答

86

这个问题是由两个过期的苹果证书引起的1

解决方案是:

  1. 前往证书、标识符和配置文件
  2. 打开配置文件
  3. 在右上角点击编辑
  4. 不做任何更改,点击保存。这将使用正确的CAs重新生成配置文件。

现在删除~/Library/MobileDevice/Provisioning Profiles文件夹,让Xcode重新下载配置文件即可。


1 https://twitter.com/JI/status/1514043544897425408


1
你可以将删除部分加粗,因为它是最重要的部分。 - Lachezar Todorov
1
不需要进入AppStore Connect。这个答案完美地解决了问题:https://dev59.com/dFEG5IYBdhLWcg3wKFbw#71856227 - Sami
@Sami不,它只适用于自动管理的配置文件。如果您使用手动管理的配置文件,则需要手动重新创建它。仅删除文件夹并重新下载并未解决我们任何构建机器的问题。然而,重新创建它们就可以了。 - davidgiga1993

23

对我有帮助的方法:

  1. 退出 Xcode。
  2. rm -rf ~/Library/MobileDevice/Provisioning\ Profiles/
  3. 重新启动 Xcode,让它重新构建配置文件。

7

苹果已更新其WWDR证书,https://developer.apple.com/support/expiration/

根据您所使用的xCode版本,有一些证书在2022年1月到期,有一些则在4月到期。因此,任何在2022年4月之前下载的预配资料文件均已使用过期的WWDR签署。这就是为什么您需要重新生成预配资料文件的原因。


5

不是每个人的证书都会在同一时间到期,这可能与苹果有关。

1- 删除所有配置文件。 /Users/X/Library/MobileDevice/Provisioning Profiles

2- 打开 Xcode 并等待 2 秒钟。Xcode 可以自动下载配置文件,您无需进行任何操作。

请注意,在此之前您没有过期的证书。如果有过期的证书,请编辑并重新保存,它会给您一个新的日期。

输入图像描述


4

昨天我还在部署。构建正常运行,但今天突然遇到了这个问题,其他的方法都没能帮助我解决。以下步骤对解决问题有所帮助:

  1. 创建一个新的Apple发布证书。(您可以按照开发人员门户上的步骤操作 - developer.apple.com)
  2. 将证书下载到您的系统中。
  3. 您可以继续使用“自动管理签名”。
  4. 清理构建文件夹。
  5. 存档。
  6. 验证。
  7. 分发 -> 上传成功!

4

以下是我的解决方法。

  1. 登录https://developer.apple.com/
  2. 在左侧窗格中找到“Profiles”(配置文件)。
  3. 选择“Profiles”,点击蓝色的+按钮注册一个新的配置文件。
  4. 在“Distribution”下选择“App Store”。
  5. 点击右上角的“Continue”按钮。
  6. 在下一个屏幕上选择要为其创建此配置文件的Apple ID。
  7. 点击右上角的“Continue”按钮......
  8. 选择要与此配置文件一起包含的证书。
  9. 点击“Continue”。
  10. 给配置文件取一个有帮助的名称,然后点击“Generate”。
  11. 下载它......
  12. 下载完成后,双击将其在Xcode本地安装。
  13. 现在,您应该能够分发有效的二进制文件到应用商店。

2
这将创建一个新的证书,不会解决现有证书的问题。 - MeLean

3

重新生成配置文件,您可以保留同样的证书。

按照以下步骤解决问题:

  1. 重新生成配置文件 前往developer.apple.com => Certificates, Identifiers & Profiles => Profiles => 点击配置文件 => 点击EDIT => 再次点击保存(确保重新生成配置文件)

  2. 删除本地保存的配置文件:

    rm -rf ~/Library/MobileDevice/Provisioning\ Profiles

  3. 然后在Xcode帐户中再次下载配置文件。 从Xcode => Preferences => 帐户或 Runner => Targets => Signing & Capabilities => Prov Profile => Download profiles.


1
你的答案与已存在的答案基本相同,但是你在2)处提到的命令是错误的,因为它没有正确地处理文件夹名称中的空格。如果按照那样执行,这将删除其他文件。 - davidgiga1993

2
对我而言,当我重新创建了AppStore的配置文件并删除旧的配置文件后,问题得到了解决。

2
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

1

解决方案:

  1. 只需删除此处的所有内容:~/Library/MobileDevice/Provisioning Profiles,让Xcode重新下载配置文件即可。
  2. 打开Xcode首选项,导航到帐户,并点击下载手动配置文件。

0

对于使用 fastlane 的用户,将 force: true 添加到 get_provisioning_profile 调用中将重置过期日期。

get_provisioning_profile( # Create or get provisioning profile
  output_path: "./builds",  # change to whatever works for you
  force: true,
  filename: "AppStore_" + ENV["APP_IDENTIFIER"] + ".mobileprovision" # Rename the local provisioning profile
)

请参见:https://docs.fastlane.tools/actions/get_provisioning_profile/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接