Рассмотрим построение проекта на Maui и C# для iOS.
Весь код для непосредственного взаимодействия с платформой iOS расположен в проекте в папке Platforms/iOS/
Здесь нас будут интересовать два файла: AppDelegate.cs и Program.cs.
Работа приложения iOS начинается с кода, расположенного в файле Program.cs:
using ObjCRuntime; using UIKit; namespace HelloApp { public class Program { static void Main(string[] args) { UIApplication.Main(args, null, typeof(AppDelegate)); } } }
Метод Main класса Program служит точкой входа в приложения. В нем же в свою очередь вызывается метод UIApplication.Main()
, который определяет суть приложения и который
обращается к классу AppDelegate из файла AppDelegate.cs:
using Foundation; namespace HelloApp { [Register("AppDelegate")] public class AppDelegate : MauiUIApplicationDelegate { protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); } }
А класс Appdelegate, в свою очередь, переопределяет метод CreateMauiApp(), в котором вызывается метод CreateMauiApp() и таким образом реализуется связь с кодом приложения MAUI.
Рассмотрим, как создавать приложения под iOS из Visual Studio на Windows. Прежде всего, следует отметить, что технически для компиляции приложения под iOS необходим MacBook. Кроме того, на MacOS должны быть установлены все необходимые инструменты для разработки под Maui, как описывалось в прошлой теме, и также должна быть установлена последняя версия XCode.
Для подключения к MacOS Visual Studio применяет SSH.
Возьмем простейший проект Maui, который создается по умолчанию. Прежде всего нам надо открыть доступ извне на самой машине под управлением Mac OS. Для этого на MacOS перейдем к настройкам общего доступа, среди которых надо включить опцию "Удаленный вход":
В этом окне надо отметить IP-адрес в рамках подсети, по которому мы будем подключаться к макбуку. В моем случае 192.168.0.102.
Это были все необходимые настройки для Mac OS. Теперь перейдем к Visual Studio. Перейдем к пункту меню Tools -> iOS -> Pair to Mac
Открывшееся окно отобразит список доступных хостов MacOS для подключения:
Выберем в этом окне нужное подключение и нажмем на кнопку Connect. После этого откроется диалоговое окно, в котором надо будет ввести аутентификационные данные для подключения к Mac OS (то есть логин и пароль пользователя на машине Mac OS):
Если вы вдруг не уверены в правильности вводимого логина, то его можно узнать на Mac OS, введя в терминал команду whoami.
При первом подключении Visual Studio может загружать и установливать некоторые необходимые пакеты для связи с MacOS.
После успешного логина и подключения все окна можно закрыть. А Visual Studio с помощью значка зеленого монитора на панели инструментов укажет, что подключение успешно установлено
И затем мы сможем использовать удаленную машину Mac OS для компиляции приложения, а в Visual Studio мы сможем выбрать нужный симулятор iOS и запустить проект:
После этого запустится на симуляторе наш проект:
Стоит отметить, что несмотря на то, что мы можем запустить приложения на симуляторе непосредственно в Windows, но все равно нам необходим Mac OS для компиляции проекта.
Если мы перейдем к свойствам проекта в visual Studio, то в секции Application/iOS Targets мы можем настроить минимальную и целевую версии iOS, под которые выполняется построение проекта.
Здесь нам доступны следующие опции:
Target the iOS platform: при установке этого флажка .NET MAUI при построении проекта будет также создавать версию приложения для iOS.
Target .NET Runtime: применяемая версия .NET
Target iOS Framework: применяемая версия iOS
Minimum Target iOS Framework: минимальная версия iOS, под которую создается приложение
Кроме того, внизу свойств проекта с помощью пункта iOS можно настроить различные параметры публикации проекта.
При компиляции проекта MAUI под iOS на Mac OS все естественно несколько проще. Если мы используем Visual Studio for Mac, то также мы можем выбрать из панели запуска нужный симулятор iOS, либо даже подключиться к реальному устройству с iOS через WiFi:
При выборе симулятора iOS будет запущено приложение на выбранном симуляторе XCode.