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

Posted

技术标签:

【中文标题】Xcode 10:找不到此可执行文件的有效配置文件【英文标题】:Xcode 10: A valid provisioning profile for this executable was not found 【发布时间】:2019-02-24 17:26:04 【问题描述】:

从昨天开始,我在尝试在我的设备上运行应用程序时遇到以下错误:

找不到此可执行文件的有效配置文件。"

这是在更新到 Xcode 10 之后。上周使用 Xcode 9 进行构建没有问题。我检查了有关该错误的其他讨论,但没有一个解决方案有效。

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

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

清洁项目

清理派生数据

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

在完全不同的 Mac 上安装 Xcode

使用不同的设备进行测试

在开发者配置文件中禁用设备并让 Xcode 再次启用它。

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

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

丢弃配置文件并让 Xcode 重新创建它

在开发人员配置文件中创建手动配置文件

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

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

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

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

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

【问题讨论】:

您是否在 Xcode 偏好设置中添加了开发者帐户? @AnkitJayaswal 多次,从未让它工作。然而,我能够通过降级到 9.4.1 来解决它,所以这个问题似乎与 Xcode 10 有关。您应该可以在一段时间内使用旧 Xcode 版本提交应用程序吧? 是的,您可以从 xcode 9 及其版本提交构建,直到 2019 年 3 月 developer.apple.com/ios/submit 我也尝试过使用 Xcode 10,但我没有遇到missing provisioning-profile 这样的问题。 您是否更改了您的 iPhone 日期超过了证书的到期数据?由于这个原因,我遇到了这个问题。 【参考方案1】:

您需要在设备上手动安装开发配置文件。

在 Xcode 中:

转到Window > Devices and Simulators:出现一个新窗口。 在左侧窗格中找到您连接的设备。右键单击它并选择Show Provisioning Profiles...:会出现一个新窗口。 手动添加您的开发配置文件。

在设备上重新构建应用程序。

【讨论】:

【参考方案2】:

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

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

您是否已分发您的应用程序?您需要切换回您的开发者资料,但不是在项目设置下的General中,而是在Build settings中。

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

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

Provisioning Profile 也是如此。它应该是您的开发配置文件,而不是您的分发配置文件。

【讨论】:

澄清一下(因为当我第一次阅读这个建议时,我被这个建议弄糊涂了):对 iOS 开发人员的发布更改仅在直接在连接的设备上进行测试时;在构建上传到 testflight/app store 时需要改回 iOS Distribution,对吗? 老实说:没有。我不必这样做。发生这种情况的一个可能原因可能是因为我必须再次设置证书,并且可能在开发之前“安装”了发行版。这只是我的猜测,但要回答您的问题:我仍然将它们设置为开发,并在存档构建以上传到 App Store 时选择了分发。 这为我解决了问题。我只是在尝试分析应用程序时遇到问题,它工作正常,我只是正常运行它。我有一个用于调试的开发人员帐户和一个用于发布的分发帐户。老实说,这对我来说似乎是一个 XCode/Profiling 错误。 让它工作了,但还需要一步。由于我正在处理系留 iPhone 上的测试,因此我不必担心进入 App Store 并设置我的“iOS 分发”证书。由于我正在进行开发,我认为只需要在 App Store 上设置“iOS 开发”证书。好吧,直到我同时拥有“iOS 开发”和“iOS 分发”证书后,它才起作用。 这对我有用,XCODE 10.2.1 为调试和发布添加了任何 IOS SDK 和任何模拟器【参考方案3】:

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

    清理project menu > Product > Clean Build Folder/Users/you user name/Library/Developer/Xcode/DerivedData

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

    再次运行pod install

【讨论】:

【参考方案4】:

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

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

【讨论】:

一般找不到设备管理 @SimonMoshenko 你解决这个问题了吗? 本教程帮助进入页面youtube.com/…【参考方案5】:

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

【讨论】:

【参考方案6】:

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

将我的目标设备从我的实体手机 更改为到模拟器为我解决了这个问题!

【讨论】:

这不是解决办法。【参考方案7】:

检查您是否使用的是 Ad Hoc Distribution 配置文件,而不是 App Store Distribution 配置文件,因此我收到此错误。

【讨论】:

【参考方案8】:

在您的 Mac 上打开 Keychain Access 并删除旧的过期 Apple 开发证书。这为我解决了这个问题。

【讨论】:

【参考方案9】:

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

【讨论】:

【参考方案10】:

最后,我弄清楚了发生了什么……几乎花了我 2 个小时

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

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

【讨论】:

【参考方案11】:

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

我做了什么来解决这个问题:

未配对设备(Xcode > Window > Devices And Simulators > 左键单击设备以取消配对设备。 重启 iPhone 清理构建文件夹(Xcode > 产品 > 清理构建文件夹) 清理派生数据(在 ../library/Developer/Xcode/DerivedData 中) 再次清理构建文件夹(Xcode > 产品 > 清理构建文件夹) 在设备上构建应用程序。

【讨论】:

在我的情况下,我使用这些步骤解决了这个问题,而没有取消配对设备。【参考方案12】:

我做了以下事情:

    断开未安装应用的设备 连接了另一个设备 连接第一台设备一段时间后,它就可以工作了!

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

【讨论】:

【参考方案13】:

对我来说,删除功能然后将其添加回来是可行的。

【讨论】:

【参考方案14】:

我的应用会部署到我的 iPhone 而不是我的手表。部署到手表会给出“找不到此可执行文件的有效配置文件”。错误。这是 XCode 版本 11.2.1 并使用免费的开发者帐户。

这是我将其部署到手表上的操作:

1) 我在 XCode 中删除了我的配置文件。我通过转到 Window -> Devices And Simulators 来做到这一点。然后右键单击 iPhone 名称并选择“显示配置文件”。从那里我可以删除文件

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

3) 做了一个“干净的构建文件夹”(产品 -> 干净的构建文件夹)

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

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

6) 从电脑上拔下手机

7) 重启电脑、手机和手表

8) 将手机插回电脑,并通过手机和手表上的“信任本机”提示。

9) 运行应用程序。成功了!

【讨论】:

我的苹果手表也有同样的问题,这对我有帮助。在此过程中,我还取消了配对并再次配对了我的苹果手表。谢谢!【参考方案15】:

我遇到了同样的问题(XCode 11),但这里写的没有任何效果。

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


想法: 也许设备也缓存了一些关于配置文件的信息,所以手机恢复出厂设置也可能解决它?

【讨论】:

【参考方案16】:

就我而言,设备日期时间设置为未来日期。 将日期设置更改为“自动”解决了这个问题。

【讨论】:

【参考方案17】:

确保配置文件来自您的 target 和 targetTests 来自同一团队

【讨论】:

谢谢!这是我在使用 React Native 时遇到的问题【参考方案18】:

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

【讨论】:

这也适用于我,因此我可以使用 Xcode 10 构建应用程序,而无需恢复到 Xcode 9。我向 App Store Conenct 提交了一个构建并能够将其发布到 TestFlight。因此,在问题得到正确解决之前,有几种解决方法可用。 Apple 有没有说明在提交应用程序时允许您使用旧版构建系统多长时间? 但这意味着什么?它有什么影响,我们怎么知道我们可以再次更改设置? 这适用于 Cordova 构建——出色的工作。显然 Cordova CLI 有一个参数要跳过:cordova build ios --buildFlag='-UseModernBuildSystem=0' 在此处查看更多信息:github.com/apache/cordova-ios/issues/407 文件下没有项目设置。我必须点击 Workspace Settings,然后从 Shared and Per-User Workspace Settings 的 Build System 下拉菜单中选择“Legacy Build System”。 不适合我 :((。我的 Xcode 版本是 10.1。我的 iPhone OS 版本是 12.1【参考方案19】:

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

原来我在我的配置文件中为每个目标选择了不同的团队。

修复它:

清理构建文件夹

确保所有可能的目标都使用同一个团队。请参阅常规选项卡下的个人资料签名。

如果不是对所有目标使用相同的团队,请在切换到构建目标之前清理

选择了不同的团队。

【讨论】:

【参考方案20】:

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

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

采取上述步骤的原因是为了删除旧的配置文件,这些配置文件搞砸了构建过程。

【讨论】:

只有这个答案解决了我的问题。谢谢! 工作。谢谢:)【参考方案21】:

我已按照上述所有步骤操作,但最终对我不起作用。我创建了重复的目标,它工作正常。我不知道出了什么问题,也许是缓存问题

【讨论】:

【参考方案22】:

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

所以运行方案是这样的:

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

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

【讨论】:

【参考方案23】:

确保你:

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

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

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

确保你:

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

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

【讨论】:

【参考方案24】:

所以不是每个人都这样,但我想我还是会把它贴在这里,因为似乎没有任何与之相关的答案。

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

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

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

重新构建您的应用,现在应该可以成功安装。

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

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

【讨论】:

这为我解决了其他问题。感谢您发帖。 非常感谢您指出这一点。我重命名了项目并更改了团队。测试目标有一个旧的团队名称。我已经挣扎了好几个小时了。再次感谢 头痛数小时后,这为我解决了问题。非常感谢! 在我的情况下,我也在使用 react native,但只需要将目标和测试目标的代码签名设置为自动,它就可以在设备上运行。这样可以确保连接的设备生成了证书和配置文件【参考方案25】:

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

【讨论】:

【参考方案26】:

在我厌倦了大部分解决方案之后,我发现它可以正常工作,对我来说没有任何问题,它通过转到 developer.apple.com 然后 account 然后 Certificates, identifiers & profiles 解决,然后我点击 All 链接下 @987654325 @ 然后添加一个新设备。

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

注意 1:确保您的团队设定为真理。

注意2:你可以通过将设备连接到你的mac设备来获取uuid,然后点击iTunes,然后点击安全标签,你会看到UUID。

这个答案也很有帮助。

【讨论】:

【参考方案27】:

你只需要改变你的团队。在我的情况下,它有效

【讨论】:

【参考方案28】:

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 在存档的签名中包含一个安全时间戳。作为一个 结果,您现在可以将存档的应用程序提交给 Apple 的公证服务 使用 xcrun altool 无需先用 a 重新签名 时间戳。 (44952627)

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

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

修复了精简的 .ipa 文件没有被签名的问题 从管理器导出。 (45761101)

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

【讨论】:

太好了。但如果您要为应用商店构建应用,如果您使用的是测试版软件,它不会让您上传 ipa【参考方案29】:

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

【讨论】:

【参考方案30】:

就我而言,在没有其他帮助的情况下,我做了以下事情:

    将 AppID 更改为新的 XCode 自动生成新的配置文件 在真实设备上运行应用程序 -> 现在可以运行了 将AppID改回原来的id 作品

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

【讨论】:

以上是关于Xcode 10:找不到此可执行文件的有效配置文件的主要内容,如果未能解决你的问题,请参考以下文章

应用程序安装失败:找不到此可执行文件的有效配置文件

ios 使用发布配置构建到设备“找不到此可执行文件的有效配置文件。”

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

找不到此可执行文件的有效配置文件...(再次)

转移应用程序后获取“找不到此可执行文件的有效配置文件”

在调试模式下找不到此可执行文件的有效配置文件