Xcode 10:找不到此可执行文件的有效配置文件


221

从昨天开始,尝试在我的设备上运行应用程序时出现以下错误:“未找到该可执行文件的有效配置文件。”。这是在更新到Xcode 10之后的。上周使用Xcode 9进行构建没有问题。

我检查了有关该错误的其他讨论,但是没有一种解决方案有效。

这个问题不仅限于我一直在从事的单个项目,因为它影响了来自不同签名团队的多个项目。

到目前为止,我已经尝试了以下方法:

  • 清洁项目

  • 清除派生数据

  • 卸载Xcode,删除所有与它相关的首选项和文件。

  • 在完全不同的Mac上安装Xcode

  • 使用不同的设备进行测试

  • 在开发人员资料中禁用设备,然后让Xcode再次启用它。

  • 删除开发人员门户中的所有证书并重新创建它们

  • 取消选中并重新选中“自动管理签名”

  • 破坏配置文件并让Xcode重新创建它

  • 在开发人员资料中创建手动配置资料

该项目不包含测试,因此该目标上的错误签名设置不会有问题。日期/时间设置为自动

需要注意的一件事是,这里没有列出配置文件,除了我创建的手动配置文件:https : //developer.apple.com/account/ios/profile/

我希望生成的xcode像其他所有客户端一样显示出来。

以下是我当前正在使用的签名设置

供应配置文件设置

我尚未尝试将Xcode降级到较旧的版本,以查看是否可行。除此之外,我不知道下一步该怎么做。


您是否在Xcode首选项中添加了开发者帐户?
Ankit Jayaswal

@AnkitJayaswal多次,从未成功。但是我可以通过降级到9.4.1来解决它,因此该问题似乎与Xcode 10有关。您应该可以使用旧的Xcode版本提交应用程序一段时间,对吗?
Daniel Andersson

2
是的,您可以提交从xcode 9及其版本开始的构建,直到2019年3月developer.apple.com/ios/submit
Ankit Jayaswal 18/09/20

我也尝试过Xcode 10,但我没有遇到此类问题missing provisioning-profile
Ankit Jayaswal

3
您是否更改了iPhone的日期,使其超过了证书的有效期?由于这个原因,我遇到了这个问题。
Anuved Nayak

Answers:


478

今天,我为此感到挣扎,这实在令人沮丧。现在,只需进入"File"> "Project Settings..."(或在某些情况下"Workspace Settings..."),然后"Legacy Build System""Build System"下拉列表中进行选择。


1
这对我也很有效,因此我可以使用Xcode 10构建应用程序,而无需还原到Xcode9。我向App Store Conenct提交了一个构建并将其发布到TestFlight。因此,有两种解决方法可用,直到问题得到正确解决。Apple是否有任何说明说,在提交应用程序时允许您使用旧版构建系统多长时间?
Daniel Andersson '18

9
但是,这是什么意思?它有什么作用?我们如何知道可以再次更改设置?
Siyah '18年

4
这在Cordova版本上很出色-出色的工作。显然,Cordova CLI有一个要跳过的参数:cordova build ios --buildFlag ='-UseModernBuildSystem = 0'在此处查看更多信息: github.com/apache/cordova-ios/issues/407
Victor

6
文件下没有项目设置。我必须单击“工作区设置”,然后从“共享和每用户工作区设置”的“构建系统”下拉列表中选择“旧版构建系统”。
red-devil

9
对我不起作用:((。我的Xcode版本是10.1。我的iPhone操作系统版本是12.1
Hamed Ghadirian

94

@斯蒂芬TKS这为我解决。我只需要去->文件-> WorspaceSettings->构建设置(在此处更改为“旧版构建系统”)在此处输入图片说明

在此处输入图片说明


1
令人沮丧的是,这一切对我也起作用。我注册了我的UDID,创建了我的个人资料,我有一个开发证书,它都与我正在开发的应用程序相关联,做了所有可以直接在设备上运行的工作,但每次仍然失败-直到我将其切换到遗产,是第一次使用...
格兰特(Grant)

62

[edit] Note 2020:我曾经手动签署过这个项目。在我自动签名的项目中,我从来没有遇到过这个问题。[/编辑]

我遇到了同样的问题,花了数小时来寻找答案,删除配置文件,清理项目等等。

您分发了您的应用程序吗?您需要切换回开发人员资料,但不是在项目设置下而是在常规设置下,而是在构建设置下

在“ 签名”下,查看您的代码签名身份

确保您的Debug和Release都设置了iOS Developer,而不是iOS Distribution;或您的iOS开发者配置文件(如果未设置为自动值)。

供应配置文件也是如此。它应该是您的开发配置文件,而不是您的分发配置文件。 在此处输入图片说明

希望这对将来有需要的开发人员有所帮助。


需要澄清的是(因为我在第一次阅读该建议时对此建议感到困惑):iOS Developer的发行版更改仅是在直接在连接的设备上进行测试时;构建并上传到testflight / app商店时,将需要更改回iOS发行版,对吗?
制造商史蒂夫

1
老实说:没有。我不必这样做。发生这种情况的一个可能原因可能是因为我不得不再次设置证书,并且可能在开发之前“安装”了发行版。这只是我的猜测,但要回答您的问题:我仍然将它们设置为“开发”,并在存档构建以上传到App Store时选择“分发”。
RickardElimää18年

2
这真的帮助了我!<3
bobber205 '19

这为我解决了。我只是在尝试对应用程序进行性能分析时遇到问题,在正常运行的情况下,它运行良好。我有一个用于调试的开发人员帐户和一个用于发行的发行版帐户。老实说,这对我来说似乎是一个XCode / Profiling错误。
詹姆斯

1
正常工作,但还需要一步。由于我要在系留的iPhone上进行测试,因此我不必担心会进入App Store并设置我的“ iOS Distribution”证书。由于我一直在进行开发,因此我假设只需要在App Store上设置“ iOS开发”证书即可。好吧,直到我同时拥有“ iOS开发”和“ iOS发行版”证书,它才起作用。
李大将

41

我已经尝试了所有上述解决方案。

但是,在我的情况下,经过数小时的头痛之后,原因是测试项目没有有效的帐户来提供签名。选择了要在测试项目中进行自动托管签名的团队之后。这个问题消失了。


你是怎么做到的?
red-devil

2
@ red-devil因此,您将必须在所有目标项目中更新签名管理。

谢谢,以上所有答案都不能解决我的问题。您的回答确实神奇。
HungrySoul

26

使用干净的构建文件夹(命令+ shift + K),重新构建应用程序可以很快解决此问题。但是,由于您已经清理了构建文件夹,因此构建时间将增加。


1
这对我有用(加上删除派生数据),但是使用旧版模式​​的建议不起作用。
克里斯(Chris)

1
对我来说,我的正常目标和测试目标有不同的团队,这造成了只有删除派生数据才能重置的问题。
克里斯(Chris)

1
单独清洁构建文件夹(命令+ shift + K)对我来说解决了这个问题。感谢@JeromeLi!
寒冷,

1
我首先尝试了接受的答案(“旧版模式”),它对我有用。然后,我恢复为“新建版本系统”并尝试了此建议(“清理生成文件夹”)。它也起作用。因此,总的来说,这是更好的答案。
user1527225 '19

1
谢谢,这对我有用。(ps:只有我的iPhone 11出现了这个问题,我的iPhone Xs Max没有这个问题,并且iPhone 11第一次安装了我的测试项目)
RateRebriduo

13

因此,不是每个人都这样,但我想还是应该将其发布在这里,因为似乎没有与此相关的任何答案。

以我为例,我正在使用ReactNative开发的应用程序,我的问题是,尽管我的签名在主应用程序目标上是正确的,但测试目标并未对其应用任何签名。
由于某些原因,React Native要求您的应用程序目标和测试目标都经过签名才能在设备上安装该应用程序。
它确实在构建设备的官方文档中对此进行了指定,但是这是我见过的唯一一个实例,其中除了测试外,还为应用程序构建了测试目标。

为了签署测试目标,请打开项目导航器(⌘1)进入项目设置,然后在顶部选择项目。

在主编辑器内,选择“目标”下的主应用程序目标(应与项目名称相同)并确保签名正确,然后选择测试目标(可能就在主应用程序目标下,它应与“测试”同名)附加),并确保其签名方式相同。

重建您的应用程序,它现在应该可以成功安装。

归功于Leo Lei,他在这里的回答让我很头疼:https : //stackoverflow.com/a/48657358/732844

顺便说一句,如果有人知道为什么本机反应要求您将测试目标与应用目标一起构建,他们可以让我知道吗?我能想到的唯一原因是简化了界面,因此react可以构建一个应用程序,并且无需重新构建即可运行和测试,但我只是在猜测那个。


2
这为我解决了其他任何事情。感谢您的发表。
Christian Chown

2
非常感谢指出这一点。我重命名了项目并更改了团队。测试目标有一个旧的团队名称。我已经奋斗了几个小时。再次非常感谢
Alix

经过数小时的头痛之后,这为我解决了问题。非常感谢!
约翰逊

8

就我而言,这是解决问题的步骤:

  1. 转到此文件夹: ~/Library/MobileDevice/Provisioning Profiles/
  2. 删除所有配置文件
  3. 在Xcode 10菜单>产品>清洁版本文件夹中
  4. 在Xcode 10菜单> Xcode>首选项>帐户>下载手动配置文件中
  5. 在Xcode 10菜单>产品>构建/存档中

采取上述步骤的原因是,删除破坏了构建过程的旧的配置文件。


6

对于我们的团队,没有任何帮助。我们花了几天的时间,尝试了上面答案和评论中提到的每个步骤。多年来,我们在App Store上尝试使用XCode 10甚至XCode 9.2。

升级到MacOS Mojave后,问题开始了。不幸的是,回到HighSierra并没有帮助。

创建新的证书和配置文件后,至少我们能够再次进入App Store。但是我们仍然无法再在真实设备上以发布模式测试我们的App,这对于测试InApp购买是必不可少的。

简而言之:归档和提交工作良好,不能在真实设备上运行!

几个开发人员,多个设备,macbook,XCode版本...。

最后,我们必须更改AppID才能再次在真实设备上进行测试。

因此,我们现在运行两个不同的项目:一个用于使用真实的AppID运送到TestFlight / AppStore,另一个用于开发目的与另一个AppID。

尽管这只会在我们公司的某个特定应用程序上发生,而并非在所有其他应用程序上发生,但是随着苹果开发工具的情况变得越来越糟,我们希望将来会遇到类似的问题...


5

在切换到XCTest单元测试目标然后又回到项目运行时目标后,我在Xcode 10.3中发生了此问题。

事实证明,在我的配置文件中为每个目标选择了一个不同的团队。

要解决这个问题 :

  • 清理构建文件夹

  • 确保所有可能的目标都使用同一团队。请参阅常规标签下的配置文件签名。

  • 如果未对所有目标使用同一团队,请先进行清洁,然后再使用

    选择了不同的团队。


5

确保配置概要文件来自您的目标和targetTests中的同一团队


1
谢谢!这是我在使用React Native时遇到的问题
Yannickv

4

就我而言,设备日期时间设置为将来的日期。将日期设置更改为“自动”可解决此问题。


3

我在同一个问题上苦苦挣扎,我的解决方案是登录到开发者帐户。更新到Xcode 10后,所有帐户都被注销。

使用菜单“ Xcode->首选项...->帐户”,并确保您使用的所有帐户都已登录,以便可以访问配置文件。


2

我已经按照上述所有步骤进行操作,但是最终还是无法正常工作。我创建了重复的Target,并且工作正常。我不知道怎么了也许是缓存问题

在此处输入图片说明



1

这花费了很长时间,我们完成了上述所有解决方案,但是它们根本没有用,因此我们的团队决定删除Pod文件并pod install再次运行。最后,我们的OTA上传了安装在用户设备上的ipa。最佳解决方案

  1. 清洁project menu > Product > Clean Build Folder/Users/{you user name}/Library/Developer/Xcode/DerivedData

  2. 转到您的项目目录并删除Podfile.lockPods文件夹,pod_***.framework

  3. 再跑pod install一次

完成了


1

我遇到的情况是我的应用程序可以部署到我的iPhone上,但不能部署到我的手表上。部署到监视将给出“找不到此可执行文件的有效配置文件”。错误。这与XCode版本11.2.1一起使用,并使用免费的开发人员帐户。

这是我将其部署到手表上所做的工作:

1)我在XCode中删除了配置文件。我通过转到窗口->设备和模拟器来完成此操作。然后右键单击iPhone名称,然后选择“显示配置文件”。从那里我可以删除文件

2)在“设备和模拟器”屏幕中,我还从“已安装的应用程序”部分中删除了我的应用程序。

3)做了一个“清理构建文件夹”(产品->清理构建文件夹)

4)在“构建设置”->“签名部分”中,我确保每个目标(iPhone,Tests和Watch)具有相同的设置(开发团队,代码签名样式,配置文件设置为自动等)。

构建设置详细信息

5)确保〜/ Library / MobileDevice / Provisioning Profiles目录为空。

6)从电脑上拔下电话

7)重新启动计算机,电话和手表

8)将电话重新插入计算机,并在电话和手表上通过“信任此机器”提示。

9)运行应用程序。有效!


我的苹果手表也遇到了同样的问题,这对我有所帮助。我还取消了配对,然后在过程中的某个地方再次配对了苹果手表。谢谢!
拉杜·弗拉德

1

今天,在将应用程序安装到设备上时遇到了同样的错误。我更新到新的xCode 11.4后出现了问题。

我为解决此问题所做的工作:

  • 未配对的设备(Xcode>窗口>设备和模拟器>左击设备以取消配对设备。
  • 重新启动iPhone
  • 清理构建文件夹(Xcode>产品>清理构建文件夹)
  • 清除派生数据(在../library/Developer/Xcode/DerivedData中)
  • 再次清理构建文件夹(Xcode>产品>清理构建文件夹)
  • 在设备上构建应用。

就我而言,我使用这些步骤解决了问题,而无需取消设备配对。
穆罕默德·优素福

0

就我而言,在没有其他帮助的情况下,我执行了以下操作:

  1. 将AppID更改为新的
  2. XCode自动生成新的配置文件
  3. 在真实设备上运行该应用程序->现在可以正常工作了
  4. 将AppID改回原始ID
  5. 作品

在此之前,我已经尝试了这里提到的每个步骤。但这只有帮助。


0

对我来说,即使您可以使用Xcode的分发证书和配置文件,在分发过程中选择“自动管理签名”也会使其失败。我做了以下。如前所述,我创建了新的分发证书和配置文件,然后在分发过程中手动选择了证书和配置文件和Voilaaaa。同时确保我使用的是最新版本10.1。


0

苹果似乎在Xcode 10.2 beta 2版本中修复了此错误。

https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_beta_2_release_notes

签名和分发已解决的问题

当您构建macOS应用程序的存档并使用开发人员ID签名证书时,Xcode在存档的签名中包含安全时间戳。因此,您现在可以使用xcrun altool将存档的应用程序提交给Apple的公证服务,而无需首先使用时间戳重新签名。(44952627)

当您构建macOS应用的存档时,Xcode不再将com.apple.security.get-task-allow权利注入该应用的签名中。因此,您现在可以使用xcrun altool将存档的应用程序提交给Apple的公证服务,而无需首先取消此权利。(44952574)

修复了导致分发工作流报告有关导出或上载应用程序时使用的签名证书,供应配置文件和权利的信息不正确或缺失的问题。(45761196)

修复了从管理器导出时稀薄的.ipa文件未签名的问题。(45761101)

可以在这里下载Xcode 10.2 beta 2 Release:https//developer.apple.com/download/


3
那很棒。但是,如果您要为应用程序商店构建应用程序,则如果您使用Beta版软件,它将不允许您上传ipa
Yasha


0

之后,我最累的解决方案,我找到了它,使其没有任何问题的工作对我来说,它通过去解决,developer.apple.com然后accountCertificates, identifiers & profiles和我点击All链接下方Devices,然后添加新的设备。

那么您需要设置设备名称和uuid,然后保存。转到xcode并清理缓存,构建及其所有工作。

注意1:确保您的团队设置正确。

注意2:您可以通过将设备连接到Mac设备来获取uuid,然后单击iTunes,然后按安全标签,您将看到UUID。

这个答案也有帮助。


0

我确实尝试了上面所有的答案,但没有运气。之后,我重新启动了iPhone,问题似乎消失了。我知道它是如此愚蠢,但确实有效。上面的答案最有可能解决问题,但如果没有解决,请尝试重新启动iOS设备。


0

确保你:

1)为您的设备注册配置文件。

2)必须将设备添加到开发配置文件中并进行更新。

如果仍然遇到问题,请检查目标的构建设置。

确保你:

1)CODE_SIGNING_REQUIREDUser-Defined的设置为YES

在此处输入图片说明

2)检查Signing选项是否正确。如果问题仍然存在,请切换到“手动设置”,而不是自动进行。


0

遇到同样的问题,我们已经在Xcode项目,比方说,多种配置Debug-StagingDebug-Production。然后,我们将它们统一并仅使用一种配置Debug。但是旧的(不再存在的)卡在运行阶段的方案中,因此一旦您尝试运行,Xcode就会向您显示此消息。这是有道理的,因为根据配置在构建设置中设置了配置文件。

因此运行方案如下所示:

目标方案不正确

虽然项目配置是这样设置的。

项目配置

更改方案以使用项目中仍然可用的配置对我来说解决了这个问题。


0

我遇到了同样的问题(XCode 11),但是这里写的东西没有任何作用。

我的问题是我的手机上装有iOS Beta(13.3)。恢复后,一切再次正常。


想法: 也许设备也缓存了一些有关配置文件的信息,所以电话的出厂重置也可能会解决该问题?



0

我做了以下事情:

  1. 断开未安装应用程序的设备的连接
  2. 连接了另一台设备<它已安装在第二台设备上
  3. 一段时间后,连接了第一台设备,它开始工作了!

这很奇怪,但它对我有用,可能对其他人有用,并且可以避免沮丧。


0

终于,我弄清楚发生了什么...几乎花了我两个小时

我的情况是我手机的日期不正确。我忘记了更改手机日期。我想这会让我所有的配置文件都过期了...

因此,如果您尝试了所有这些答案,但没有任何效果。进入设置,检查手机的日期。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.