iOS启动屏幕无法更新

时间:2016-02-04 04:18:07

标签: ios ipad

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

我已尝试在另一台iPad上安装新应用,此应用程序从未安装,并且新的启动屏幕按预期显示。两款iPad都运行相同的iOS v9。该应用程序是使用xCode 7.2构建的

总之,我尝试了以下方案:

  1. 更新iPad A上的现有应用(版本1) - 使用新应用(版本2) iPad A,使用版本1

  2. 的启动画面加载新的应用v2
  3. 在iPad B上安装了新的应用程序(版本2),从未有过此应用程序。 iPad B,使用正确的启动屏幕加载新的应用程序v2 然后我在iPad B上安装了旧的app版本1 iPad B现在从版本2

  4. 加载启动画面的旧应用v1

    似乎iPad以某种方式从最初的安装中缓存启动屏幕,无论它是哪个版本。删除应用程序并重新安装似乎没有帮助,因为在iPad B上加载了正确的启动屏幕图像,它看起来与代码无关

8 个答案:

答案 0 :(得分:12)

我刚遇到这个问题,我发现从设备或模拟器上删除应用程序,然后重新启动设备或模拟器似乎解决了这个问题。

我发现只是重新启动设备无法正常工作。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

Steve的答案在iOS 13.2.3之前仍然有效,但是我想添加更多项目以支持这一点,否则将超出注释的限制。

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

然后,我决定在应用程序中采取更多严厉措施,以解决此问题。这些操作是通过TestFlight构建完成的。

在我的特定情况下,问题源于版本字符串,该版本字符串错误地表示已安装的版本。

然后,第1步是简单地删除有问题的UILabel。重新运行该应用程序仍会导致标签显示在应用程序中。

然后,第2步是创建一个全新的LaunchScreen故事板,并按如下所示进行设置:

enter image description here

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

这使我相信项目结构中的某些内容是缓存的来源,并且开发人员不会对LaunchScreen进行任何合理的更改。

更新

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

只需从模拟iPhone主屏幕删除应用即可。

在iPhone 11 Max 2型手指上,单击并从iPhone的外部边缘向上拖动,这将带您进入主屏幕并退出模拟应用程序。

然后用两指点击并按住您的应用程序,删除该应用程序并关闭模拟器。

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

P.S。删除Xcode缓存和派生数据不会受到伤害。

答案 5 :(得分:0)

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

import UIKit

public extension UIApplication {

    func clearLaunchScreenCache() {
        do {
            try FileManager.default.removeItem(atPath: NSHomeDirectory()+"/Library/SplashBoard")
        } catch {
            print("Failed to delete launch screen cache: \(error)")
        }
    }

}

答案 6 :(得分:0)

在xcode中,在Assets.xcassets下,我单击LaunchImage,然后取消选中Universal,选中iPhone,取消选中iPhone,然后再次选中Universal。然后运行构建,并清除了旧图像。

答案 7 :(得分:0)

解决方案 同样,由于我在上面引用了线程,因此我找到了一种解决此问题的方法-为新图像命名与以前不同的名称,以防新图像与旧图像具有相同的名称并将其从*中排除.xcassets文件夹到项目目录,并在UIImageView中引用它。就是这样。