ios - 应用程序安装失败 - 应用程序在构建时没有有效的签名

标签 ios provisioning-profile

构建时出现以下错误:

The application does not have a valid signature

玩了一会儿之后,我发现了以下内容:

  • 错误仅在构建没有任何更改的应用程序后出现 - 也就是说,如果我在开发过程中遇到崩溃并尝试再次构建它会显示错误
  • 为了再次构建,我需要添加空格或新行,然后它就会工作
  • 它会在完全清理后运行 -> 构建。这是 Not Acceptable ,因为项目很大(超过 300 个文件)并且使用 cocoapods 构建时间大约需要 20 分钟。
  • 发生在所有类型的 iOS 上,但只发生在设备上。在模拟器上它工作正常。尝试从 8.0 到 10.2 iOS 版本。
  • Clean build 只会修复一次,之后如果我尝试再次构建相同的代码,则会出现相同的错误。

其他相关信息:

  • Xcode 8.2(也发生在 8.0 和 8.1 上)
  • 语言是 Swift 3
  • MacOS 是 Sierra (10.12.1)
  • 用于签名的证书是企业

已经在线尝试了所有建议的解决方案,包括 SO(例如 App installation failed),但没有成功。

我的问题是:如何解决这个问题,以便每次构建时无需更改代码即可构建?我认为这与build设置有关...

最佳答案

这似乎是 Xcode 的一个已知问题。我没有在我们的项目中体验过,所以它可能与 CocoaPods 有关,或者其他特定于您的项目的东西。我记得在 Apple 的论坛上看到过这个问题 here .

虽然更多的是解决方法而不是解决方案,但您可以通过添加 BuildDate.plist 文件强制应用程序每次重建,添加构建阶段以将当前日期/时间放入 plist 文件中。此更改足以触发足够的重建,因此代码签名错误不会影响您。它应该会导致重新编译任何耗时的东西。

这样一来,您和您的团队就不必在发生这种情况时对代码进行简单的更改。

关于ios - 应用程序安装失败 - 应用程序在构建时没有有效的签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41224664/

相关文章:

ios - 代号 One button with icon - 根据图标大小设置大小

ios - Fabric/FaSTLane - 自动添加设备 UDID

ios - 是否可以在没有任何互联网连接/禁用蜂窝网络的情况下使用核心定位/GPS?

ios - 如何删除静态 UITableView 中只有一个部分的分隔符?

ios - 如何使用 TeamCity 为 iOS 构建使用配置证书

ios - 验证失败,返回 "no matching profiles found... "

ios - 无效的配置文件 - 缺少代码签名证书

ios - 如果我的临时配置文件在应用程序投入生产时过期,我是否需要更新应用程序的临时配置文件?

iphone - (iOS) 有没有办法让应用程序打开 iTunes 音乐播放器应用程序(最好直接进入“正在播放”屏幕)?

iphone - Restkit 请求加载处理程序