Пример #1
0
        protected override ISN_XcodeRequirements GenerateRequirements()
        {
            var requirements = new ISN_XcodeRequirements();

            requirements.AddFramework(new ISD_Framework(ISD_iOSFramework.Accounts));
            requirements.AddFramework(new ISD_Framework(ISD_iOSFramework.Social));
            requirements.AddFramework(new ISD_Framework(ISD_iOSFramework.MessageUI));



            ISD_PlistKey LSApplicationQueriesSchemes = new ISD_PlistKey();

            LSApplicationQueriesSchemes.Name = "LSApplicationQueriesSchemes";
            LSApplicationQueriesSchemes.Type = ISD_PlistKeyType.Array;


            requirements.AddInfoPlistKey(LSApplicationQueriesSchemes);

            ISD_PlistKey instagram = new ISD_PlistKey();

            instagram.StringValue = "instagram";
            instagram.Type        = ISD_PlistKeyType.String;
            LSApplicationQueriesSchemes.AddChild(instagram);

            ISD_PlistKey whatsapp = new ISD_PlistKey();

            whatsapp.StringValue = "whatsapp";
            whatsapp.Type        = ISD_PlistKeyType.String;
            LSApplicationQueriesSchemes.AddChild(whatsapp);


            return(requirements);
        }
Пример #2
0
        protected override ISN_XcodeRequirements GenerateRequirements()
        {
            var requirements = new ISN_XcodeRequirements();

            requirements.AddFramework(new ISD_Framework(ISD_iOSFramework.Photos));
            return(requirements);
        }
Пример #3
0
        protected override ISN_XcodeRequirements GenerateRequirements()
        {
            var requirements = new ISN_XcodeRequirements();

            requirements.AddFramework(new ISD_Framework(ISD_iOSFramework.AuthenticationServices, true));
            return(requirements);
        }
Пример #4
0
        protected override ISN_XcodeRequirements GenerateRequirements()
        {
            var requirements = new ISN_XcodeRequirements();

            requirements.AddFramework(new ISD_Framework(ISD_iOSFramework.GameKit));
            requirements.Capabilities.Add("Game Center");
            return(requirements);
        }
        protected override ISN_XcodeRequirements GenerateRequirements()
        {
            var requirements = new ISN_XcodeRequirements();

            requirements.AddFramework(new ISD_Framework(ISD_iOSFramework.StoreKit));
            requirements.Capabilities.Add("In-App Purchase");
            return(requirements);
        }
Пример #6
0
        public static void DrawRequirementsUI(ISN_XcodeRequirements xcodeRequirements)
        {
            if (xcodeRequirements.Frameworks.Count > 0)
            {
                using (new SA_H2WindowBlockWithSpace(new GUIContent("FRAMEWORKS"))) {
                    foreach (var freamwork in xcodeRequirements.Frameworks)
                    {
                        SA_EditorGUILayout.SelectableLabel(new GUIContent(freamwork.Type.ToString() + ".framework", ISD_Skin.GetIcon("frameworks.png")));
                    }
                }
            }


            if (xcodeRequirements.Libraries.Count > 0)
            {
                using (new SA_H2WindowBlockWithSpace(new GUIContent("LIBRARIES"))) {
                    foreach (var freamwork in xcodeRequirements.Libraries)
                    {
                        SA_EditorGUILayout.SelectableLabel(new GUIContent(freamwork.Type.ToString() + ".framework", ISD_Skin.GetIcon("frameworks.png")));
                    }
                }
            }


            if (xcodeRequirements.Capabilities.Count > 0)
            {
                using (new SA_H2WindowBlockWithSpace(new GUIContent("CAPABILITIES"))) {
                    foreach (var capability in xcodeRequirements.Capabilities)
                    {
                        SA_EditorGUILayout.SelectableLabel(new GUIContent(capability + " Capability", ISD_Skin.GetIcon("capability.png")));
                    }
                }
            }


            if (xcodeRequirements.PlistKeys.Count > 0)
            {
                using (new SA_H2WindowBlockWithSpace(new GUIContent("PLIST KEYS"))) {
                    foreach (var key in xcodeRequirements.PlistKeys)
                    {
                        SA_EditorGUILayout.SelectableLabel(new GUIContent(key.Name, ISD_Skin.GetIcon("plistVariables.png")));
                    }
                }
            }

            if (xcodeRequirements.Properties.Count > 0)
            {
                using (new SA_H2WindowBlockWithSpace(new GUIContent("BUILD PROPERTIES"))) {
                    foreach (var property in xcodeRequirements.Properties)
                    {
                        SA_EditorGUILayout.SelectableLabel(new GUIContent(property.Name + " | " + property.Value, ISD_Skin.GetIcon("buildSettings.png")));
                    }
                }
            }
        }
        protected override ISN_XcodeRequirements GenerateRequirements()
        {
            var requirements = new ISN_XcodeRequirements();

            requirements.AddFramework(new ISD_Framework(ISD_iOSFramework.UserNotifications));

            if (ISD_API.Capability.PushNotifications.Enabled)
            {
                requirements.Capabilities.Add("Push Notifications");
            }

            return(requirements);
        }
Пример #8
0
        protected override ISN_XcodeRequirements GenerateRequirements()
        {
            var requirements = new ISN_XcodeRequirements();

            var property = new ISD_BuildProperty("GCC_ENABLE_OBJC_EXCEPTIONS", "YES");

            requirements.AddBuildProperty(property);

            if (ISD_API.Capability.iCloud.Enabled && ISD_API.Capability.iCloud.keyValueStorage)
            {
                requirements.Capabilities.Add("iCloud");
            }

            return(requirements);
        }
Пример #9
0
 private void ResolvePlistKey(bool isEnabled, string name, string value, ISN_XcodeRequirements requirements)
 {
     if (isEnabled)
     {
         var plistKey = new ISD_PlistKey();
         plistKey.Name = name;
         plistKey.StringValue = value;
         plistKey.Type = ISD_PlistKeyType.String;
         requirements.AddInfoPlistKey(plistKey);
     }
     else
     {
         ISD_API.RemoveInfoPlistKey(name);
     }
 }
Пример #10
0
        protected override ISN_XcodeRequirements GenerateRequirements()
        {
            var requirements = new ISN_XcodeRequirements();

            requirements.AddFramework(new ISD_Framework(ISD_iOSFramework.GameKit));

            if (ISN_Settings.Instance.SavingAGame)
            {
                requirements.Capabilities.Add("iCloud");
            }

            requirements.Capabilities.Add("Game Center");


            return(requirements);
        }
Пример #11
0
        protected override ISN_XcodeRequirements GenerateRequirements()
        {
            var requirements = new ISN_XcodeRequirements();

            requirements.AddFramework(new ISD_Framework(ISD_iOSFramework.Contacts));
            requirements.AddFramework(new ISD_Framework(ISD_iOSFramework.ContactsUI));

            var NSContactsUsageDescription = new ISD_PlistKey();

            NSContactsUsageDescription.Name        = "NSContactsUsageDescription";
            NSContactsUsageDescription.StringValue = ISN_Settings.Instance.ContactsUsageDescription;
            NSContactsUsageDescription.Type        = ISD_PlistKeyType.String;

            requirements.AddInfoPlistKey(NSContactsUsageDescription);

            return(requirements);
        }
Пример #12
0
        protected override ISN_XcodeRequirements GenerateRequirements() 
        {
            var requirements = new ISN_XcodeRequirements();
            var property = new ISD_BuildProperty("GCC_ENABLE_OBJC_EXCEPTIONS", "YES");
            requirements.AddBuildProperty(property);
            
            if (ISN_Settings.Instance.ApplicationQueriesSchemes.Count > 0) 
            {
                var LSApplicationQueriesSchemes = new ISD_PlistKey();
                LSApplicationQueriesSchemes.Name = "LSApplicationQueriesSchemes";
                LSApplicationQueriesSchemes.Type = ISD_PlistKeyType.Array;

                requirements.AddInfoPlistKey(LSApplicationQueriesSchemes);

                foreach (var scheme in ISN_Settings.Instance.ApplicationQueriesSchemes) 
                {
                    var schemeName = new ISD_PlistKey();
                    schemeName.StringValue = scheme.Identifier;
                    schemeName.Type = ISD_PlistKeyType.String;
                    LSApplicationQueriesSchemes.AddChild(schemeName);
                }
            }

            var settings = ISN_Settings.Instance;
            ResolvePlistKey(settings.CameraUsageDescriptionEnabled, 
                "NSCameraUsageDescription",
                settings.CameraUsageDescription, requirements);
            
            ResolvePlistKey(settings.PhotoLibraryUsageDescriptionEnabled, 
                "NSPhotoLibraryUsageDescription",
                settings.PhotoLibraryUsageDescription, requirements);
            
            ResolvePlistKey(settings.PhotoLibraryAddUsageDescriptionEnabled, 
                "NSPhotoLibraryAddUsageDescription",
                settings.PhotoLibraryAddUsageDescription, requirements);
            
            ResolvePlistKey(settings.MicrophoneUsageDescriptionEnabled, 
                "NSMicrophoneUsageDescription",
                settings.MicrophoneUsageDescription, requirements);

            return requirements;
        }
Пример #13
0
        protected override ISN_XcodeRequirements GenerateRequirements()
        {
            var requirements = new ISN_XcodeRequirements();

            requirements.AddFramework(new ISD_Framework(ISD_iOSFramework.CoreLocation));

            var nsLocationWhenInUseUsageDescription = new ISD_PlistKey();

            nsLocationWhenInUseUsageDescription.Name        = "NSLocationWhenInUseUsageDescription";
            nsLocationWhenInUseUsageDescription.StringValue = ISN_Settings.Instance.LocationWhenInUseUsageDescription;
            nsLocationWhenInUseUsageDescription.Type        = ISD_PlistKeyType.String;
            requirements.AddInfoPlistKey(nsLocationWhenInUseUsageDescription);

            var nsLocationAlwaysAndWhenInUseUsageDescription = new ISD_PlistKey();

            nsLocationAlwaysAndWhenInUseUsageDescription.Name        = "NSLocationAlwaysAndWhenInUseUsageDescription";
            nsLocationAlwaysAndWhenInUseUsageDescription.StringValue = ISN_Settings.Instance.LocationAlwaysAndWhenInUseUsageDescription;
            nsLocationAlwaysAndWhenInUseUsageDescription.Type        = ISD_PlistKeyType.String;
            requirements.AddInfoPlistKey(nsLocationAlwaysAndWhenInUseUsageDescription);

            return(requirements);
        }
Пример #14
0
        protected override ISN_XcodeRequirements GenerateRequirements()
        {
            var requirements = new ISN_XcodeRequirements();

            if (ISN_Settings.Instance.ShortcutItems.Count > 0)
            {
                ISD_PlistKey UIApplicationShortcutItems = new ISD_PlistKey();
                UIApplicationShortcutItems.Name = "UIApplicationShortcutItems";
                UIApplicationShortcutItems.Type = ISD_PlistKeyType.Array;

                requirements.AddInfoPlistKey(UIApplicationShortcutItems);

                foreach (var shortcut in ISN_Settings.Instance.ShortcutItems)
                {
                    var ShortcutItem = new ISD_PlistKey();
                    ShortcutItem.Type = ISD_PlistKeyType.Dictionary;
                    UIApplicationShortcutItems.AddChild(ShortcutItem);

                    var ShortcutItemTitle = new ISD_PlistKey();
                    ShortcutItemTitle.Name        = "UIApplicationShortcutItemTitle";
                    ShortcutItemTitle.StringValue = shortcut.Title;
                    ShortcutItem.AddChild(ShortcutItemTitle);

                    var ShortcutItemSubtitle = new ISD_PlistKey();
                    ShortcutItemSubtitle.Name        = "UIApplicationShortcutItemSubtitle";
                    ShortcutItemSubtitle.StringValue = shortcut.Subtitle;
                    ShortcutItem.AddChild(ShortcutItemSubtitle);


                    var ShortcutItemType = new ISD_PlistKey();
                    ShortcutItemType.Name        = "UIApplicationShortcutItemType";
                    ShortcutItemType.StringValue = shortcut.Type;
                    ShortcutItem.AddChild(ShortcutItemType);
                }
            }


            if (ISN_Settings.Instance.UrlTypes.Count > 0)
            {
                ISD_PlistKey CFBundleURLTypes = new ISD_PlistKey();
                CFBundleURLTypes.Name = "CFBundleURLTypes";
                CFBundleURLTypes.Type = ISD_PlistKeyType.Array;

                requirements.AddInfoPlistKey(CFBundleURLTypes);


                foreach (ISN_UIUrlType url in ISN_Settings.Instance.UrlTypes)
                {
                    ISD_PlistKey URLTypeHolder = new ISD_PlistKey();
                    URLTypeHolder.Type = ISD_PlistKeyType.Dictionary;
                    CFBundleURLTypes.AddChild(URLTypeHolder);


                    ISD_PlistKey CFBundleURLName = new ISD_PlistKey();
                    CFBundleURLName.Type        = ISD_PlistKeyType.String;
                    CFBundleURLName.Name        = "CFBundleURLName";
                    CFBundleURLName.StringValue = url.Identifier;
                    URLTypeHolder.AddChild(CFBundleURLName);


                    ISD_PlistKey CFBundleURLSchemes = new ISD_PlistKey();
                    CFBundleURLSchemes.Type = ISD_PlistKeyType.Array;
                    CFBundleURLSchemes.Name = "CFBundleURLSchemes";
                    URLTypeHolder.AddChild(CFBundleURLSchemes);

                    foreach (string scheme in url.Schemes)
                    {
                        ISD_PlistKey Scheme = new ISD_PlistKey();
                        Scheme.Type        = ISD_PlistKeyType.String;
                        Scheme.StringValue = scheme;
                        CFBundleURLSchemes.AddChild(Scheme);
                    }
                }
            }


            return(requirements);
        }
Пример #15
0
 public void ResetRequirementsCache()
 {
     m_Requirements = null;
 }