@@ -159,6 +159,43 @@ string GetSdkPlistFilename (string version)
159159 return Path . Combine ( GetSdkPath ( version ) , "SDKSettings.plist" ) ;
160160 }
161161
162+ Dictionary < string , string > catalyst_version_map_ios_to_macos ;
163+ Dictionary < string , string > catalyst_version_map_macos_to_ios ;
164+
165+ void LoadCatalystVersionMaps ( string version )
166+ {
167+ if ( catalyst_version_map_ios_to_macos != null && catalyst_version_map_macos_to_ios != null )
168+ return ;
169+
170+ catalyst_version_map_ios_to_macos = new Dictionary < string , string > ( ) ;
171+ catalyst_version_map_macos_to_ios = new Dictionary < string , string > ( ) ;
172+
173+ var fn = GetSdkPlistFilename ( version ) ;
174+ var plist = PDictionary . FromFile ( fn ) ;
175+ if ( plist . TryGetValue ( "VersionMap" , out PDictionary versionMap ) ) {
176+ if ( versionMap . TryGetValue ( "iOSMac_macOS" , out PDictionary versionMapiOSToMac ) ) {
177+ foreach ( var kvp in versionMapiOSToMac )
178+ catalyst_version_map_ios_to_macos [ kvp . Key ] = ( ( PString ) kvp . Value ) . Value ;
179+ }
180+ if ( versionMap . TryGetValue ( "macOS_iOSMac" , out PDictionary versionMapMacToiOS ) ) {
181+ foreach ( var kvp in versionMapMacToiOS )
182+ catalyst_version_map_macos_to_ios [ kvp . Key ] = ( ( PString ) kvp . Value ) . Value ;
183+ }
184+ }
185+ }
186+
187+ public Dictionary < string , string > GetCatalystVersionMap_iOS_to_Mac ( string version )
188+ {
189+ LoadCatalystVersionMaps ( version ) ;
190+ return catalyst_version_map_ios_to_macos ;
191+ }
192+
193+ public Dictionary < string , string > GetCatalystVersionMap_Mac_to_iOS ( string version )
194+ {
195+ LoadCatalystVersionMaps ( version ) ;
196+ return catalyst_version_map_macos_to_ios ;
197+ }
198+
162199 bool IAppleSdk . SdkIsInstalled ( IAppleSdkVersion version , bool isSimulator )
163200 {
164201 return SdkIsInstalled ( ( AppleSdkVersion ) version ) ;
0 commit comments