从昨天开始,当我试图在我的设备上运行一个应用程序时,我一直得到以下错误:
未找到此可执行文件的有效配置文件。
这是在更新到Xcode 10之后。上周使用Xcode 9进行构建时没有出现问题。我已经检查了其他关于错误的讨论,但没有一个解决方案是有效的。
这个问题并不局限于我一直在做的一个项目,因为它影响了来自不同签约团队的几个人。
到目前为止,我尝试了以下方法:
Cleaning project
Cleaning derived data
Uninstalling Xcode, deleting any preferences and files related to it.
Installing Xcode on a completely different Mac
Testing with different devices
Disabling device in developer profile and letting Xcode enable it again.
Deleting all certificates in the developer portal and recreating them
Unchecking and rechecking "Automatically manage signing"
Trashing the provisioning profile and letting Xcode recreate it
Creating a manual provisioning profile in the developer profile
该项目不包含测试,因此该目标上的签名设置错误不会出现问题。“日期/时间”设置为“自动”
值得注意的一点是,这里没有列出配置文件,除了我创建的手动配置文件:https://developer.apple.com/account/ios/profile/
我希望xcode生成一个显示,因为他们做的所有其他客户端。
下面是我目前正在使用的签名设置
我还没有尝试过将Xcode降级到旧版本,看看是否有效。除此之外,我不知道下一步该尝试什么。
对我们的团队来说,什么都没用。我们花了几天时间,尝试了上面回答和评论中提到的每一步。我们尝试了XCode 10,甚至XCode 9.2在应用程序上,这是在应用程序商店多年前。
该问题始于升级到MacOS Mojave后。不幸的是,回到HighSierra并没有什么帮助。
至少在我们创建了新的证书和配置文件后,我们能够再次将其发布到App store中。但我们仍然无法在真实设备上以发布模式测试我们的应用,这是测试inapp购买的必要条件。
简而言之:存档和提交工作得很好,在真正的设备上运行不行!
几个开发者,几个设备,macbook, XCode版本....
最后,为了能够再次在真实设备上进行测试,我们不得不改变AppID。
因此,我们现在运行两个不同的项目:一个是使用真正的AppID发布到TestFlight/AppStore,另一个是使用另一个AppID进行开发。
虽然这种情况只会发生在我们公司的一个特定应用上,而不是所有其他应用上,但我们预计未来会遇到类似的问题,因为苹果的开发工具会让情况变得更糟……
苹果似乎在Xcode 10.2 beta 2版本中修复了这个错误。
https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_beta_2_release_notes
Signing and Distribution Resolved Issues
When you’re building an
archive of a macOS app and using a Developer ID signing certificate,
Xcode includes a secure timestamp in the archive’s signature. As a
result, you can now submit an archived app to Apple’s notary service
with xcrun altool without first needing to re-sign it with a
timestamp. (44952627)
When you’re building an archive of a macOS app, Xcode no longer
injects the com.apple.security.get-task-allow entitlement into the
app’s signature. As a result, you can now submit an archived app to
Apple’s notary service using xcrun altool without first needing to
strip this entitlement. (44952574)
Fixed an issue that caused the distribution workflow to report
inaccurate or missing information about the signing certificate,
provisioning profile, and entitlements used when exporting or
uploading an app. (45761196)
Fixed an issue where thinned .ipa files weren’t being signed when
exported from the Organizer. (45761101)
Xcode 10.2 beta 2 Release可以在这里下载:
https://developer.apple.com/download/
所以这并不适用于每个人,但我想我无论如何都要把它贴在这里,因为似乎没有任何与之相关的答案。
In my case I was working on an app that was being developed in ReactNative, my issue was that although my signing was correct on the main app target the test target did not have any signing applied to it.
For some reason React Native requires that both your app target and your test target are signed in order to install the app on a device.
It does specify this in the official documentation on building for device however its the only instance I have ever seen where the test target is built alongside the app for anything other than testing.
为了签署您的测试目标,通过打开项目导航器(⌘1)进入您的项目设置,并在顶部选择您的项目。
在主编辑器中,在Targets下面选择你的主应用目标(应该与你的项目名称相同),并确保签名是正确的,然后选择测试目标(可能就在你的主应用目标下面,它应该是相同的名称,并附加了Tests),并确保它以相同的方式签名。
重新构建应用程序,现在应该可以成功安装了。
这要归功于Leo Lei,他的回答让我很头疼:https://stackoverflow.com/a/48657358/732844
顺便说一句,如果有人知道为什么react native要求你的测试目标与你的应用目标一起构建,他们能告诉我吗?我能想到的唯一原因是简化界面,这样react就可以构建一个应用程序,不需要重新构建就可以运行和测试,但我只是猜测。
我的应用可以部署到我的iPhone上,但不能部署到我的手表上。部署到手表将给出“未找到此可执行文件的有效配置文件”错误。这是XCode版本11.2.1,使用免费的开发人员帐户。
以下是我把它部署到我的手表上的方法:
1)我删除了XCode中的配置文件。我通过到窗口->设备和模拟器来做到这一点。然后右键点击iPhone名称,选择“Show Provisioning Profiles”。从那里我可以删除文件
2)在“设备和模拟器”界面,我还从“已安装的应用程序”部分删除了我的应用程序。
3)创建一个“清洁构建文件夹”(Product ->清洁构建文件夹)
4)在“构建设置”->“签名部分”,我确保每个目标(iPhone,测试和手表)都有相同的设置(开发团队,代码签名风格,配置配置文件设置为自动等)。
5)确保~/Library/MobileDevice/Provisioning Profiles目录为空。
6)拔掉电脑上的手机插头
7)重启电脑、手机和手表
8)将手机插回电脑,通过手机和手表上的“信任这台机器”提示。
9)运行应用程序。