错误 ITMS-90174: “缺少预配文件 - iOS 应用程序必须包含名为 embedded.mobileprovision 的预配文件。”

66

当我上传到应用程序加载器时,我收到以下消息:

ERROR ITMS-90174: "Missing Provisioning Profile - iOS Apps must contain a provisioning profile in a file named embedded.mobileprovision."

这个东西在我的应用文件夹中。当我压缩它时,无论我如何明确描述配置文件,我都会收到这个错误,尝试上传我的应用程序给苹果。


你是用 Xcode 6 自己构建并压缩了这个应用程序吗? - wottle
10个回答

167

如果你像我一样使用 Ionic / Cordova,请看这个公告...

https://github.com/apache/cordova-ios/issues/407

只需要修改一个设置,然后像往常一样重新运行档案以提交到苹果商店。

前往"文件" > "项目设置..."

Go to File then Project Settings

然后选择“Legacy Build System”

enter image description here


我在HockeyApp中遇到了“无配置文件”的错误,以下方法是正确的修复方式。谢谢! - sebaferreras
6
在我的情况下,应该是“工作区设置”而不是“项目设置”。但它有效了;-) - Jan Moritz
试了好几个小时来修复我的配置文件和证书,直到我找到了这个!它适用于我的xcode 12和一个旧的ionic v1应用程序。 - Oliver
回滚构建系统并不是一个真正的解决方案,而只是一种捷径/变通方法。 - William Grand
非常感谢您! - Jennifer

81

我需要上传一个归档文件到App Store Connect,为此我需要在xcode10的"文件 > 项目/工作区设置"中更改默认的构建系统,并将其更改为旧版本构建系统

这种方法对我有效。


3
针对我的情况,由于我在上传档案文件到商店时遇到了错误,因此还需要重置签名设置。取消勾选“自动管理签名”,并重新选择我的团队即可解决此问题。 - tofraser
回滚构建系统并不是真正的解决方案,而只是一种捷径/变通方法。 - William Grand

13

访问https://developer.apple.com/account

1 - 证书、ID和配置文件

2 - 配置文件

3 - 发布

4 - 添加按钮

5 - 分发->应用商店->继续

6 - 选择Apple ID -> 继续

7 - 选择证书 -> 继续

8 - 设置配置文件名称 -> 继续

9 - 下载

10 - 在Xcode中,选择Product -> Archive,在重新签名“App名称”选项中手动管理签名 -> 选择分发证书并导入在第9步下载的配置文件。

很抱歉我的英语不好,我来自巴西


传统的构建系统无法工作,但这个方法对我很有效,谢谢 ;) - Memphis

2

如果您以IPA归档格式(例如:Game.ipa)将构建提交到AppStore,请确保Payload文件夹位于根目录中,否则您将会收到错误提示:缺少配置文件 - 应用程序必须包含名为embedded.mobileprovision的配置文件。


我通过提取IPA文件来检查它,但仍然收到相同的错误信息: 由于缺少描述文件,应用程序无法被处理,错误为: "Missing Provisioning Profile - Apps must contain a provisioning profile in a file named embedded.mobileprovision." - Tarun Narula

1
我可以确认您的解决方案可行。总结目前的hack如下: 1. 在构建时,我们需要执行(如果使用ionic)ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0" 2. 当您在Xcode中打开它时,您可以继续为项目使用“自动签名”,但是当您将存档上传到App Store(用于TestFlight或App Store)时,您需要选择“手动管理签名”。当您选择手动签名时,您会发现没有关联的配置文件(嗯...),因此请选择一个正确的分发配置文件。 我已成功上传并分发。

1

在 .plist 文件中添加 "Application requires iPhone environment",是的!

我已经测试过了,确实有效!


2
我已经尝试了相同的方法,但仍然出现错误:由于缺少配置文件,无法处理应用程序。应用程序必须包含名为embedded.mobileprovision的配置文件。 - Tarun Narula

1

我曾经遇到过同样的问题,并通过以下步骤解决了它。

  1. 为了澄清,请重新下载您的分发临时配置文件。
  2. 请确保您在xcode中设置“通用iOS设备”来生成ipa文件。

enter image description here

  1. 清理并构建您的项目。
  2. 将产品文件放置在“Payload”文件夹中,压缩此文件夹并将.zip更改为.ipa

现在上传您的ipa。这对我有用。

希望这可以帮到您。


1

对于那些使用命令行构建并使用标志(UseModernBuildSystem=0)来避免此问题的人,似乎自从发布cordova-ios 5.0.0包以来,它不再需要。因此,如果您更新Ionic / Cordova应用程序依赖项,它将正常工作。


-2

查找应用程序二进制文件中的嵌入式配置文件:

在Xcode中,选择项目导航器中的您的项目。 单击项目旁边的展开三角形以显示内容。 单击产品旁边的展开三角形以显示二进制文件。 控制单击二进制文件,并从快捷菜单中选择“在Finder中显示”以转到Finder中的Xcode构建位置。

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/Art/13_locateprofileinbinary_1_2x.png

在Finder中,控制点击二进制文件,然后从快捷菜单中选择“显示包内容”。

对于iOS应用程序,在Finder窗口中会出现一个名为embedded.mobileprovision的预配配置文件。

对于Mac应用程序,嵌入文件称为embedded.provisionprofile。

../Art/13_locateprofileinbinary_2_2x.png

验证嵌入式配置文件的权限

启动终端(位于 /Applications/Utilities),并输入以下文本(不要按回车键):

security cms -D -i

在 Finder 中,将应用程序二进制文件中的配置文件拖到终端中。

../Art/13_verifyentitlementsinapp_1_2x.png

按回车键。此命令将以 XML 格式输出属性列表。

如果您没有一个 embedded.mobileprovision 文件,那么这似乎就是问题所在,并且您可能没有正确地构建应用程序以供应用商店分发。


他写道他把文件放在文件夹里。 - Henrik Erlandsson
是的,他确实这么说了。但是他没有提供文件的具体位置、文件名等信息。他所谓的“应用程序文件夹”到底是指哪个目录?是 .app 目录吗?还是嵌入式 mobileprovision 文件在 .app 目录的根目录下?我试图为他提供一个详细的描述,告诉他 Xcode 期望找到文件的位置,并确保该文件是有效的。拥有一个文件并不是唯一需要的事情。不幸的是,由于 OP 没有回应任何帮助尝试,我们将不知道问题的根本原因是什么。 - wottle
我有一个embedded.mobileprovision文件,输出一个XML格式的属性列表。但是我仍然面临这个问题。 - Muruganandham K

-2

我重新做了“上传到App XStore…”,第二次就成功了。


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