{"record":{"id":"ec84e96e8797bcb9","repo":"Unity-Technologies/UnityCsReference","slug":"playersettings-phonesplashscreenimage-is-deprecate-ec84e9","errorCode":null,"errorMessage":"PlayerSettings.phoneSplashScreenImage is deprecated. Use SetVisualAssetsImage() instead.","messagePattern":"PlayerSettings\\.phoneSplashScreenImage is deprecated\\. Use SetVisualAssetsImage\\(\\) instead\\.","errorType":"exception","errorClass":"NotSupportedException","httpStatus":null,"severity":"error","filePath":"Editor/Mono/PlayerSettingsWSA.cs","lineNumber":671,"sourceCode":"                    throw new NotSupportedException(\"PlayerSettings.phoneWideTile240 is deprecated. Use GetVisualAssetsImage() instead.\");\n                }\n                set\n                {\n                    throw new NotSupportedException(\"PlayerSettings.phoneWideTile240 is deprecated. Use SetVisualAssetsImage() instead.\");\n                }\n            }\n\n            [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]\n            [Obsolete(\"Use GetVisualAssetsImage()/SetVisualAssetsImage()\", true)]\n            public static string phoneSplashScreenImage\n            {\n                get\n                {\n                    throw new NotSupportedException(\"PlayerSettings.phoneSplashScreenImage is deprecated. Use GetVisualAssetsImage() instead.\");\n                }\n                set\n                {\n                    throw new NotSupportedException(\"PlayerSettings.phoneSplashScreenImage is deprecated. Use SetVisualAssetsImage() instead.\");\n                }\n            }\n\n            [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]\n            [Obsolete(\"Use GetVisualAssetsImage()/SetVisualAssetsImage()\", true)]\n            public static string phoneSplashScreenImageScale140\n            {\n                get\n                {\n                    throw new NotSupportedException(\"PlayerSettings.phoneSplashScreenImageScale140 is deprecated. Use GetVisualAssetsImage() instead.\");\n                }\n                set\n                {\n                    throw new NotSupportedException(\"PlayerSettings.phoneSplashScreenImageScale140 is deprecated. Use SetVisualAssetsImage() instead.\");\n                }\n            }\n\n            [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]","sourceCodeStart":653,"sourceCodeEnd":689,"githubUrl":"https://github.com/Unity-Technologies/UnityCsReference/blob/225b0fbdb57cc17d094e8056b71f8314aba56f73/Editor/Mono/PlayerSettingsWSA.cs#L653-L689","documentation":"PlayerSettings.WSA.phoneSplashScreenImage was a string property that set the Windows Phone splash screen image path at 100% scale. Unity consolidated all per-scale WSA visual asset properties into the unified SetVisualAssetsImage(image, WSAImageType, WSAImageScale) API. The property carries [Obsolete(..., true)] which makes direct usage a compile-time error; the NotSupportedException is a secondary runtime defense for reflection or dynamic-dispatch access that bypasses the compiler.","triggerScenarios":"Assigning to PlayerSettings.WSA.phoneSplashScreenImage via reflection (PropertyInfo.SetValue), dynamic keyword, or a pre-compiled legacy assembly that still references the old property setter.","commonSituations":"Build pipelines or editor automation scripts written for Unity pre-2018 that set phone splash screen images. Third-party plugins shipping compiled DLLs against an older Unity API surface. CI scripts that configure WSA player settings before building.","solutions":["Replace the setter call with PlayerSettings.WSA.SetVisualAssetsImage(path, WSAImageType.SplashScreenImage, WSAImageScale._100)","If accessing via reflection, switch to a direct method call or use GetVisualAssetsImage/SetVisualAssetsImage through the known API surface","Remove all references to phoneSplashScreenImage and recompile to confirm no remaining [Obsolete] compile errors","Update third-party plugin DLLs that reference the old property to a version built against the current Unity API"],"exampleFix":"// before\nPlayerSettings.WSA.phoneSplashScreenImage = \"Assets/Splash/splash.png\";\n\n// after\nPlayerSettings.WSA.SetVisualAssetsImage(\"Assets/Splash/splash.png\", WSAImageType.SplashScreenImage, WSAImageScale._100);","handlingStrategy":"validation","validationCode":"// Before calling, verify the API surface has migrated\nvar prop = typeof(PlayerSettings.WSA).GetProperty(\"phoneSplashScreenImage\",\n    System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);\nif (prop != null && prop.GetSetMethod() != null)\n{\n    var obsolete = prop.GetCustomAttribute<System.ObsoleteAttribute>();\n    if (obsolete != null)\n        Debug.LogError(\"phoneSplashScreenImage is deprecated. Use SetVisualAssetsImage() instead.\");\n}","typeGuard":null,"tryCatchPattern":"// Only relevant for reflection-based access\ntry\n{\n    // Should not be used — migrate to SetVisualAssetsImage instead\n}\ncatch (NotSupportedException ex) when (ex.Message.Contains(\"deprecated\"))\n{\n    Debug.LogError($\"Deprecated WSA property access blocked: {ex.Message}. Migrate to SetVisualAssetsImage.\");\n}","preventionTips":["Treat all [Obsolete(..., true)] properties as compile errors and fix them before committing","Run a periodic grep for deprecated WSA property names in editor scripts and third-party DLLs","When upgrading Unity versions, review the upgrade guide for PlayerSettings.WSA API changes"],"tags":["unity","wsa","uwp","deprecated","editor-scripting","playersettings","splashscreen"],"backgroundTag":null,"analyzedSha":"225b0fbdb57cc17d094e8056b71f8314aba56f73","analyzedAt":"2026-08-13T19:07:19.849Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}