Согласно Apple, если ваше приложение зависит от платформы, созданной для macOS, вам нужно будет либо исключить его из любых сборок iOS, либо вам нужно будет перестроить его для iOS и macOS, чтобы можно было обусловитькод, который доступен только в iOS или MacOS.Для этого Apple рекомендует вам преобразовать это в xcframework
.Поскольку основа, от которой вы зависите, указывает на NSApp
и NSWindow
, которые являются символами, недоступными в iOS, вы получаете ошибки, о которых упоминаете.
Поэтому, если у вас есть исходный код дляMacMan.framework
, вам нужно поработать над ним, чтобы преобразовать его в xcframework
путем условного кодирования, который зависит от конкретной платформы, поскольку они ссылаются на рамки, недоступные на другой платформе.
Еслиу вас нет исходного кода, поэтому вам нужно поговорить с поставщиком платформы, чтобы предоставить вам такой двоичный файл.Если это невозможно, то вам придется исключить MacMan.framework
, который был специально создан для платформы macOS.
Все это объясняется в видеоролике WWDC 2019 под названием " Представление приложений iPad дляMac".
Кроме того, я также рекомендую проверить соответствующие видео на той же странице, чтобы узнать, что делать.Наконец, чтобы узнать, как создать xcframework, посмотрите видео « Binary Frameworks in Swift ».Не обманывайтесь заголовком последнего видео: вы также можете создавать xcframeworks в Objective-C, если вам это нужно.
Если вам нужно настроить фон окна, вы не можете сделать это с помощью NSWindow;как я объяснил выше, этот API недоступен, но вам нужно использовать его аналог iOS: UIWindow
.В этом случае вы можете изменить фон окна следующим образом:
self.view.window.backgroundColor = .red
self, являющийся вашим UIViewController.
Другой возможной настройкой является добавление панели инструментов, поскольку NSToolbar теперь экспортируется через:
let toolbar = UIWindowScene.titlebar.toolbar
Более полное объяснение и пояснения, касающиеся добавления и настройки NSToolbar в приложении UIKIt для Mac, объясняются здесь .