从昨天开始,我在尝试在我的设备上运行应用程序时遇到以下错误:
找不到此可执行文件的有效配置文件。”
这是在更新到 Xcode 10 之后。上周使用 Xcode 9 构建工作没有问题。我已经检查了有关该错误的其他讨论,但没有一个解决方案有效。
这个问题不仅限于我一直在从事的一个项目,因为它影响了来自不同签约团队的几个项目。
到目前为止,我已经尝试了以下方法:
清洁工程
清理派生数据
卸载 Xcode,删除与其相关的任何首选项和文件。
在完全不同的 Mac 上安装 Xcode
使用不同的设备进行测试
在开发人员配置文件中禁用设备并让 Xcode 再次启用它。
删除开发人员门户中的所有证书并重新创建它们
取消选中并重新选中“自动管理签名”
丢弃配置文件并让 Xcode 重新创建它
在开发人员配置文件中创建手动配置文件
该项目不包含测试,因此该目标上的错误签名设置不会有问题。日期/时间设置为自动
需要注意的一点是,这里没有列出任何配置文件,除了我创建的手动配置文件:https://developer.apple.com/account/ios/profile/
我希望生成的 xcode 会像所有其他客户端一样显示出来。
以下是我当前使用的签名设置
https://i.stack.imgur.com/vKsC8.png
我还没有尝试将 Xcode 降级到旧版本,看看是否可行。除此之外,我不知道接下来要尝试什么。
missing provisioning-profile
的此类问题。
我今天正在为此苦苦挣扎,这非常令人沮丧。现在,只需进入 "File"
> "Project Settings..."
(或在某些情况下为 "Workspace Settings..."
),然后从 "Build System"
下拉菜单中选择 "Legacy Build System"
。
[编辑] Note 2020:我曾经手动签署这个项目。在我自动签名的项目中,我从来没有遇到过这个问题。 [/编辑]
我遇到了同样的问题,花了几个小时寻找答案、删除配置文件、清理项目等等。
您是否已分发您的应用程序?您需要切换回您的开发人员配置文件,但不是在项目设置下的常规中,而是在构建设置中。
在签名下,查看您的代码签名身份。
确保您的 Debug 和 Release 都设置为您的 iOS Developer,而不是 iOS Distribution;或您的 iOS 开发人员配置文件(如果未设置为自动值)。
https://i.stack.imgur.com/it4Aa.png
https://i.stack.imgur.com/GKnYK.png
https://i.stack.imgur.com/edQ5L.png
我已经尝试了上述所有解决方案。
但是,在我的情况下,经过数小时的头痛,这是因为测试项目没有用于配置签名的有效帐户。在我选择了一个团队在测试项目中提供自动托管签名之后。这个问题就消失了。
使用干净的构建文件夹(command + shift + K)并重建应用程序可以很快解决这个问题。但是,由于您清理了构建文件夹,构建时间将会增加。
所以这对每个人来说都不是这样,但我想我还是会把它贴在这里,因为似乎没有任何与之相关的答案。
就我而言,我正在开发一个在 ReactNative 中开发的应用程序,我的问题是,尽管我在主应用程序目标上的签名是正确的,但测试目标没有应用任何签名。
出于某种原因 React Native要求您的应用目标和测试目标都经过签名才能在设备上安装应用。
它确实在 building for device 的官方文档中指定了这一点,但它是我见过的唯一一个测试目标在哪里的实例与应用程序一起构建,用于测试以外的任何内容。
为了签署您的测试目标,通过打开项目导航器 (⌘1) 转到您的项目设置,然后在顶部选择您的项目。
在主编辑器中,在 Targets 下选择您的主应用程序目标(应该与您的项目同名)并确保签名正确,然后选择测试目标(可能就在您的主应用程序目标下,它应该与 Tests 同名附加)并确保其以相同的方式签名。
重建您的应用程序,它现在应该可以成功安装。
这要归功于 Leo Lei,他的回答让我很头疼:https://stackoverflow.com/a/48657358/732844
顺便说一句,如果有人知道为什么 react native 要求您的测试目标与您的应用程序目标一起构建,他们可以告诉我吗?我能想到的唯一原因是简化界面,因此 react 可以构建单个应用程序并在不需要重建的情况下进行运行和测试,但我只是猜测那个。
就我而言,以下是我解决问题的步骤:
转到此文件夹: ~/Library/MobileDevice/Provisioning Profiles/ Remove all the provisioning profile In Xcode 10 menu > Product > Clean Build Folder In Xcode 10 menu > Xcode > Preferences > Account > Download Manual Profiles In Xcode 10 menu > Product >构建/存档
采取上述步骤的原因是删除了破坏构建过程的旧配置文件。
对于我们的团队来说,没有任何帮助。我们花了几天时间尝试了上面在答案和评论中提到的每一步。我们在一个应用程序上尝试了 XCode 10 甚至 XCode 9.2,该应用程序多年来一直在 App Store 上。
该问题在升级到 MacOS Mojave 后开始出现。不幸的是,当时回到 HighSierra 并没有帮助。
至少在我们创建了新的证书和配置文件之后,我们能够再次发送到 App Store。但是我们仍然无法在真实设备上以发布模式测试我们的 App,这是测试 InApp-purchases 所必需的。
简而言之:存档和提交效果很好,不能在真实设备上运行!
几个开发人员,几个设备,macbooks,XCode 版本......
最后,我们必须更改 AppID 才能再次在真实设备上进行测试。
因此,我们现在运行两个不同的项目:一个用于使用真实 AppID 发送到 TestFlight/AppStore,另一个用于开发目的,使用另一个 AppID。
虽然这只发生在我们公司的一个特定应用程序上而不是所有其他应用程序上,但我们预计将来会遇到类似的问题,因为苹果的开发工具会变得更糟......
我已经按照上述所有步骤进行操作,但最终对我不起作用。我创建了重复的目标,它工作正常。我不知道出了什么问题,也许是缓存内存问题
https://i.stack.imgur.com/0PtOT.png
在我切换到我的 XCTest 单元测试目标然后回到项目运行时目标后,我在 Xcode 10.3 中出现了这个问题。
事实证明,我在我的配置文件中为每个目标选择了不同的团队。
要解决这个问题 :
清理构建文件夹
确保所有可能的目标都使用同一个团队。请参阅常规选项卡下的个人资料签名。
如果没有对所有目标使用相同的团队,请在切换到选择了不同团队的构建目标之前进行清理。
确保供应配置文件来自您的目标和目标测试中的同一团队。
就我而言,设备日期时间设置为未来日期。将日期设置更改为“自动”解决了这个问题。
今天我在我的设备上安装应用程序时遇到了同样的错误。更新到新的 xCode 11.4 后出现问题。
我做了什么来解决这个问题:
未配对的设备(Xcode > Window > Devices And Simulators > Left click device to unpair device.
重启 iPhone
清理构建文件夹(Xcode > 产品 > 清理构建文件夹)
清理派生数据(在 ../library/Developer/Xcode/DerivedData 中)
再次清理构建文件夹(Xcode > 产品 > 清理构建文件夹)
在设备上构建应用程序。
我在同一个问题上苦苦挣扎,我的解决方案是登录开发者帐户。更新到 Xcode 10 后,所有帐户都已注销。
使用菜单“Xcode -> Preferences ... -> Accounts”并确保您使用的所有帐户都已登录,以便可以访问配置文件。
最后,我弄清楚了发生了什么……几乎要花我 2 个小时
我的情况是,我手机的日期不正确。我忘了我更改了手机的日期。我想这会使我所有的配置文件都过期......
因此,如果您尝试了所有这些答案,但没有任何效果。转到设置,检查手机的日期。
您需要在设备上手动安装开发配置文件。
在 Xcode 中:
转到窗口 > 设备和模拟器:出现一个新窗口。
在左侧窗格中找到您连接的设备。右键单击它并选择 Show Provisioning Profiles...:出现一个新窗口。
手动添加您的开发配置文件。
在设备上重新构建应用程序。
您是否可能更改了开发设备?当我买了一部新 iPhone 并给它取了与我以前的设备相同的名字时,就发生了这种情况。然而,一个干净的构建解决了这个问题。
你只需要改变你的团队。就我而言,这有效
我的应用程序会部署到我的 iPhone 但不是我的手表。部署到手表会给出“找不到此可执行文件的有效配置文件”。错误。这是 XCode 版本 11.2.1 并使用免费的开发者帐户。
这是我为将其部署到手表上所做的工作:
1) 我在 XCode 中删除了我的配置文件。我通过转到 Window -> Devices And Simulators 来做到这一点。然后右键单击 iPhone 名称并选择“显示配置文件”。从那里我可以删除文件
2)在设备和模拟器屏幕中,我还从“已安装的应用程序”部分删除了我的应用程序。
3)做了一个“干净的构建文件夹”(产品->清洁构建文件夹)
4)在“构建设置”->“签名部分”中,我确保每个目标(iPhone、测试和手表)具有相同的设置(开发团队、代码签名样式、配置文件设置为自动等)。
https://i.stack.imgur.com/l4OIh.png
5) 确保 ~/Library/MobileDevice/Provisioning Profiles 目录为空。
6)从电脑上拔下手机
7) 重启电脑、手机和手表
8) 将手机插回电脑,并通过手机和手表上的“信任本机”提示。
9)运行应用程序。有效!
我做了以下事情:
断开未安装应用程序的设备连接了不同的设备<它安装在第二台设备上一段时间后连接第一台设备并且它工作!
这很奇怪,但它对我有用,可能对其他人有用,并节省了挫折感。
请注意,接受的答案会阻止将构建上传到 App Store Connect。
在 Mac 上打开 Keychain Access 并删除旧的过期 Apple 开发证书。这为我解决了这个问题。
检查您是否使用 Ad Hoc Distribution 配置文件而不是 App Store Distribution 配置文件,因此我收到此错误。
这需要很长时间,我们完成了上述所有解决方案,但它们根本不起作用,因此我们的团队决定删除 Pod
文件并再次运行 pod install
。最后,我们的OTA上传了安装在用户设备上的ipa。最佳解决方案
clean project menu > Product > Clean Build Folder and /Users/{you user name}/Library/Developer/Xcode/DerivedData 进入你的项目目录并删除 Podfile.lock ,Pods folder,pod_***.framework 再次运行 pod install
我使用的是 Xcode 13.3 swift 5,在我的情况下,只有在设备/iPhone 上进行分析会引发此错误,我执行了以下操作:
1- 转到项目 edit scheme
https://i.stack.imgur.com/IpgCz.png
2- 然后转到 profile
标签 info
标签,然后选择 building configuration
debug
https://i.stack.imgur.com/UzreH.jpg
3- 运行分析命令 ⌘+i
就我而言,在没有其他帮助的情况下,我做了以下事情:
将 AppID 更改为新的 XCode 自动生成的新配置文件在真实设备上运行应用程序 -> 现在它已经工作 将 AppID 更改回原始 ID 工作
在此之前,我已经尝试了这里提到的每一步。但只有这有帮助。
对我来说,即使分发证书和配置文件可用于 Xcode,在分发过程中选择自动管理签名也会使其失败。我做了以下。如前所述,我创建了一个新的分发证书和配置文件,然后在分发过程中手动选择了证书和配置文件以及 Voilaaaa。还要确保我使用的是最新版本 10.1。
Apple 似乎在 Xcode 10.2 beta 2 Release 中修复了这个错误。
https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_beta_2_release_notes
签名和分发已解决的问题 当您构建 macOS 应用程序的存档并使用 Developer ID 签名证书时,Xcode 在存档的签名中包含一个安全时间戳。因此,您现在可以使用 xcrun altool 将存档的应用程序提交给 Apple 的公证服务,而无需首先使用时间戳重新签名。 (44952627) 当您构建 macOS 应用程序的存档时,Xcode 不再将 com.apple.security.get-task-allow 权利注入应用程序的签名中。因此,您现在可以使用 xcrun altool 将存档的应用程序提交给 Apple 的公证服务,而无需先剥夺此权利。 (44952574) 修复了导致分发工作流报告有关导出或上传应用程序时使用的签名证书、配置文件和权利的信息不准确或缺失的问题。 (45761196) 修复了从 Organizer 导出时未对精简的 .ipa 文件进行签名的问题。 (45761101)
Xcode 10.2 beta 2 Release 可以在这里下载:https://developer.apple.com/download/
在我厌倦了大部分解决方案后,我发现它可以正常工作,对我来说没有任何问题,它通过转到 developer.apple.com
然后 account
然后 Certificates, identifiers & profiles
解决,然后我点击 Devices
下的 All
链接,然后添加新设备。
然后您需要设置设备名称和uuid,然后保存。转到 xcode 并清理缓存、构建和所有工作正常。
注意 1:确保您的团队设置真理。
注意 2:您可以通过将设备连接到您的 mac 设备来获取 uuid,然后单击 iTunes,然后按安全标签,您将看到 UUID。
这个答案也很有帮助。
我确实尝试了上面所有的答案,但没有运气。之后我重新启动我的 iPhone,问题似乎消失了。我知道这很愚蠢,但它奏效了。上面的答案很可能解决了问题,但如果没有,请尝试重新启动您的 iOS 设备。