public override bool Execute() { PDictionary plist = null; if (!string.IsNullOrEmpty(AppManifest?.ItemSpec)) { try { plist = PDictionary.FromFile(AppManifest.ItemSpec); } catch (Exception ex) { Log.LogError(null, null, null, AppManifest, 0, 0, 0, 0, MSBStrings.E0010, AppManifest, ex.Message); return(false); } } var minimumOSVersionInManifest = plist?.Get <PString> (PlatformFrameworkHelper.GetMinimumOSVersionKey(Platform))?.Value; if (string.IsNullOrEmpty(minimumOSVersionInManifest)) { MinimumOSVersion = SdkVersion; } else if (!IAppleSdkVersion_Extensions.TryParse(minimumOSVersionInManifest, out var _)) { Log.LogError(null, null, null, AppManifest, 0, 0, 0, 0, MSBStrings.E0011, minimumOSVersionInManifest); return(false); } else { MinimumOSVersion = minimumOSVersionInManifest; } return(true); }
public override bool Execute() { PDictionary?plist = null; if (!string.IsNullOrEmpty(AppManifest?.ItemSpec)) { try { plist = PDictionary.FromFile(AppManifest !.ItemSpec); } catch (Exception ex) { Log.LogError(null, null, null, AppManifest !.ItemSpec, 0, 0, 0, 0, MSBStrings.E0010, AppManifest.ItemSpec, ex.Message); return(false); } } CFBundleExecutable = plist.GetCFBundleExecutable(); CFBundleDisplayName = plist?.GetCFBundleDisplayName(); CFBundleIdentifier = plist?.GetCFBundleIdentifier(); CFBundleVersion = plist?.GetCFBundleVersion(); CLKComplicationGroup = plist?.Get <PString> (ManifestKeys.CLKComplicationGroup)?.Value; MinimumOSVersion = plist?.Get <PString> (PlatformFrameworkHelper.GetMinimumOSVersionKey(Platform))?.Value; if (Platform == ApplePlatform.MacCatalyst) { // The minimum version in the Info.plist is the macOS version. However, the rest of our tooling // expects the iOS version, so expose that. if (!MacCatalystSupport.TryGetiOSVersion(Sdks.GetAppleSdk(Platform).GetSdkPath(SdkVersion, false), MinimumOSVersion !, out var convertedVersion, out var knownMacOSVersions)) { Log.LogError(MSBStrings.E0187, MinimumOSVersion, string.Join(", ", knownMacOSVersions)); } MinimumOSVersion = convertedVersion; } NSExtensionPointIdentifier = plist?.GetNSExtensionPointIdentifier(); UIDeviceFamily = plist?.GetUIDeviceFamily().ToString(); WKWatchKitApp = plist?.GetWKWatchKitApp() == true; XSAppIconAssets = plist?.Get <PString> (ManifestKeys.XSAppIconAssets)?.Value; XSLaunchImageAssets = plist?.Get <PString> (ManifestKeys.XSLaunchImageAssets)?.Value; return(!Log.HasLoggedErrors); }
public override bool Execute() { PDictionary plist = null; if (!string.IsNullOrEmpty(AppManifest?.ItemSpec)) { try { plist = PDictionary.FromFile(AppManifest.ItemSpec); } catch (Exception ex) { Log.LogError(null, null, null, AppManifest.ItemSpec, 0, 0, 0, 0, MSBStrings.E0010, AppManifest.ItemSpec, ex.Message); return(false); } } var minimumOSVersionInManifest = plist?.Get <PString> (PlatformFrameworkHelper.GetMinimumOSVersionKey(Platform))?.Value; if (string.IsNullOrEmpty(minimumOSVersionInManifest)) { MinimumOSVersion = SdkVersion; } else if (!IAppleSdkVersion_Extensions.TryParse(minimumOSVersionInManifest, out var _)) { Log.LogError(null, null, null, AppManifest.ItemSpec, 0, 0, 0, 0, MSBStrings.E0011, minimumOSVersionInManifest); return(false); } else { MinimumOSVersion = minimumOSVersionInManifest; } if (Platform == ApplePlatform.MacCatalyst) { // Convert the min macOS version to the min iOS version, which the rest of our tooling expects. if (!MacCatalystSupport.TryGetiOSVersion(Sdks.GetAppleSdk(Platform).GetSdkPath(SdkVersion, false), MinimumOSVersion, out var convertedVersion)) { Log.LogError(MSBStrings.E0187, MinimumOSVersion); } MinimumOSVersion = convertedVersion; } return(true); }
public static string GetMinimumSystemVersion(this PDictionary dict) { var str = dict.Get <PString> (ManifestKeys.LSMinimumSystemVersion); return(str == null ? null : str.Value); }
public static string GetComplicationGroup(this PDictionary dict) { var str = dict.Get <PString> (ManifestKeys.CLKComplicationGroup); return(str == null ? null : str.Value); }
public static string GetCFBundleExecutable(this PDictionary dict) { var str = dict.Get <PString> (ManifestKeys.CFBundleExecutable); return(str == null ? null : str.Value); }
public static PArray GetiCloudServices(this PDictionary dict) { return(dict.Get <PArray> (EntitlementKeys.iCloudServices)); }
public static PDictionary GetCFBundleIcons(this PDictionary dict) { return(dict.Get <PDictionary> (ManifestKeys.CFBundleIcons)); }
public static string GetCFBundleShortVersionString(this PDictionary dict) { var str = dict.Get <PString> (ManifestKeys.CFBundleShortVersionString); return(str == null ? null : str.Value); }
public static PArray GetiCloudContainers(this PDictionary dict) { return(dict.Get <PArray> (EntitlementKeys.iCloudContainers)); }
public static PArray GetAssociatedDomains(this PDictionary dict) { return(dict.Get <PArray> (EntitlementKeys.AssociatedDomains)); }
public static PArray GetApplicationGroups(this PDictionary dict) { return(dict.Get <PArray> (EntitlementKeys.ApplicationGroups)); }
public static PArray GetApplePayMerchants(this PDictionary dict) { return(dict.Get <PArray> (EntitlementKeys.InAppPayments)); }
public static PArray GetPassBookIdentifiers(this PDictionary dict) { return(dict.Get <PArray> (EntitlementKeys.PassBookIdentifiers)); }
public static PArray GetKeychainAccessGroups(this PDictionary dict) { return(dict.Get <PArray> (EntitlementKeys.KeychainAccessGroups)); }
public static string GetLaunchImageAssets(this PDictionary dict) { var str = dict.Get <PString> (ManifestKeys.XSLaunchImageAssets); return(str == null ? null : str.Value); }
public static PArray GetCFBundleIconFiles(this PDictionary dict) { return(dict.Get <PArray> (ManifestKeys.CFBundleIconFiles)); }
public static string GetNSMainNibFile(this PDictionary dict) { var str = dict.Get <PString> (ManifestKeys.NSMainNibFile); return(str == null ? null : str.Value); }
public static string GetCFBundleIdentifier(this PDictionary dict) { var str = dict.Get <PString> (ManifestKeys.CFBundleIdentifier); return(str == null ? null : str.Value); }
public static string GetUILaunchImageFileIPhone(this PDictionary dict) { var str = dict.Get <PString> (ManifestKeys.UILaunchImageFileIPhone); return(str == null? null : str.Value); }
public static IOSExtensionPoint?GetAppExtensionPoint(this PDictionary dict) { var ext = dict.Get <PDictionary> ("NSExtension"); if (ext == null) { return(null); } var id = ext.Get <PString> ("NSExtensionPointIdentifier"); if (id == null) { return(IOSExtensionPoint.Unknown); } switch (id.Value) { case "com.apple.widget-extension": return(IOSExtensionPoint.Widget); case "com.apple.watchkit": return(IOSExtensionPoint.WatchKit); case "com.apple.fileprovider-nonui": return(IOSExtensionPoint.FileProviderNonUI); case "com.apple.keyboard-service": return(IOSExtensionPoint.KeyboardService); case "com.apple.ui-services": return(IOSExtensionPoint.Action); case "com.apple.share-services": return(IOSExtensionPoint.ShareServices); case "com.apple.photo-editing": return(IOSExtensionPoint.PhotoEditing); case "com.apple.broadcast-services": return(IOSExtensionPoint.BroadcastServices); case "com.apple.callkit.call-directory": return(IOSExtensionPoint.CallDirectory); case "com.apple.Safari.content-blocker": return(IOSExtensionPoint.ContentBlocker); case "com.apple.intents-service": return(IOSExtensionPoint.IntentsService); case "com.apple.intents-ui-service": return(IOSExtensionPoint.IntentsUIService); case "com.apple.message-payload-provider": return(IOSExtensionPoint.MessagePayloadProvider); case "com.apple.usernotifications.content-extension": return(IOSExtensionPoint.NotificationContent); case "com.apple.usernotifications.service": return(IOSExtensionPoint.NotificationService); case "com.apple.Safari.sharedlinks-service": return(IOSExtensionPoint.SharedLinks); case "com.apple.spotlight.index": return(IOSExtensionPoint.SpotlightIndex); } return(IOSExtensionPoint.Unknown); }
public static string GetCLKComplicationPrincipalClass(this PDictionary dict) { var str = dict.Get <PString> (ManifestKeys.CLKComplicationPrincipalClass); return(str == null ? null : str.Value); }
bool SetMinimumOSVersion(PDictionary plist) { var minimumVersionKey = PlatformFrameworkHelper.GetMinimumOSVersionKey(Platform); var minimumOSVersionInManifest = plist?.Get <PString> (minimumVersionKey)?.Value; string convertedSupportedOSPlatformVersion; string minimumOSVersion; if (Platform == ApplePlatform.MacCatalyst && !string.IsNullOrEmpty(SupportedOSPlatformVersion)) { // SupportedOSPlatformVersion is the iOS version for Mac Catalyst. // But we need to store the macOS version in the app manifest, so convert it to the macOS version here. if (!MacCatalystSupport.TryGetMacOSVersion(Sdks.GetAppleSdk(Platform).GetSdkPath(SdkVersion, false), SupportedOSPlatformVersion, out var convertedVersion, out var knowniOSVersions)) { Log.LogError(MSBStrings.E0188, SupportedOSPlatformVersion, string.Join(", ", knowniOSVersions)); } convertedSupportedOSPlatformVersion = convertedVersion; } else { convertedSupportedOSPlatformVersion = SupportedOSPlatformVersion; } if (Platform == ApplePlatform.MacCatalyst && string.IsNullOrEmpty(minimumOSVersionInManifest)) { // If there was no value for the macOS min version key, then check the iOS min version key. var minimumiOSVersionInManifest = plist?.Get <PString> (ManifestKeys.MinimumOSVersion)?.Value; if (!string.IsNullOrEmpty(minimumiOSVersionInManifest)) { // Convert to the macOS version if (!MacCatalystSupport.TryGetMacOSVersion(Sdks.GetAppleSdk(Platform).GetSdkPath(SdkVersion, false), minimumiOSVersionInManifest, out var convertedVersion, out var knowniOSVersions)) { Log.LogError(MSBStrings.E0188, minimumiOSVersionInManifest, string.Join(", ", knowniOSVersions)); } minimumOSVersionInManifest = convertedVersion; } } if (string.IsNullOrEmpty(minimumOSVersionInManifest)) { // Nothing is specified in the Info.plist - use SupportedOSPlatformVersion, and if that's not set, then use the sdkVersion if (!string.IsNullOrEmpty(convertedSupportedOSPlatformVersion)) { minimumOSVersion = convertedSupportedOSPlatformVersion; } else { minimumOSVersion = SdkVersion; } } else if (!IAppleSdkVersion_Extensions.TryParse(minimumOSVersionInManifest, out var _)) { LogAppManifestError(MSBStrings.E0011, minimumOSVersionInManifest); return(false); } else if (!string.IsNullOrEmpty(convertedSupportedOSPlatformVersion) && convertedSupportedOSPlatformVersion != minimumOSVersionInManifest) { // SupportedOSPlatformVersion and the value in the Info.plist are not the same. This is an error. LogAppManifestError(MSBStrings.E7082, minimumVersionKey, minimumOSVersionInManifest, SupportedOSPlatformVersion); return(false); } else { minimumOSVersion = minimumOSVersionInManifest; } // Write out our value plist [minimumVersionKey] = minimumOSVersion; return(true); }
public static string GetUbiquityKeyValueStore(this PDictionary dict) { var str = dict.Get <PString> (EntitlementKeys.UbiquityKeyValueStore); return(str == null ? null : str.Value); }