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

时间:2018-09-20 11:46:20

标签: ios xcode

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

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

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

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

  • 清洁项目

  • 清理派生数据

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

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

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

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

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

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

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

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

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

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

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

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

provisioning profile settings

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

38 个答案:

答案 0 :(得分:364)

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

答案 1 :(得分:70)

@Stephen tks这对我解决了。我只需要去->文件-> WorspaceSettings->构建设置(在此处更改为“旧版构建系统”)enter image description here

enter image description here

答案 2 :(得分:24)

我遇到了同样的问题,花了数小时来寻找答案,删除个人资料,清理项目等等。

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

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

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

供应配置文件也是如此。它应该是您的开发资料,而不是您的发行资料。 enter image description here

希望这会帮助有需要的未来开发人员。

答案 3 :(得分:15)

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

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

答案 4 :(得分:14)

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

答案 5 :(得分:4)

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

我为解决此问题所做的事情:

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

答案 6 :(得分:4)

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

结果是,在我的配置文件中为每个目标选择了一个不同的团队。

要修复它:

  • 清理构建文件夹
  • 确保所有可能的目标都使用同一团队。请参阅常规标签下的配置文件签名。
  • 如果并非对所有目标都使用同一团队,请先进行清洁,然后再使用

    选择了不同的团队。

答案 7 :(得分:2)

所以不是每个人都这样,但我想还是应该在这里发布它,因为似乎没有任何答案。

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

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

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

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

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

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

答案 8 :(得分:2)

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

enter image description here

答案 9 :(得分:2)

对于我来说,这是解决问题的步骤:

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

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

答案 10 :(得分:2)

确保预配置文件来自目标和目标测试中的来自同一团队

答案 11 :(得分:2)

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

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

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

简而言之:存档和提交工作正常,不能在真实设备上运行!

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

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

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

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

答案 12 :(得分:1)

在我的情况下,设备日期时间设置为将来的日期。 将日期设置更改为“自动”可解决此问题。

答案 13 :(得分: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

完成

答案 14 :(得分:1)

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

这是我将其部署到手表上的步骤:

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

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

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

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

build settings details

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

6)从计算机上拔下电话

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

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

9)运行应用程序。奏效了!

答案 15 :(得分:1)

我做了以下事情:

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

这很奇怪,但它对我有用,可能对其他人有用,并省去了挫败感。

答案 16 :(得分:1)

我也遇到了同样的问题,我的解决方案是登录到开发者帐户。更新到Xcode 10后,所有帐户都被注销。

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

答案 17 :(得分:1)

您可能要更换显影设备了吗?当我买了一部新的iPhone并给它与以前的设备同名时,这件事发生了。但是,干净的版本可以解决此问题。

答案 18 :(得分:0)

我尝试了所有这些线程。 最终帮助禁用/启用自动管理签名,将Bundle标识符重命名为其他名称,运行,重新命名为原始的Bundle Indentifier和Voila,它神奇地开始工作!

答案 19 :(得分:0)

我已经尝试了所有其他答案,但(令人惊讶的是)没有一个对我有用。最后,我认为我的开发帐户必须被设备“信任”才能运行。

这可以在您的 iOS 设备中的 Settings > General > Device Management > Developer App 下进行配置。您应该确保您的帐户被标记为受信任。

答案 20 :(得分:0)

我只是从 Apple Developer 禁用我的设备然后问题解决了。 (在 Xcode 12.4 上测试了很多次)

答案 21 :(得分:0)

我不得不更改我的团队来为测试配置配置文件。和

我的目标设备从我的实体手机 改为模拟器 为我修复了它!

答案 22 :(得分:0)

检查您是否正在使用临时分发配置文件,而不是使用App Store分发配置文件,因此,我收到此错误。

答案 23 :(得分:0)

在Mac上打开“钥匙串访问”,然后删除旧的过期的Apple Development证书。这为我解决了这个问题。

答案 24 :(得分:0)

最后,我知道发生了什么...几乎要花我2个小时

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

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

答案 25 :(得分:0)

,或者还将每个用户的工作空间设置以及共享的工作空间设置更改为新的构建系统 like this

答案 26 :(得分:0)

经过一连串的试验和错误,我发现一个简单的修复方法如下:-

选择手动代码签名,并将调试和发布证书都设置为开发证书,即:-使用开发证书进行调试和发布,然后尝试在设备上再次运行该应用程序。

答案 27 :(得分:0)

确保您:

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

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

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

确保您:

1)CODE_SIGNING_REQUIRED中的User-Defined设置为YES

enter image description here

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

答案 28 :(得分:0)

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

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

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

答案 29 :(得分:0)

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

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


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

答案 30 :(得分:0)

我正在打开xcodej项目...我尝试使用工作区文件,但它不能正常工作。

至少那解决了我的问题之一哈哈

答案 31 :(得分:0)

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

答案 32 :(得分:0)

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

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

  

签名和分发已解决的问题

     
    

当您建立一个     MacOS应用程序的存档,并使用开发者ID签名证书,     Xcode在档案库签名中包含安全时间戳。作为一个     结果,您现在可以将存档的应用程序提交给Apple的公证服务     使用xcrun altool,而无需先使用     时间戳记。 (44952627)

         

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

         

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

         

解决了以下问题:稀疏的.ipa文件没有在签名时被签名     从组织者导出。 (45761101)

  

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

答案 33 :(得分:0)

您只需要更改团队。就我而言,这有效

答案 34 :(得分:0)

在我厌倦了大多数解决方案之后,我发现它对我没有任何问题,可以解决该问题,请先依次转到developer.apple.com然后依次选择accountCertificates, identifiers & profiles,然后单击{ All下的{1}}链接,然后添加新设备。

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

注1:确保您的团队设置了真理。

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

此答案也有帮助。

答案 35 :(得分:0)

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

答案 36 :(得分:0)

遇到相同的问题,我们在Xcode项目中有多个配置,例如select t.*, sum(output) over (partition by customer order by year, month) from t; Debug-Staging。然后,我们将它们统一并仅使用一种配置Debug-Production。但是旧的(不再存在的)卡在运行阶段的方案中,因此一旦您尝试运行,Xcode就会向您显示此消息。这是有道理的,因为根据配置在构建设置中设置了配置文件。

运行方案如下:

Incorrect target scheme

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

Project configurations

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

答案 37 :(得分:-1)

请注意,接受的答案会阻止将构建版本上传到App Store Connect。

相关问题