Пустой список целевых устройств iOS при попытке запустить проект Compose Multiplatform на симуляторе iPhone
Что я делаю
Я пробую запустить тестовый проект Compose Multiplatform, созданный на сайте:
Что я пробовал
Открыть в Fleet
Получил ошибку:
Открыть в Android Studio
Он успено синхронизировался. Смотрю в конфигурации запуска, вижу iosApp.
Run your application on iOS
- Launch Xcode in a separate window to complete the initial setup. If it's the first time you launch Xcode, you may also need to accept its license terms and allow it to perform some necessary initial tasks.
- In Android Studio, select iosApp in the list of run configurations and click Run. By default, the run configuration will start a simulated device available in Xcode and run the app there. If you don't have an available iOS configuration in the list, add a new run configuration.
Вроде бы все правильно. Но через некоторое время появляется крестик:
Нажимаю Run. Он меня перекидывает в настройки:
In the Execution target list, select a simulated device and then click OK.
Click Run to run your application on the new simulated device.
В параметре Execution target должно быть устройство iPhone 14 Pro Max. Но список почему-то пустой:
Как я предпологаю, на устройстве macOS, показанном в картинке в цитате выше, установлена macOS Ventura/Sonoma.
Выполнить задачу gradle assemble
и запустить из Xcode
Еще я попробовал выполнить gradle assemble
, а потом скопировать скомпилированный [проект]/composeApp/build/bin/iosSimulatorArm64/ComposeApp.framework
в папку [проект]/iosApp/iosApp
. Открыл Xcode, попробовал скомпилировать:
Undefined symbol: _OBJC_CLASS_$_UITextLoupeSession
Запустить в Xcode сразу после синхронизации
Получил такую же ошибку, как выше.
Вопрос
- Как сделать так, чтобы в списке целевых устройств появился симулятор iPhone 14 Pro Max (последняя поддерживаемая модель для моего Xcode)? Или чтобы можно было скомпилировать из Xcode?
- Стоит ли мне обновиться до Ventura через OpenCore Legacy Patcher? К сожалению, мой MacBook поддерживает только macOS Monterey.
Характеристики
Система
Все характеристики взяты из меню Об этом Mac.
Характеристика | Значение |
---|---|
Система | macOS Monterey 12.7.6 |
Ноутбук | MacBook Air (13-inch, Early 2015) |
Процессор | 1,6 GHz 2‑ядерный процессор Intel Core i5 |
Оперативная память | 4 ГБ 1600 MHz DDR3 |
Графика | Intel HD Graphics 6000 1536 МБ |
Встроенная память | 121,12 ГБ |
Программы
Программа | Версия |
---|---|
Xcode | 14.2 (14C18) |
iOS в симуляторе | 16.2 |
Android Studio | 2024.2.1.11 |
Ответы (1 шт):
Вероятно что-то с совместимостью версий симулятора/Xcode/Android Studio/настроек проекта, я проверил на Xcode 16.2, проект успешно запускается и из Android Studio, и из Xcode, но и в Xcode 14.2 он по идее должен запускаться, так как в проекте выставляется iOS 15.3, поддерживаемая этой версией Xcode
Еще я попробовал выполнить gradle assemble, а потом скопировать скомпилированный [проект]/composeApp/build/bin/iosSimulatorArm64/ComposeApp.framework в папку [проект]/iosApp/iosApp
в этом нет необходимости, по идее новый проект должно просто запускаться без всякой настройки, попробуйте создать еще один проект с нуля и после синхронизации в Android Studio открыть его в Xcode и запустить без всяких изменений
Дополнение
Касательно ошибки Undefined symbol: _OBJC_CLASS_$_UITextLoupeSession
- Ваша версия Xcode не поддерживает Compose, нужен как минимум Xcode 15 (https://github.com/JetBrains/compose-multiplatform/issues/4821), поэтому может и стоит попробовать OpenCore Legacy Patcher, но лично я по этому вопросу к сожалению ничем помочь не могу