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

问题描述 投票:156回答:19

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

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

问题不仅限于我一直在研究的单个项目,因为它会影响来自不同签名团队的几个项目。

到目前为止,我已经尝试了以下内容:

  • 清洁项目
  • 清理派生数据
  • 卸载Xcode,删除与其相关的任何首选项和文件。
  • 在完全不同的Mac上安装Xcode
  • 使用不同设备进行测试
  • 在开发人员配置文件中禁用设备并让Xcode再次启用它。
  • 删除开发人员门户中的所有证书并重新创建它们
  • 取消选中并重新检查“自动管理签名”
  • 删除配置文件并让Xcode重新创建它
  • 在开发人员配置文件中创建手动配置文件

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

需要注意的是,除了我创建的手册之外,此处未列出任何配置文件:https://developer.apple.com/account/ios/profile/

我希望xcode生成的一个显示为所有其他客户端。

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

provisioning profile settings

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

ios xcode
19个回答
389
投票

今天我正在努力解决这个问题,这令人非常沮丧。现在,只需进入"File"> "Project Settings..."(或在某些情况下"Workspace Settings..."),然后从"Legacy Build System"下拉列表中选择"Build System"


0
投票

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


0
投票

在我的情况下,没有其他任何帮助,我做了以下:

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

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


0
投票

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


0
投票

似乎Apple修复了Xcode 10.2 beta 2 Release中的这个错误。

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/


0
投票

你只需要改变你的团队。在我的情况下工作


0
投票

在我厌倦了大部分解决方案之后,我发现它使它的工作没有任何问题,我解决了,然后去developer.apple.com然后account然后Certificates, identifiers & profiles我点击All下的Devices链接然后添加一个新设备。

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

注1:确保你的团队有道理。

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

这个答案也有帮助。


0
投票

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


0
投票

确保你:

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

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

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

确保你:

1)在CODE_SIGNING_REQUIREDUser-Defined被设置为YES

enter image description here

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


0
投票

遇到同样的问题,我们在Xcode项目中有多个配置,让我们说Debug-StagingDebug-Production。然后我们统一了那些并且只使用了一个配置Debug。但旧的(不再存在)被困在运行阶段的计划中,所以一旦你试图运行,Xcode就会向你展示这条消息。这是有道理的,因为配置配置文件是基于配置在构建设置中设置的。

所以运行方案看起来像这样:

Incorrect target scheme

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

Project configurations

更改方案以使用项目中仍然可用的配置是我解决此问题的原因。


-1
投票

我正在打开xcodej项目...我尝试使用工作区文件,然后就可以了。

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


77
投票

@Stephen为我解决了这个问题。我只需要去 - >文件 - > WorspaceSettings - > Build Settings(更改为“Legacy Build System”)enter image description here

enter image description here


26
投票

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

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

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

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

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

希望这将有助于未来的开发人员。


21
投票

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

但是,就我而言,经过数小时的头痛之后,由于测试项目没有有效的帐户来配置签名。之后,我选择了一个团队,在测试项目中使用自动管理签名进行配置。这个问题消失了。


17
投票

使用干净的构建文件夹(命令+ shift + K)和重建应用程序可以很快解决此问题。但是,自清理构建文件夹以来,构建时间将会增加。


4
投票

对我们的团队来说,没什我们花了几天时间,在答案和评论中尝试了上面提到的每一步。我们尝试在应用程序上使用XCode 10甚至XCode 9.2,这是多年以来在App Store上的应用程序。

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

在我们创建新证书和配置文件后,至少我们能够再次运送到App Store。但我们仍无法在真实设备上以发布模式测试我们的应用程序,这对于测试InApp购买是必要的。

简而言之:归档和提交效果很好,不在真实设备上运行!

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

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

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

虽然这只发生在我们公司的一个特定应用程序而不是所有其他应用程序上,但我们预计未来会遇到类似的问题,因为Apple的开发工具会让情况变得更糟......


2
投票

所以每个人都不会这样,但我认为无论如何我都会在这里发布,因为似乎没有任何相关的答案。

在我的情况下,我正在开发一个在ReactNative中开发的应用程序,我的问题是虽然我的签名在主应用程序目标上是正确的,但测试目标没有应用任何签名。 出于某种原因,React Native要求您的应用目标和测试目标都已签名,以便在设备上安装应用。 它确实在building for device的官方文档中指定了这一点,但它是我见过的唯一一个测试目标与应用程序一起构建的实例,用于除测试之外的任何其他内容。

要签署测试目标,请打开项目导航器(⌘1)并在顶部选择项目,转到项目设置。

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

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

对此归功于Leo Lei,他的回答让我头疼不已:https://stackoverflow.com/a/48657358/732844

顺便说一句,如果有人知道为什么反应原生要求你的测试目标与你的应用目标一起构建,他们会告诉我吗?我能想到的唯一原因是简化界面,因此反应可以构建一个应用程序,无需重建即可运行和测试,但我只是猜测那个。


1
投票

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

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


1
投票

你有没有改变你的开发设备?当我买了一部新的iPhone并且用我以前的设备给它起了同样的名字时,它发生在我身上。然而,干净的构建解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.