Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 应用程序安装失败-应用程序在生成时没有有效的签名_Ios_Provisioning Profile - Fatal编程技术网

Ios 应用程序安装失败-应用程序在生成时没有有效的签名

Ios 应用程序安装失败-应用程序在生成时没有有效的签名,ios,provisioning-profile,Ios,Provisioning Profile,我在生成时遇到以下错误: 应用程序没有有效的签名 在玩了一会儿之后,我发现: 错误只在构建应用程序后出现,没有任何更改-也就是说,如果我在开发过程中遇到崩溃,并尝试再次构建,它将显示错误 为了再次建设,我需要添加空间或新线,然后它将工作 它将在完全清洁->构建后工作。这是不可接受的,因为项目非常庞大(超过300个文件),使用cocoapods构建时间大约为20分钟 发生在所有类型的iOS上,但仅发生在设备上。在模拟器上,它工作正常。尝试从8.0到10.2 iOS版本 Clean build将只

我在生成时遇到以下错误:

应用程序没有有效的签名

在玩了一会儿之后,我发现:

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

  • Xcode 8.2(也发生在8.0和8.1上)
  • 语言敏捷
  • 马科斯山脉(10.12.1)
  • 用于签名的证书是企业级的
已经在网上尝试了所有建议的解决方案,包括SO(例如),但没有成功


我的问题是:如何解决这个问题,使我能够在每次构建时都不更改代码的情况下进行构建?我假设这与构建设置有关…

这似乎是Xcode的一个已知问题。我还没有在我们的项目中体验过它,所以它可能与CocoaPods有关,或者与您的项目相关。我记得在苹果的论坛上看到过这个问题

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


这将使您和您的团队在发生这种情况时不必对代码进行简单的更改

我也有同样的问题,但发现在完全清理之后(转到产品并按cmd-你会看到“清理构建文件夹”),仍然会发生,但频率要低得多Hey Roee84,是的,这就是我所说的清理构建:派生数据,清理构建文件夹,清理构建派生数据有点难找到,但我也处理好了。不走运。起初我认为这与Xcode发布有关,实际上是一个bug,但这种行为一直在显示:(嘿@wottle,谢谢你的回答-从你的回答中我真的不明白的是:这会触发每个构建的重新编译吗?因为它会导致每个构建20分钟的“无功”:(它应该只“重建”)这一个文件在代码中没有其他依赖项。对于这么小的更改不应该花费20分钟,特别是因为没有编译plist,它们只是复制的资源。要进行测试,您只需更改项目中的plist,看看它是否修复了该问题/对于后续生成来说不会花费太长时间。如果不需要,请太长了,我会让构建阶段脚本在每次构建期间自动更新plist(即使项目中没有任何更改也会执行).是的,当然,添加.sh脚本不会延长构建时间太多-而且rebuild info.plist也可以。我担心重建源文件。明天早上我将尝试这种方法,我希望它能解决一个问题:)谢谢你提供的这个链接对我帮助很大。只是一些更正-我希望你能为其他有同样问题但懒得发表评论的人更新你的答案:1)BuildDate.plist无法解决这个问题-你必须找到自己的脚本,在info.plist中实际更新某些内容。2) 实际上,您在代码中使用了更改后的值(例如,显示构建版本)。我有大约4个脚本-3个用于播客。最后一个是针对构建版本的,并导致了问题。删除它后,我可以完美地构建。有两种方法可以修复此问题:要么只为prod运行此脚本(本地构建不需要构建版本),要么创建单独的plist文件并更新该文件。