@@ -27,6 +27,9 @@ private static void RunLocalization(PBXProject project, string projectGuid, stri
2727
2828 string pbxprojPath = Path . Combine ( path , "Unity-iPhone.xcodeproj/project.pbxproj" ) ;
2929
30+ // 标记是否包含 CFBundleDisplayName 本地化
31+ bool hasLocalizedDisplayName = false ;
32+
3033 // 收集所有需要本地化的键,用于更新 Info.plist
3134 // HashSet<string> localizationKeys = new HashSet<string>();
3235
@@ -67,6 +70,12 @@ private static void RunLocalization(PBXProject project, string projectGuid, stri
6770 string value = map [ "value" ] . ToString ( ) ;
6871 sb . Append ( $ "\" { key } \" = \" { value } \" ;\n ") ;
6972
73+ // 检查是否包含 CFBundleDisplayName
74+ if ( key == "CFBundleDisplayName" )
75+ {
76+ hasLocalizedDisplayName = true ;
77+ }
78+
7079 // 记录需要本地化的键
7180 // localizationKeys.Add(key);
7281 }
@@ -85,6 +94,20 @@ private static void RunLocalization(PBXProject project, string projectGuid, stri
8594 // 更新 Info.plist,将本地化键的值设置为 ${KEY} 格式
8695 // UpdateInfoPlistForLocalization(path, localizationKeys);
8796
97+ // 如果存在显示名称本地化,设置 LSHasLocalizedDisplayName 为 true
98+ if ( hasLocalizedDisplayName )
99+ {
100+ string plistPath = Path . Combine ( path , "Info.plist" ) ;
101+ if ( File . Exists ( plistPath ) )
102+ {
103+ PlistDocument plist = new PlistDocument ( ) ;
104+ plist . ReadFromString ( File . ReadAllText ( plistPath ) ) ;
105+ plist . root . SetBoolean ( "LSHasLocalizedDisplayName" , true ) ;
106+ plist . WriteToFile ( plistPath ) ;
107+ LogHelper . Log ( "Updated Info.plist: Set LSHasLocalizedDisplayName to true" ) ;
108+ }
109+ }
110+
88111 // 使用 PBXProject API 添加本地化文件到项目
89112 AddLocalizationToProject ( project , path , localizations ) ;
90113
0 commit comments