【问题标题】:UserInterfaceStyle Light is not working for release buildsUserInterfaceStyle Light 不适用于发布版本
【发布时间】:2025-12-01 21:10:01
【问题描述】:

我通过在 plist 文件中设置 User Interface Style = Light 来强制我的应用程序处于 Light 模式。

但是,它似乎仅在我以调试模式运行应用程序时才有效(插入电缆并运行)。当我存档 ipa 并分发到 TestFlight 时,它不起作用。 有人有同样的问题吗?

请注意,状态栏、操作表、警报视图是受影响的控件。

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 面临同样的问题,我已将其添加到 plist 中并设置为窗口,但有时它无法正常工作。意味着当你更新应用程序时它特别不起作用。也为此寻找解决方案。 iOS端有一些问题
  • 正是发生在我身上的事情。如果你发现了什么,请给我更新,@PravinTate

标签: ios swift ios13 ios-darkmode


【解决方案1】:

您需要在Appdelegate 中进行设置。我在我的所有应用程序中都使用它并且它正在工作。

if #available(iOS 13.0, *) {
    window?.overrideUserInterfaceStyle = .light
}

对于 iOS 13 及更高版本,请在 SceneDelegate 中添加此项。

 @available(iOS 13.0, *)
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    window?.overrideUserInterfaceStyle = .light
}

【讨论】:

  • 我做了同样的事情,它只适用于调试模式,当你构建发布时不起作用。
  • 从 plist 中删除它并仅在 Appdelegate 中写下这一行。我的应用程序正在测试飞行,甚至我在 Appstore 上上传了我的一个应用程序,它运行良好。
  • 在安装发布版本之前还有一件事要卸载您设备中的第一个版本,因为我不知道这是否是 Xcode 问题,或者如果您进行更改,它不会反映在您身上应用程序,直到您卸载并安装它。
  • 谢谢,我从 plist 中删除了密钥,只在 AppDelegate 中设置了 overrideUserInterfaceStyle 但同样的问题。
  • @jacob 你找到解决办法了吗?我面临同样的问题