iOS启动屏幕不更新

iOS启动屏幕不更新,ios,ipad,Ios,Ipad,我已经在一个企业应用程序上更新了启动屏幕,但当安装在带有现有应用程序的iPad上时,它不会更新。在安装新版本之前,我尝试过完全删除该应用程序,但它仍然会以旧的启动屏幕图像启动 我曾尝试在另一台iPad上安装新应用程序,但该应用程序从未安装过,新的启动屏幕如预期般出现。两款iPad都运行相同的iOS v9。该应用程序是用xCode 7.2构建的 总之,我尝试了以下场景: 更新iPad A上的现有应用程序(版本1)-使用新应用程序(版本2) iPad A,从版本1开始加载带有启动屏幕的新应用v2 在

我已经在一个企业应用程序上更新了启动屏幕,但当安装在带有现有应用程序的iPad上时,它不会更新。在安装新版本之前,我尝试过完全删除该应用程序,但它仍然会以旧的启动屏幕图像启动

我曾尝试在另一台iPad上安装新应用程序,但该应用程序从未安装过,新的启动屏幕如预期般出现。两款iPad都运行相同的iOS v9。该应用程序是用xCode 7.2构建的

总之,我尝试了以下场景:

  • 更新iPad A上的现有应用程序(版本1)-使用新应用程序(版本2) iPad A,从版本1开始加载带有启动屏幕的新应用v2

  • 在iPad B上安装了新的应用程序(版本2),而iPad B从未安装过此应用程序。 iPad B,加载具有正确启动屏幕的新应用程序v2 然后我在iPadB上安装了旧的应用程序版本1 iPadB现在加载旧的应用程序v1,并从版本2开始启动屏幕


  • 似乎iPad从第一次安装开始就以某种方式缓存了启动屏幕,而不管它是哪个版本。删除应用程序并重新安装似乎没有帮助,而且它看起来与代码无关,因为iPad B上加载了正确的启动屏幕图像。我刚刚遇到了这个问题,我发现从设备或模拟器上删除应用程序,然后重新启动设备或模拟器似乎可以解决问题


    我发现只是重新启动设备不起作用。

    模拟器和iPhone会缓存启动图像。 这可以帮助你 1> 清除developer/xcode文件夹下的派生数据 2> 同时按下home(主页)按钮和lock(锁定)按钮,重置设备
    3> 将您的代码推送到设备上,它就会工作,如果这不起作用,那么在重置设备后创建ipa文件并使用itunes安装,它会显示新的发布图像

    我尝试了多种解决方案,重启iPhone是唯一的方法。

    史蒂夫的答案在iOS 13.2.3中仍然有效,但我想再添加一些项目来支持这一点,否则就超出了评论的限制

    对于初学者来说,我确实删除了应用程序,重新启动了设备,等等,但是由于这个问题发生在用户通过应用商店进行更新时,这些修复根本不可行

    然后,我决定在应用程序中采取更激烈的行动,试图解决这个问题。这些操作是在TestFlight构建中执行的

    在我的特殊情况下,问题源于一个版本字符串,它错误地表示了已安装的版本

    然后,第1步是简单地删除所讨论的
    ui标签。重新运行应用程序仍会导致标签出现在应用程序中

    第2步是创建一个全新的
    LaunchScreen
    storyboard,并将其设置为如下所示:

    启动应用程序仍会显示旧的启动屏幕

    这让我相信项目结构中的某些东西是缓存的来源,开发人员对LaunchScreen进行的任何合理更改都无法解决这个问题

    更新


    该应用程序已发布到Appstore,使用官方商店版本,该应用程序将显示正确的启动屏幕。

    只需从模拟iPhone主屏幕中删除该应用程序即可

    在iPhone11Max版本中,用两个手指点击并从iPhone的外缘向上拖动,将带您进入主屏幕并退出模拟应用程序

    然后用两个手指点击并按住你的应用程序,删除应用程序并关闭模拟器

    打开Xcode并单击“播放”按钮以运行模拟,启动屏幕应更新

    另外,删除Xcode缓存和派生数据不会有任何影响

    有关此问题,请参阅。至少在iOS 13上,您可以自己清除此缓存:

    导入UIKit
    公共扩展应用程序{
    func clearLaunchScreenCache(){
    做{
    尝试FileManager.default.removeItem(路径:NSHomeDirectory()+“/Library/SplashBoard”)
    }抓住{
    打印(“未能删除启动屏幕缓存:\(错误)”)
    }
    }
    }
    
    在xcode中的Assets.xcsets下,我单击了LaunchImage,然后取消选中Universal,选中iPhone,取消选中iPhone,然后再次选中Universal。然后运行build并清除旧映像。

    解决方案
    同样,感谢我上面提到的线程,我找到了解决这个问题的方法——将新图像命名为与以前不同的名称,以防新图像与旧图像同名,并将其从*.xcsets文件夹中放到项目目录中,并在UIImageView中引用。就是这样。

    确保您的图像被正确删除…删除图像时,可能需要一个对话框,然后单击“移动到垃圾箱”,而不是“删除引用”。。然后删除到垃圾桶中,然后将新图像添加到项目中,一旦添加新图像,首先删除应用程序的旧版本。我不确定图像与此有何关系。这是应用程序的启动屏幕,上面有它的图像。这个回答你的问题吗?此问题会从应用商店带入生产版本/更新。如果您的版本1有蓝色启动屏幕,那么您从版本2设置了红色启动屏幕,任何从版本1升级到版本2的用户都将在未知的时间段内看到蓝色屏幕。开发人员似乎对此无能为力。我们不能告诉用户删除应用程序等;在某些情况下会导致数据丢失。闻起来像是iOS的臭虫。最晚出现在iOS 11.4上。我们在iPad AppStore应用程序上看到了这一点,iOS 12.1和13.2仍然存在,我遇到了与您描述的相同的问题。你能解决这个问题吗?@simon我更新了我的答案,但简短的版本是我的官方应用商店版本运行正常,而我的TestFlight版本没有。