iOS15环境下Xcode13配置的全局Accent Color自定义色失效
iOS 15 全局自定义Accent Color失效修复方案
问题根因
使用Xcode 13构建的应用在iOS 15及以上系统中,全局强调色(Accent Color)的读取逻辑发生变更,旧版本仅通过项目设置配置全局Accent Color的规则不再完全适配iOS 15,系统未读取到适配新系统的强调色配置时,就会自动降级为系统默认蓝色。
修复步骤
- 优先检查Info.plist中的
Global Accent Color Name字段值,确认其与Assets.xcassets中自定义强调色的资源名称完全一致,iOS 15对该字段的大小写校验比旧系统更严格,拼写/大小写不匹配会直接导致配置失效。 - 若使用UIKit开发,在
AppDelegate的application:didFinishLaunchingWithOptions:方法中手动指定全局tintColor,兼容全系统版本:// Swift 示例 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { window?.tintColor = UIColor(named: "你的自定义强调色资源名") return true }// Objective-C 示例 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window.tintColor = [UIColor colorNamed:@"你的自定义强调色资源名"]; return YES; } - 若使用SwiftUI开发,在应用根视图中同时添加两个修饰符,兼容不同系统版本:
@main struct YourApp: App { var body: some Scene { WindowGroup { RootView() .tint(Color("你的自定义强调色资源名")) // 适配iOS 15+ .accentColor(Color("你的自定义强调色资源名")) // 适配iOS 14及更低版本 } } }
相关参考截图
- 资源目录截图

- 项目设置页截图

- 异常运行效果截图

内容的提问来源于stack exchange,提问作者Luca
相关产品推荐
相关产品推荐

