我已在企业应用上更新了启动屏幕,但在使用现有应用安装在iPad上时,它不会更新。我在安装新版本之前尝试完全删除该应用程序,但它仍然使用旧的启动屏幕图像启动。
我已尝试在另一台iPad上安装新应用,此应用程序从未安装,并且新的启动屏幕按预期显示。两款iPad都运行相同的iOS v9。该应用程序是使用xCode 7.2构建的
总之,我尝试了以下方案:
更新iPad A上的现有应用(版本1) - 使用新应用(版本2) iPad A,使用版本1
在iPad B上安装了新的应用程序(版本2),从未有过此应用程序。 iPad B,使用正确的启动屏幕加载新的应用程序v2 然后我在iPad B上安装了旧的app版本1 iPad B现在从版本2
似乎iPad以某种方式从最初的安装中缓存启动屏幕,无论它是哪个版本。删除应用程序并重新安装似乎没有帮助,因为在iPad B上加载了正确的启动屏幕图像,它看起来与代码无关
答案 0 :(得分:12)
我刚遇到这个问题,我发现从设备或模拟器上删除应用程序,然后重新启动设备或模拟器似乎解决了这个问题。
我发现只是重新启动设备无法正常工作。
答案 1 :(得分:1)
我尝试了多种解决方案,并且重启iPhone是唯一的方法。
答案 2 :(得分:1)
Steve的答案在iOS 13.2.3之前仍然有效,但是我想添加更多项目以支持这一点,否则将超出注释的限制。
对于初学者来说,我确实删除了该应用程序,重新启动了设备等,但是由于当用户通过应用程序商店进行更新时会发生此问题,因此这些修复根本不可行。
然后,我决定在应用程序中采取更多严厉措施,以解决此问题。这些操作是通过TestFlight构建完成的。
在我的特定情况下,问题源于版本字符串,该版本字符串错误地表示已安装的版本。
然后,第1步是简单地删除有问题的UILabel
。重新运行该应用程序仍会导致标签显示在应用程序中。
然后,第2步是创建一个全新的LaunchScreen
故事板,并按如下所示进行设置:
启动应用程序仍会显示旧的启动屏幕。
这使我相信项目结构中的某些内容是缓存的来源,并且开发人员不会对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中引用它。就是这样。