Краткое руководство по приложению "Привет, iOS"Hello, iOS – Quickstart

Это руководство описывает создание приложения, которое преобразует введенный пользователем буквенно-цифровой телефонный номер в числовой телефонный номер и затем набирает его.This guide describes how to create an application that translates an alphanumeric phone number entered by the user into a numeric phone number, and then calls that number. Окончательный вариант приложения выглядит примерно так:The final application looks like this:

ТребованияRequirements

Для разработки на iOS с помощью Xamarin требуется следующее:iOS development with Xamarin requires:

  • Компьютер Mac под управлением macOS High Sierra 10.13 или последующей версии.A Mac running macOS High Sierra (10.13) or above.
  • Последняя версия Xcode и пакета SDK iOS из App Store.Latest version of Xcode and iOS SDK installed from the App Store .

Xamarin.iOS работает со следующими конфигурациями:Xamarin.iOS works with the following setup:

  • Последняя версия Visual Studio для Mac, удовлетворяющая указанным выше требованиям.Latest version of Visual Studio for Mac that fits the above specifications.

Пошаговые инструкции по установке см. в руководстве по установке Xamarin.iOS на Mac.The Xamarin.iOS Mac Installation guide is available for step-by-step installation instructions

Xamarin.iOS работает со следующими конфигурациями:Xamarin.iOS works with the following setup:

  • Последняя версия Visual Studio 2019 или Visual Studio 2017 Community, Professional или Enterprise на базе Windows 10 или более поздней версии, связанная с узлом сборки Mac, удовлетворяющим указанным выше требованиям.Latest version of Visual Studio 2019 or Visual Studio 2017 Community, Professional, or Enterprise on Windows 10, paired with a Mac build host that fits the above specifications.

Пошаговые инструкции по установке см. в руководстве по установке Xamarin.iOS в Windows.The Xamarin.iOS Windows Installation guide is available for step-by-step installation instructions.

Перед началом работы скачайте набор значков приложения Xamarin.Before getting started, download the Xamarin App Icons set.

Пошаговое руководство по Visual Studio для MacVisual Studio for Mac Walkthrough

Это пошаговое руководство описывает создание приложения Phoneword, которое преобразует буквенно-цифровой телефонный номер в числовой.This walkthrough describes how to create an application called Phoneword that translates an alphanumeric phone number into a numeric phone number.

  1. Запустите Visual Studio для Mac из папки Applications (Приложения) или из Spotlight:Launch Visual Studio for Mac from the Applications folder or Spotlight:

    На экране запуска нажмите кнопку Новый проект... , чтобы создать новое решение Xamarin.iOS:On the Launch Screen, click New Project... to create a new Xamarin.iOS solution:

  2. В диалоговом окне Новое решение выберите шаблон iOS > Приложение > Приложение одного представления, убедившись, что выбран C#.From the New Solution dialog, choose the iOS > App > Single View Application template, ensuring that C# is selected. Нажмите кнопку Далее:Click Next:

  3. Настройте приложение.Configure the app. Присвойте ему имя Phoneword_iOS, а для остальных параметров сохраните значения по умолчанию.Give it the Name Phoneword_iOS, and leave everything else as default. Нажмите кнопку Далее:Click Next:

  4. Оставьте имеющееся имя для проекта и решения.Leave the Project and Solution Name as is. Выберите расположение проекта или оставьте значение по умолчанию:Choose the location of the project here, or keep it as the default:

  5. Нажмите кнопку Создать, чтобы создать Решение.Click Create to make the Solution.

  6. Откройте файл Main.storyboard, дважды щелкнув его на Панели решения.Open the Main.storyboard file by double-clicking on it in the Solution Pad. Это позволяет создавать пользовательский интерфейс визуально:This provides a way to visually to create a UI:

    Обратите внимание на то, что классы размера включены по умолчанию.Note that size classes are enabled by default. Чтобы узнать о них подробнее, см. руководство по унифицированным раскадровкам.Refer to the Unified Storyboards guide to learn more about them.

  7. Откройте панель элементов, введите "метка" в поле поиска и перетащите элемент Метка в область конструктора (в центре):In the Toolbox Pad, type "label" into the search bar and drag a Label onto the design surface (the area in the center):

    Примечание

    Вы можете открыть Панель свойств или Панель элементов в любое время, перейдя в раздел Вид > Панели.You can bring up the Properties Pad or Toolbox at any time by navigating to View > Pads.

  8. Используя маркеры перетаскивания элементов управления (кружки вокруг элемента управления), сделайте метку шире:Grab the handles of the Dragging Controls (the circles around the control) and make the label wider:

  9. Выбрав элемент Метка в области конструктора, используйте Панель свойств, чтобы изменить свойство Текст элемента Метка на "Enter a Phoneword" (Введите слово-номер):With the Label selected on the design surface, use the Properties Pad to change the Text property of the Label to "Enter a Phoneword:"

  10. Выполните поиск строки "текстовое поле" на панели элементов и перетащите элемент Текстовое поле с панели элементов в область конструктора, поместив его под элементом Метка.Search for “text field” inside the Toolbox and drag a Text Field from the Toolbox onto the design surface and place it under the Label. Измените ширину, чтобы элемент Текстовое поле был такой же ширины, что и Метка:Adjust the width until the Text Field is the same width as the Label:

  11. Выбрав элемент Текстовое поле в области конструктора, измените для текстового поля свойство Имя в разделе "Удостоверение" на панели свойств, указав новое значение PhoneNumberText, а для свойства Текст введите "1-855-XAMARIN":With the Text Field selected on the design surface, change the Text Field’s Name property in the Identity section of the Properties Pad to PhoneNumberText, and change the Text property to "1-855-XAMARIN":

  12. Перетащите элемент Кнопка из панели элементов в область конструктора и поместите его под элементом Текстовое поле.Drag a Button from the Toolbox onto the design surface and place it under the Text Field. Настройте ширину элемента Кнопка, чтобы выровнять его с элементами Текстовое поле и Метка:Adjust the width so the Button is as wide as the Text Field and Label:

  13. Выбрав элемент Кнопка в области конструктора, измените свойство Имя в разделе Удостоверение Панели свойств на TranslateButton.With the Button selected on the design surface, change the Name property in the Identity section of the Properties Pad to TranslateButton. Измените значение свойства Заголовок на "Translate" (Преобразовать):Change the Title property to "Translate":

  14. Повторите два предыдущих действия, перетащите элемент Кнопка из панели элементов в область конструктора и поместите его под первым элементом Кнопка.Repeat the two steps above and drag a Button from the Toolbox onto the design surface and place it under the first Button. Настройте ширину элемента Кнопка, чтобы выровнять его с первым элементом Кнопка:Adjust the width so the Button is as wide as the first Button:

  15. Выбрав второй элемент Кнопка в области конструктора, измените свойство Имя в разделе Удостоверение Панели свойств на CallButton.With the second Button selected on the design surface, change the Name property in the Identity section of the Properties Pad to CallButton. Измените значение свойства Заголовок на "Call" (Вызов):Change the Title property to "Call":

    Сохраните изменения, выбрав Файл > Сохранить или нажав клавиши ⌘+S.Save the changes by navigating to File > Save or by pressing ⌘ + s.

  16. В приложение нужно добавить логику для преобразования телефонных номеров из буквенно-цифровых в цифровые.Some logic needs to be added to the app to translate phone numbers from alphanumeric to numeric. Добавьте новый файл в проект, щелкнув правой кнопкой мыши проект Phoneword_iOS на Панели решения и выбрав Добавить > Новый файл... или нажав клавиши ⌘+N:Add a new file to the Project by right clicking on the Phoneword_iOS Project in the Solution Pad and choosing Add > New File... or pressing ⌘ + n:

  17. В диалоговом окне Новый файл выберите Общие > Пустой класс и назовите новый файл PhoneTranslator:In the New File dialog, select General > Empty Class and name the new file PhoneTranslator:

  18. Создается пустой класс C#.This creates a new, empty C# class for us. Удалите код шаблона и замените его следующим:Remove all the template code and replace it with the following code:

    using System.Text;
    using System;
    
    namespace Phoneword_iOS
    {
        public static class PhoneTranslator
        {
            public static string ToNumber(string raw)
            {
                if (string.IsNullOrWhiteSpace(raw)) {
                    return "";
                } else {
                    raw = raw.ToUpperInvariant();
                }
    
                var newNumber = new StringBuilder();
                foreach (var c in raw)
                {
                    if (" -0123456789".Contains(c)) {
                        newNumber.Append(c);
                    } else {
                        var result = TranslateToNumber(c);
                        if (result != null) {
                            newNumber.Append(result);
                        }
                    }
                    // otherwise we've skipped a non-numeric char
                }
                return newNumber.ToString();
            }
    
            static bool Contains (this string keyString, char c)
            {
                return keyString.IndexOf(c) >= 0;
            }
    
            static int? TranslateToNumber(char c)
            {
                if ("ABC".Contains(c)) {
                    return 2;
                } else if ("DEF".Contains(c)) {
                    return 3;
                } else if ("GHI".Contains(c)) {
                    return 4;
                } else if ("JKL".Contains(c)) {
                    return 5;
                } else if ("MNO".Contains(c)) {
                    return 6;
                } else if ("PQRS".Contains(c)) {
                    return 7;
                } else if ("TUV".Contains(c)) {
                    return 8;
                } else if ("WXYZ".Contains(c)) {
                    return 9;
                }
                return null;
            }
        }
    }
    

    Сохраните файл PhoneTranslator.cs и закройте его.Save the PhoneTranslator.cs file and close it.

  19. Добавьте код для подключения пользовательского интерфейса.Add code to wire up the user interface. Для этого дважды щелкните файл ViewController.cs на Панели решения, чтобы открыть его:To do this double-click on ViewController.cs in the Solution Pad to open it:

  20. Начните с подключения TranslateButton.Begin by wiring up the TranslateButton. Найдите метод ViewDidLoad в классе ViewController и добавьте следующий код под вызовом base.ViewDidLoad():In the ViewController class, find the ViewDidLoad method and add the following code beneath the base.ViewDidLoad() call:

    string translatedNumber = "";
    
    TranslateButton.TouchUpInside += (object sender, EventArgs e) => {
        // Convert the phone number with text to a number
        // using PhoneTranslator.cs
        translatedNumber = PhoneTranslator.ToNumber(
            PhoneNumberText.Text);
    
        // Dismiss the keyboard if text field was tapped
        PhoneNumberText.ResignFirstResponder ();
    
        if (translatedNumber == "") {
            CallButton.SetTitle ("Call ", UIControlState.Normal);
            CallButton.Enabled = false;
        } else {
            CallButton.SetTitle ("Call " + translatedNumber,
                UIControlState.Normal);
            CallButton.Enabled = true;
        }
    };
    

    Включите using Phoneword_iOS;, если пространство имен файла отличается.Include using Phoneword_iOS; if the file's namespace is different.

  21. Добавьте код, реагирующий на нажатие пользователем второй кнопки, которая называется CallButton.Add code to respond to the user pressing the second button, which is named CallButton. Поместите следующий код после кода для TranslateButton и добавьте using Foundation; в начало файла:Place the following code below the code for the TranslateButton and add using Foundation; to the top of the file:

        CallButton.TouchUpInside += (object sender, EventArgs e) => {
            // Use URL handler with tel: prefix to invoke Apple's Phone app...
            var url = new NSUrl ("tel:" + translatedNumber);
    
            // ...otherwise show an alert dialog
            if (!UIApplication.SharedApplication.OpenUrl (url)) {
                var alert = UIAlertController.Create ("Not supported", "Scheme 'tel:' is not supported on this device", UIAlertControllerStyle.Alert);
                alert.AddAction (UIAlertAction.Create ("Ok", UIAlertActionStyle.Default, null));
                PresentViewController (alert, true, null);
            }
        };
    
  22. Сохраните изменения и выполните сборку приложения, выбрав Сборка > Собрать все или нажав клавиши ⌘+B. Если приложение компилируется, в верхней части интегрированной среды разработки отображается сообщение об успешном выполнении:Save the changes and then build the application by choosing Build > Build All or pressing ⌘ + B. If the application compiles, a success message will appear at the top of the IDE:

    При наличии ошибок просмотрите предыдущие шаги и исправьте все ошибки, пока сборка приложения не будет проходить успешно.If there are errors, go through the previous steps and correct any mistakes until the application builds successfully.

  23. Наконец, протестируйте приложение в симуляторе iOS.Finally, test the application in the iOS Simulator. В верхнем левом углу интегрированной среды разработки выберите значение Отладка в первом раскрывающемся списке и iPhone XR iOS 12.0 или другой доступный симулятор во втором, а затем нажмите кнопку Запустить (треугольная кнопка, которая напоминает кнопку воспроизведения):In the top left of the IDE, choose Debug from the first dropdown, and iPhone XR iOS 12.0 (or other available simulator) from the second dropdown, and press Start (the triangular button that resembles a Play button):

    Примечание

    Сейчас, в связи с требованиями Apple, при создании кода для устройства или симулятора может потребоваться сертификат разработки или удостоверение подписывания.At present, due to a requirement from Apple, it may be necessary to have a development certificate or signing identity to build you code for device or simulator. Чтобы настроить их, следуйте указаниям в руководстве по подготовке устройств.Follow the steps in the Device Provisioning guide to set this up.

  24. В результате приложение запускается в симуляторе iOS:This will launch the application inside the iOS Simulator:

    Симулятор iOS не поддерживает телефонные звонки; при попытке выполнить вызов отображается диалоговое окно предупреждения:Phone calls are not supported in the iOS Simulator; instead, you will see an alert dialog when trying to place a call:

Пошаговое руководство по Visual StudioVisual Studio Walkthrough

Это пошаговое руководство описывает создание приложения Phoneword, которое преобразует буквенно-цифровой телефонный номер в числовой.This walkthrough describes how to create an application called Phoneword that translates an alphanumeric phone number into a numeric phone number.

Примечание. В этом пошаговом руководстве используется Visual Studio Enterprise 2017 на виртуальной машине Windows 10.Note: This walkthrough uses Visual Studio Enterprise 2017 on a Windows 10 Virtual Machine. Ваша конфигурация может отличаться при условии соблюдения приведенных выше требований, но имейте в виду, что некоторые снимки экрана могут отличаться от вашей конфигурации.Your set up can differ from this, as long as it meets the requirements above, but be aware that some screenshots may look different to your set up.

Примечание

Прежде чем продолжить работу с пошаговым руководством, вам нужно подключиться к компьютеру Mac из Visual Studio.Before proceeding with this walkthrough, you must have already connected to your Mac from Visual Studio. Это вызвано тем, что Xamarin.iOS использует инструменты Apple при сборке и запуске конструктора и приложений iOS.This is because Xamarin.iOS relies on Apple's tooling to build and launch the iOS Designer and applications. Настройка описана в инструкциях из руководства по связыванию с компьютером Mac.To get set up, follow the steps in the Pair to Mac guide.

  1. Запустите Visual Studio из меню Пуск:Launch Visual Studio from the Start menu:

    Создайте решение Xamarin.iOS, выбрав Файл > Создать > Проект... > Visual C# > iPhone и iPad > Приложение iOS (Xamarin) :Create a new Xamarin.iOS solution by selecting File > New > Project... > Visual C# > iPhone & iPad > iOS App (Xamarin):

    Выберите тип проекта приложения iOS (Xamarin)Select iOS App (Xamarin) project type

    В следующем диалоговом окне выберите шаблон Приложение с одним представлением и нажмите OK, чтобы создать проект:In the next dialog that appears, select the Single View App template and press OK to create the project:

    Выберите шаблон проекта с одним представлениемSelect Single View project template

  2. Убедитесь, что значок агента Mac Xamarin на панели инструментов отображается зеленым цветом.Confirm that the Xamarin Mac Agent icon in the toolbar is green.

    Убедитесь, что значок агента Mac Xamarin на панели инструментов отображается зеленым цветом

    Если это не так, то есть отсутствует подключение к компьютеру сборки Mac, выполните инструкции из руководства по выбору конфигурации, чтобы настроить подключение.If it isn't, this means that there is no connection to your Mac build host, follow the steps in the configuration guide to get connected.

  3. Откройте файл Main.storyboard в конструкторе iOS, дважды щелкнув его в обозревателе решений:Open the Main.storyboard file in the iOS Designer by double-clicking on it in the Solution Explorer:

  4. Откройте вкладку Панель элементов, введите "метка" в поле поиска и перетащите элемент Метка в область конструктора (в центре):Open the Toolbox tab, type “label” into the search bar and drag a Label onto the design surface (the area in the center):

  5. Захватите маркеры перетаскивания и растяните метку в стороны:Next, grab the handles of the Dragging Controls and make the label wider:

  6. Выбрав элемент Метка в области конструктора, используйте окна свойств, чтобы изменить свойство Текст элемента Метка на "Enter a Phoneword" (Введите слово-номер):With the Label selected on the design surface, use the Properties Windows to change the Text property of the Label to "Enter a Phoneword:"

    Примечание

    Вы можете открыть Свойства или Панель элементов в любое время. Для этого перейдите в меню Вид.You can bring up the Properties or Toolbox at any time by navigating to the View menu.

  7. Выполните поиск строки "текстовое поле" на панели элементов и перетащите элемент Текстовое поле с панели элементов в область конструктора, поместив его под элементом Метка.Search for “text field” inside the Toolbox and drag a Text Field from the Toolbox onto the design surface and place it under the Label. Измените ширину, чтобы элемент Текстовое поле был такой же ширины, что и Метка:Adjust the width until the Text Field is the same width as the Label:

  8. Выбрав элемент Текстовое поле в области конструктора, измените егосвойство Имя в разделе "Удостоверение" свойств на PhoneNumberText, а также измените свойство Текст на "1-855-XAMARIN":With the Text Field selected on the design surface, change the Text Field’s Name property in the Identity section of the Properties to PhoneNumberText, and change the Text property to "1-855-XAMARIN":

  9. Перетащите элемент Кнопка из панели элементов в область конструктора и поместите его под элементом Текстовое поле.Drag a Button from the Toolbox onto the design surface and place it under the Text Field. Настройте ширину элемента Кнопка, чтобы выровнять его с элементами Текстовое поле и Метка:Adjust the width so the Button is as wide as the Text Field and Label:

  10. Выбрав элемент Кнопка в области конструктора, измените свойство Имя в разделе Удостоверение свойств на TranslateButton.With the Button selected on the design surface, change the Name property in the Identity section of the Properties to TranslateButton. Измените значение свойства Заголовок на "Translate" (Преобразовать):Change the Title property to "Translate":

  11. Повторите два предыдущих действия, перетащите элемент Кнопка из панели элементов в область конструктора и поместите его под первым элементом Кнопка.Repeat the previous two steps and drag a Button from the Toolbox onto the design surface and place it under the first Button. Настройте ширину элемента Кнопка, чтобы выровнять его с первым элементом Кнопка:Adjust the width so the Button is as wide as the first Button:

  12. Выбрав второй элемент Кнопка в области конструктора, измените свойство Имя в разделе Удостоверение свойств на CallButton.With the second Button selected on the design surface, change the Name property in the Identity section of the Properties to CallButton. Измените значение свойства Заголовок на "Call" (Вызов):Change the Title property to "Call":

    Сохраните изменения, выбрав Файл > Сохранить все или нажав клавиши CTRL+S.Save the changes by navigating to File > Save All or by pressing Ctrl + s.

  13. Добавьте код, который преобразует телефонные номера из буквенно-цифровой записи в цифровую.Add some code to translate phone numbers from alphanumeric to numeric. Для этого сначала добавьте новый файл в проект, щелкнув правой кнопкой мыши проект Phoneword в обозревателе решений и выбрав Добавить > Новый элемент... или нажав клавиши CTRL+SHIFT+A:To do this, first add a new file to the Project by right-clicking on the Phoneword Project in the Solution Explorer and choosing Add > New Item... or pressing Ctrl + Shift + A:

  14. В диалоговом окне Добавить новый элемент (щелкните правой кнопкой мыши проект, выберите "Добавить > Новый элемент..."), выберите Apple > Класс и назовите новый файл PhoneTranslator:In the Add New Item dialog (right click on the project, choose Add > New Item...), select Apple > Class and name the new file PhoneTranslator:

    Важно!

    Убедитесь, что выбран шаблон класса, в значке которого указан C#.Make sure that you select the 'class' template that has a C# in the icon. В противном случае ссылка на этот класс может быть невозможна.Otherwise you may not be able to reference this new class.

  15. Создается класс C#.This creates a new C# class. Удалите код шаблона и замените его следующим:Remove all the template code and replace it with the following code:

    using System.Text;
    using System;
    
    namespace Phoneword
    {
        public static class PhoneTranslator
        {
            public static string ToNumber(string raw)
            {
                if (string.IsNullOrWhiteSpace(raw)) {
                    return "";
                } else {
                    raw = raw.ToUpperInvariant();
                }
    
                var newNumber = new StringBuilder();
                foreach (var c in raw)
                {
                    if (" -0123456789".Contains(c)) {
                        newNumber.Append(c);
                    } else {
                        var result = TranslateToNumber(c);
                        if (result != null) {
                            newNumber.Append(result);
                        }
                    }
                    // otherwise we've skipped a non-numeric char
                }
                return newNumber.ToString();
            }
    
            static bool Contains (this string keyString, char c)
            {
                return keyString.IndexOf(c) >= 0;
            }
    
            static int? TranslateToNumber(char c)
            {
                if ("ABC".Contains(c)) {
                    return 2;
                } else if ("DEF".Contains(c)) {
                    return 3;
                } else if ("GHI".Contains(c)) {
                    return 4;
                } else if ("JKL".Contains(c)) {
                    return 5;
                } else if ("MNO".Contains(c)) {
                    return 6;
                } else if ("PQRS".Contains(c)) {
                    return 7;
                } else if ("TUV".Contains(c)) {
                    return 8;
                } else if ("WXYZ".Contains(c)) {
                    return 9;
                }
                return null;
            }
        }
    }
    

    Сохраните файл PhoneTranslator.cs и закройте его.Save the PhoneTranslator.cs file and close it.

  16. Дважды щелкните файл ViewController.cs в обозревателе решений, чтобы открыть его и добавить логику, обрабатывающую взаимодействие с кнопками:Double-click on ViewController.cs in the Solution Explorer to open it, so that logic can be added to handles interactions with the buttons:

  17. Начните с подключения TranslateButton.Begin by wiring up the TranslateButton. В классе ViewController найдите метод ViewDidLoad.In the ViewController class, find the ViewDidLoad method. Добавьте следующий код кнопки внутрь ViewDidLoad, под вызовом base.ViewDidLoad():Add the following button code inside ViewDidLoad, beneath the base.ViewDidLoad() call:

    string translatedNumber = "";
    
    TranslateButton.TouchUpInside += (object sender, EventArgs e) => {
    
        // Convert the phone number with text to a number
        // using PhoneTranslator.cs
        translatedNumber = PhoneTranslator.ToNumber(PhoneNumberText.Text);
    
        // Dismiss the keyboard if text field was tapped
        PhoneNumberText.ResignFirstResponder ();
    
        if (translatedNumber == "") {
            CallButton.SetTitle ("Call", UIControlState.Normal);
            CallButton.Enabled = false;
            }
        else {
            CallButton.SetTitle ("Call " + translatedNumber, UIControlState.Normal);
            CallButton.Enabled = true;
            }
    };
    

    Включите using Phoneword;, если пространство имен файла отличается.Include using Phoneword; if the file's namespace is different.

  18. Добавьте код, реагирующий на нажатие пользователем второй кнопки, которая называется CallButton.Add code to respond to the user pressing the second button, which is named CallButton. Поместите следующий код после кода для TranslateButton и добавьте using Foundation; в начало файла:Place the following code below the code for the TranslateButton and add using Foundation; to the top of the file:

    CallButton.TouchUpInside += (object sender, EventArgs e) => {
        var url = new NSUrl ("tel:" + translatedNumber);
    
            // Use URL handler with tel: prefix to invoke Apple's Phone app,
            // otherwise show an alert dialog
    
        if (!UIApplication.SharedApplication.OpenUrl (url)) {
                        var alert = UIAlertController.Create ("Not supported", "Scheme 'tel:' is not supported on this device", UIAlertControllerStyle.Alert);
                        alert.AddAction (UIAlertAction.Create ("Ok", UIAlertActionStyle.Default, null));
                        PresentViewController (alert, true, null);
                    }
    };
    
  19. Сохраните изменения и выполните сборку приложения, выбрав Сборка > Построить решение или нажав клавиши CTRL+SHIFT+B. Если приложение компилируется, в нижней части интегрированной среды разработки отображается сообщение об успешном выполнении:Save the changes, and then build the application by choosing Build > Build Solution or pressing Ctrl + Shift + B. If the application compiles, a success message will appear at the bottom of the IDE:

    При наличии ошибок просмотрите предыдущие шаги и исправьте все ошибки, пока сборка приложения не будет проходить успешно.If there are errors, go through the previous steps and correct any mistakes until the application builds successfully.

  20. Наконец, протестируйте приложение в удаленном симуляторе iOS.Finally, test the application in the Remoted iOS Simulator. На панели инструментов интегрированной среды разработки выберите Отладка и iPhone 8 Plus iOS x.x в раскрывающихся меню и щелкните значок Запустить (зеленый треугольник, похожий на кнопку воспроизведения):In the IDE toolbar, choose Debug and iPhone 8 Plus iOS x.x from the drop down menus, and press Start (the green triangle that resembles a Play button):

  21. В результате приложение запускается в симуляторе iOS:This will launch the application inside the iOS Simulator:

    Симулятор iOS не поддерживает телефонные звонки; при попытке выполнить вызов отображается диалоговое окно предупреждения:Phone calls are not supported in the iOS Simulator; instead, an alert dialog will display when trying to place a call:

Поздравляем! Вы создали свое первое приложение Xamarin.iOS!Congratulations on completing your first Xamarin.iOS application!

Пришло время закрепить и углубить приобретенные знания и навыки с помощью раздела Привет, iOS: теперь подробнее.Now it’s time to dissect the tools and skills shown in this guide in the Hello, iOS Deep Dive.