2016-10-21 4 views
0

Я заметил, что Xcode способен запускать код UIKit для IBDesignables, без запуска симулятора вообще. Кажется, что используется инструмент IBDesignablesAgentCocoaTouch, который является приложением macOS. Как что-то подобное можно реализовать?Запуск кода iOS без симулятора

+0

что вы хотите сделать ??? –

+0

Вы хотите модульные тесты без симулятора? –

+0

В основном аналогичное поведение, как IBDesignablesAgentCocoaTouch, но без Xcode. – krzat

ответ

0

Приложения iOS, скомпилированные для x86_64, на самом деле являются обычными приложениями macOS, которые только что связаны с различными фреймворками. Рамка симулятора обеспечивает время выполнения, необходимое для функционирования всех этих фреймворков, таким же образом, как и на оборудовании iOS. Демон IBDesignablesAgentCocoaTouch поддерживает достаточную подсистему iOS, чтобы иметь возможность делать снимок вашего пользовательского интерфейса каждый раз, когда вы делаете изменения в Xcode. Теоретически, можно частично или полностью раздвинуть подсистему iOS, чем то, как работает симулятор, но это, скорее всего, нарушает лицензионное соглашение разработчика, которое вы подписали при установке, и, конечно же, не было бы законным для распространения. Правовая или иная, это было бы очень серьезным делом и, скорее всего, сломалось бы с каждым изменением системы. Достаточно взглянуть на то, как широко изменились рамки симулятора за последние годы, чтобы понять, насколько сложно это будет для разработчиков, не являющихся Apple.

Если вам требуется запустить не-пользовательский интерфейс для тестирования, например, есть гораздо более простые способы достижения того, что вам нужно, например создание цели macOS и включение в нее всех ваших материалов, не относящихся к пользовательскому интерфейсу, и обрезание выбирая абсолютно необходимый необходимый пользовательский интерфейс для тестирования.

Если вы хотите достичь многоплатформенной разработки с использованием фреймворков iOS, а затем запускать их с использованием фреймворков Apple iOS за пределами симулятора, это не является законным (рамки iOS не распространяются обычно с помощью macOS и требуют установки Xcode), и это не очень хорошая идея, поскольку пользователи ожидают, что приложения будут вести себя на платформе, на которой они работают. Концепции пользовательского интерфейса iOS подходят для сенсорного ввода, но они будут неуместны в экосистеме ввода указателей точности.

+0

Спасибо за ответ. Итак, IBDesignablesAgentCocoaTouch похож на мини-симулятор? Это круто. – krzat

+0

Я не собирался нарушать какие-либо соглашения. Просто прошу из любопытства. И, возможно, его можно использовать для целей отладки. – krzat

Смежные вопросы