Xcode 8 “应用程序没有有效的签名”

44

Xcode 8会抛出以上错误,尽管配置文件似乎已经设置好了:

应用安装失败。该应用程序没有有效的签名

如何解决?

10个回答

80

看起来是Xcode 8的一个bug。通过按下Command+Shift+K或者Product -> Clean清理项目可以解决它。


除了答案之外,我还不得不退出XCode 8,这样就解决了问题,谢谢! - Alex Nolasco
重启XCode而不是清理项目对我起了作用。 - Thomas
@Thomas 对我没用,还是得清理/构建。 - Alexander Vasenin

15

我遇到了类似的问题,不幸的是,我不得不经常进行完整清理,这对我的项目和设备来说都是非常昂贵的操作(~5-6分钟)。

事实证明,在“复制捆绑资源”之后(在自定义构建阶段),添加一个自定义的“BuildDate”字段到我的plist中,以便在应用程序中为调试目的显示该值,可能会导致此问题。

不确定错误是否是故意的或Xcode 8的错误。我还发现,即使是向代码库添加和删除一个字符,也可以让我在不进行完全清理的情况下运行。

将该条目添加到“复制捆绑资源”构建阶段之前的单独plist中,然后从该plist中获取BuildDate(而不是info.plist)解决了我的问题。更多详细信息请参见提供的来源。

来源:https://forums.developer.apple.com/thread/63955(我不能完全归功于此修复,但详细的修复方法解决了我的问题)


2
我有一个“将日期和Git标签附加到构建版本”的构建阶段,但我无法删除它。所以我只是在某个地方添加空格,然后再将其删除。 - Martin Berger

4
另一种解决方法是更新版本号。这样做可以起到作用,而且无需清理,节省时间。

不确定为什么会被踩。我已经进行了清理,就像上面提到的那样,在清理和新构建之间需要5到6分钟的时间。更改版本号几乎不需要时间,并且效果相同。 - Brent Brookler
1
这对我来说似乎是一个更好的解决方案。 - v-i-s-h-a-l
1
这个方法对我有效,而被接受的解决方案则没有。 - biomiker
@BrentBrookler 的解决方案和被采纳的答案的组合对我很有效。干得好。 - Lawliet

3

在我的情况下,Xcode会随机显示这个错误。对我有效的最简单的解决方法就是修改源代码中的一行并再次构建项目。添加一个空行就足够了。


2
在我的情况下,一个框架被设置为12.0的部署目标,这比我实际运行的设备版本要高。将其修复为较低版本即可解决问题。"最初的回答"

2
在我的情况下,这是一个配置文件问题。
以下是解决方法:
1) Select XcodeProject -> Target -> Signing -> Team as None.
2) XCode -> Preferences -> Accounts -> Apple IDs -> (Remove the apple Id once, please make sure you should have apple id credentials in order to add it again)
3) Add the apple ID again.
4) Quit Xcode.
5) Open Xcode 
6)  Select XcodeProject -> Target -> Signing - > Select the new Team added.

现在应该可以正常工作了。

1
在我的情况下,问题出现在我自己的框架库中,“Deployment Target”默认设置为12.1。我将这些库添加到的主应用程序的“Deployment Target”是9.3。当部署到iOS 10物理设备时,问题就会发生。 将框架库设置为与应用程序相同的“Deployment Target”解决了问题。 我想一个明显的经验法则是将框架设置为比目标应用程序“更旧”的“Deployment Target”。这是我的错误,但我希望在这种情况下得到一些警告和不那么难以理解的错误信息。 Xcode 10。

1
当我尝试将.app格式的应用程序安装到iOS物理设备上时,出现了这个错误。确保你正在尝试在正确的设备类型上进行安装。

0

我在一个watchOS应用程序中遇到了同样的问题;我能够解决这个问题的唯一方法是通过从~/Library/MobileDevice/Provisioning Profiles/删除所有的Provisioning Profiles,然后允许Xcode重新下载所需的内容(我允许Xcode自动管理签名)。


0

对我来说,在我尝试运行应用程序的设备上,当我将iOS从10.3.3升级到12.3.1后,该消息消失了。


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