iOSでスプラッシュ画面を変更しても、起動時に古いスプラッシュ画面が出続けてしまうことがあります。
アプリを削除してインストールしなおしたりすると治りますが、実装でどうにかする方法もあります。
以下のように、スプラッシュスクリーンを差し替えたときは、iOS13は/Library/SplashBoard/Snapshots/
以下を、iOS13未満は/Library/Caches/Snapshots/
を消すことで2回目以降のアプリの起動では古いスプラッシュ画面が表示されるといったことはなくなります。
func clearLaunchScreenCache() {
do {
if #available(iOS 13.0, *) {
try FileManager.default.removeItem(atPath: NSHomeDirectory()+"/Library/SplashBoard/Snapshots")
} else {
try FileManager.default.removeItem(atPath: NSHomeDirectory()+"/Library/Caches/Snapshots")
}
} catch {
print("Failed to delete launch screen cache: \(error)")
}
}
ほんとにこれ消しちゃって大丈夫なんだっけ?と不安な方は、以下のように表示して確認してみると良いと思います。
$ open -a preview Snapshotsのパス
参考