Xcode 8: 找不到适用于此可执行文件的有效配置文件

45

我知道这里有其他类似的问题,但我已经按照他们的解决方案操作了,但仍然收到这个错误信息。

  • 我有一个有效的苹果开发者账户,并且程序处于活动状态。

  • 我尝试使用新的/全新的Bundle ID进行托管和非托管的配置文件(这会重新创建配置文件)。

  • 我尝试过这个:调试模式下找不到此可执行文件的有效配置文件

  • 我也尝试过这个:XCode :7 应用安装失败 :找不到此可执行文件的有效配置文件

  • 我已从手机中删除了任何旧版本的应用程序。

  • 我确认我的设备ID与Xcode中的开发者门户网站上的设备ID相同(对于手动配置文件管理也很有用)

  • 我甚至因为绝望而尝试了另一个开发者ID,但仍然出现了相同的错误。

  • 即使使用有效的发布证书构建发布方案时,我仍然会遇到此错误。

我已经花了很多时间来尝试解决这个问题,现在我希望有人能够感同身受并真正解决这个问题。
更新:为了方便起见,添加了截屏。
更新2:我放弃了尝试解决这个问题,我创建了一个新项目,并将源文件复制到新项目中,现在它可以工作了。显然,在之前的项目中,项目配置/设置文件中的某些内容出现了故障,没有明显的修复方法。我将保持这个问题的开放状态,也许最终会有人提供解决方案。我有我的旧“不工作”的项目,所以会继续尝试,只是出于好奇。

Current Settings

在这个错误信息之前,会显示构建成功

Error Message

Device ID - matches profiles

List of profiles on device


1
抱歉,我知道这一定很令人沮丧,但是你没有提供足够的信息。你提到了你尝试过的内容,但这并不能帮助我们确定问题所在。也许可以添加一些错误的屏幕截图或目标的“常规”选项卡。 - picciano
尝试访问此链接:https://dev59.com/yFkS5IYBdhLWcg3wlnvg - Guru
抱歉@picciano,我已经尽可能添加了详细信息。正如您从屏幕截图中所看到的,我正在使用托管配置文件,但我已经尝试手动操作(您将在设备配置文件列表中看到旧的prov配置文件)。 - Donald Jackson
@Guru - 我没有构建二进制文件的问题,它可以成功构建,但无论我尝试什么,它都无法安装在我的设备上。 - Donald Jackson
2
令人沮丧。我的一个项目也开始出现这种情况了。尝试了所有方法,现在正在创建一个新项目来从旧项目中复制。 :P - Ozeetee
显示剩余3条评论
20个回答

66

注意!

谁应该阅读

如果您之前使用的是"个人团队"并且现在要切换到付费团队,则如果您没有更新其他目标,则会看到此错误。

原因

由于我正在使用react-native,所以我碰巧有一个测试目标(即名为appTests的目标),仅在一个目标中切换团队是不够的,会导致此错误。这个错误没有提供足够的信息来让你知道哪个目标出了问题,因此需要花费很长时间进行调试。

解决方案

1)在Xcode 9上,转到每个目标并更新团队!

2)不幸的是,从我的经验来看,下一步并不是非常可靠,您可能需要尽力清除缓存。

3)通过使用停止按钮停止每个正在运行的程序/方案。

4)转到“产品”->“清理”,并清理您使用的每个方案。

5)退出并重新启动Xcode

6)再次运行,希望它可以正常工作!如果不行,那么可能仍然存在某些缓存。


2
太棒了!!!我花了将近一天的时间来解决这个错误。非常感谢! - brunovianarezende
2
在Xcode 9中,进入每个目标并更新团队!+1 - Stanislau Buzunko
2
谢谢!最后的提示是,测试仍然使用了错误的配置文件。 - Torben
这应该是最好的答案。 - Dody
1
在修正目标后,我只需执行“产品”>“清理构建文件夹”,然后问题就解决了。 - bluegreen
显示剩余2条评论

52

如果您的发布方案设置为使用应用商店证书和配置文件(我假设您的发布方案是这样的),则无法安装已使用应用商店分发配置文件和证书签名的构建。如果您尝试安装,它将无法在设备上安装。您需要使用开发配置文件或企业分发配置文件来安装测试设备上的应用程序。iOS分发证书仅可用于构建将通过App Store安装的应用程序。


好的,你明确提到了你的发布计划。你能插上设备并使用Xcode 8的自动代码签名来运行它吗?你不能使用自动代码签名构建并将构建加载到设备上。为了让Xcode将设备添加到预配文件中,你必须尝试从Xcode构建到设备。当你这样做的时候,Xcode会将设备标识符添加到预配文件中。 - wottle
是的,我就是这样尝试的,看屏幕截图 :) - Donald Jackson
你可以展开它,查看下面使用的私钥签名吗? - wottle
在Xcode 9中,我使用了项目->常规->签名->“自动管理签名”复选框。我曾经添加到团队的唯一预配资料就是这个答案所说的:应用商店预配资料。点击此框会促使XCode获取所需的内容,然后我就能够像魅力一样在设备上进行调试了。 - bcr
兄弟...你救了我...谢谢你。 - Nandini Prashant Barve
显示剩余6条评论

27

这是Xcode的冲突。我解决这个问题的方法是删除Xcode的派生数据。

Xcode > 首选项 > 位置

您会看到 DerivedData 路径右侧的箭头,点击后会在Finder中打开该文件夹。只需删除文件夹中的所有内容即可。

更新: 根据 Chandler 的评论,请检查是否需要删除测试目标。


1
你如何删除测试目标?另外,你不需要测试目标吗?听起来很重要。你可以在删除后重新创建它吗? - Dror Bar

11

我通过将Xcode 10的构建系统更改为旧版来解决了它。

文件 > 工作区设置 > 设置构建系统为“传统构建系统”


适用于我的 Cordova 项目。 - Sven van de Scheur
可以确认这个。有什么想法为什么这个有效而另一个无效? - Rolf Beh
同样适用于我的 Cordova/Ionic 项目。 - Ondra Koupil

10

当我为myProjectTests添加正确的签名后,它就起作用了。这是我在尝试各种解决方案五个小时后做的最后一件事。


2
这个答案很重要,因为它已经是最高投票的答案了。 - Milk
1
它救了我的一天。 - XuDong Wu
1
谢谢,它救了我的一天。 - GirginSoft
2
作为一个新手,我不知道“myProjectTests”是什么,也不知道“正确”的签名应该是什么,也不知道如何添加它? - Dronz

7

我尝试了很多方法,但是直到我取消测试的自动签名选项后才成功。


4

我清除了xcodeproj/project.pbxproj文件中的DEVELOPMENT_TEAM和DevelopmentTeam,这对我有用。


3

我正在使用8.2.1版本,也遇到了同样的错误。删除原始项目文件夹并重新创建项目可以无缝地解决问题。我核实了所有签名和配置证书与上一个项目完全相同。我不确定问题出在哪里,但我认为你的损坏文件假设是准确的。


3
在我的情况下,问题出现在我两个月前手动设置了iPhone上的时间。但当我改为自动设置时间时,它能正常工作。
设置 -> 通用 -> 日期与时间 -> 自动设置时间

3
在我的情况下,这是与开发团队的冲突有关。
我通过打开我的xcodeproj/project.pbxproj并清空以下变量来解决了这个问题:
DevelopmentTeam
DEVELOPMENT_TEAM

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