XCode 11和iOS 13引入了全新的Swift UI,但并不向下兼容。如果要支持iOS 13之前的设备,除了在新建项目的时候要选择使用Storyboard而非Swift UI以外,还需要在项目的target中选择早于iOS 13的版本。如下图所示。

做此调整后,build并不会成功。但可以点击fix一路修复下去,直到build成功。
此时虽然build成功了,但跑在早于iOS 13的设备上时,并不会呈现storyboard的内容,而是漆黑一片,控制台有一行警告:
The app delegate must implement the window property if it wants to use a main storyboard file.
此时还需做两件事:
- 在AppDelegate加一行
var window: UIWindow?
- 删除info.plist中的
Application Scene Manifest
项目